Константин Ильин

Константин Ильин

С нами с 10 февраля 2014; Место в рейтинге пользователей: #151
Константин Ильин
18 января 2018, 09:40
0
Василий, подскажи где этот глюченный лексикон найти?

joxi.ru/zANpLRJsBkQ6Gm

'brЭто поле не должно быть пустым'

Разобрался, что из-за плагина и в контроллере
// Check vk
$vk = trim($_POST['vk']);
if (!empty($vk)) {
    if (!preg_match('/https?:\/\/(www\.)?vk\.com\/([^\/].+)/', $vk)) {
        $modx->error->addField('vk', 'Неверная ссылка на ВКонтакте.');
        $modx->event->output('Неверная ссылка на ВКонтакте.');
    } 
}else{
    $modx->error->addField('vk', 'Это поле не должно быть пустым.');
    $modx->event->output('Вы не указали ссылку на ВКонтакте!');
}
за счет addField добавляется br

пофиксить это можно:

protected function _formatProcessorErrors(modProcessorResponse $response, $glue = 'br')
{
****
}
//заменив $glue = '< br >' - без пробелов

protected function _formatProcessorErrors(modProcessorResponse $response, $glue = '< br >')
{
****
}
Константин Ильин
05 января 2018, 19:46
0
trade-leader.com (11 языков)
У тебя там на поддоменах, а глюк когда по папке раскиданы версии 'http://but1head.ru/en/'

Так тоже выводит дефолтный site_url

У тебя подмена плейслохолдера только происходит
$modx->setPlaceholders(array(
                'cultureKey' => $cultureKey,
                'site_url' => $_SERVER['REQUEST_SCHEME'] . '://' . $language->http_host,
            ), '+');
т.е.
//Нерабочие варианты
{$_modx->config['site_url']}
{'site_url' | option}
{'site_url' | placeholder}

//Рабочие
{'+site_url' | placeholder}
 [[!++site_url]]

Все таки я склоняюсь, что pdoPage не дружит с base, но на это наверно только Василий может ответить)
Константин Ильин
05 января 2018, 17:46
0
Никита подскажи пожалуйста, а у тебя нормально ставит ссылки в page.nav с site_url например
http://localizator.but1head.ru/en/
и выводит ли через феном site_url

Не работает
{$_modx->config['site_url']}
Через феном не выводит нужный site_url, а просто дефолт

у меня подмена site_url для феном такая, но вот беда пагинацией
case 'OnHandleRequest':
        if($modx->context->key == 'mgr') return;
        $language = 'en';
        $modx->config['site_url'] =  $_SERVER['REQUEST_SCHEME'] . '://' .$_SERVER['HTTP_HOST'] .'/'. $language.'/';
    break;
Пагинация выдает такие ссылки
site.ru/en/en/cat.html?page=2

Или это глюк pdoPage, а точнее глюк формирования page.nav?
Остальные сниппеты нормально работают, в том числе uri в самом pdoPage, т.к. обертка pdoResource
Константин Ильин
15 декабря 2017, 17:30
0
Василий, подскажи пожалуйста, почему не работает prepareSnippet у pdoField?

Код проверочного сниппета
$modx->log(1,print_r($row,true));
или там не $row?
Константин Ильин
09 декабря 2017, 16:35
0
Спасибо за совет
Ставил тот модуль, может не так настраивал, он все равно ругался на свои же изображения. Ставил на апач конечно.
А так конечно не стоит нагружать сервак, сжать один раз изображения и забыть. Интересно есть ли возможность этим модулем сжимать изображения так сказать в «ручную»? т.е. использовать его API
Константин Ильин
09 декабря 2017, 16:06
0
Правильно я понимаю Вас Алексей, что возможно настроить vds или просто сервак так, чтобы при сжатии все было ок? если да, то поделитесь пожалуйста инструкшоном) ато этот маразматический pagespeed достал
Константин Ильин
09 декабря 2017, 15:57
0
Все таки панда, к большому сожалению сжимает сильнее

Одно и тоже изображение:
Панда = 709.7 KB
optipic.io = 2,86 МБ
Константин Ильин
09 декабря 2017, 15:06
0
будет отлично Илья! начну сам читать) ато прям не терпится)
Константин Ильин
09 декабря 2017, 13:46
0
Перепробовал разные плагины для галп — все равно ругается пейджспид. Честно говоря он всех уже достал. Советует плагины для галпа которые нихера в итоге не сжимают как ему надо.

TinyPNG изображения от него воспринимает более менее, не 100% но подавляющее большинство.

Хочется уже увидеть компонент.

оффтоп: Есть ли у кого нибудь код и нормальный рабочий вариант связки плагинов для gulp?
Константин Ильин
30 ноября 2017, 10:47
0
Не знаю как на модхосте, но при такой структуре
- site.ru
- - public_html
- - - _build
- - - core
После rename_it.php, он переименовывает папку public_html(родительскую папку) в название компонента например modExtra, проверьте и верните в исходное состояние.

после чего site.ru/_build/*.php должны быть доступны
Константин Ильин
30 ноября 2017, 09:09
0
Люди добрые подскажите как надо программировать :))
1 и 2-ой пункт, сделал так же как описал выше.
Константин Ильин
28 ноября 2017, 19:04
0
Понял, Спасибо Василий
Константин Ильин
28 ноября 2017, 19:01
0
перепутал
В ajaxForm все проще конечно было со 3 и 4 пунктом :)
Константин Ильин
28 ноября 2017, 18:50
0
Доброго времени суток!
Подскажите пожалуйста пару моментов как правильней делать и где копать

1. Создал контроллер auth2.class.php, поправил formRegister, проверял некоторые поля из формы, например проверку ссылки Вк:
// Check vk
$vk = trim(@$data['vk']);
if (!empty($vk)) {
    if (!preg_match('/https?:\/\/(www\.)?vk\.com\/([^\/].+)/', $vk)) {
        return $this->error($this->modx->lexicon('Неверная ссылка на ВКонтакте'));
    } 
}else{
    return $this->error('Вы не указали ссылку на ВКонтакте!');
}
После передаю в функцию $this->_createUser(), в ней доже передаю в массив

Правильно ли так проверять поля из формы?

2. Нужно же удалять старый контроллер контроллер auth.class.php?
т.к. я в инспекторе кода поменяю с auth2/formRegister на auth/formRegister и спокойно зарегистрируюсь с помощью email, без обязательных полей

3. Есть ли js колбеки, например мне после того как регистрация прошла и jGlow высвечивает сообщение о том что мне выслана ссылка, мне нужно закрывать модальное окно регистрации и открывать другое окно более информативное чем jGlow.
Или придется копировать /assets/components/office/js/auth/default.js и переписывать?

4. Так же еще небольшой вопрос, при отправке не присваивается класс error для input если они не прошли проверку, как бы хочется выделять красным input. Тут я полагаю переписывать надо auth2.class.php и default.js.
В auth2.class.php для функции error дополнительно передавать массив и название поля с ошибкой
$this->error('Ошибка поля VK', array('err' => 'vk'));
После отлавливать в js и присваивать класс

В ajaxForm все проще конечно было со 2 и 3 пунктом :)
Константин Ильин
28 ноября 2017, 15:37
0
У вас тоже есть такой глюк, когда нажимаешь «Перезагрузить права доступа» — ничего не происходит?

Консоль ошибок не пишет, журнал ошибок тоже пуст

Чего то 2.6.0 пока совсем не радует, обновился только на одном сайте
Константин Ильин
26 ноября 2017, 09:52
1
+1
Михаил, спасибо за такие статьи!!!
Тоже всегда интересовала серверная часть (пора бы уже почитать книжки), как именно там все закручено. Само «программирование на модх» более мение понятно, работаешь с объектами, расширяешь модели, классы, компоненты в конце концов, но вот интересные аспекты:
— штрихкодирование(если есть конечно)
— ПО которое формирует заказ и как оно все отправляется в модх
— что синхронизируется с главным сервером, цены и заказы?
— интересно как сторонние аппараты связны с локальными серверами и как они работают

Получается Ваш продукт с лихвой заменил этот адский-монополистский продукт — 1С, причем с индивидуальной настройкой, без лишних функций! и самое главное — большой скоростью!
Например, я однажды приходил покупать видеокарту для компьютера, стою на кассе, кассир говорит «Подождите пожалуйста», я глянул в его монитор и увидел как там долго долго грузилась 1С… минуты через 3-4 только начал оформлять заказ.

Не так давно приходилось сталкиваться с 1С, я ругался матом… это какое-то извращение. Я посоветовал им, что под их задачи проще было написать веб интерфейс и все индивидуально заточено. И на вашем примере АСУ, я в конце концов убедился, что спокойно можно заменить 1С, да и еще с десятками плюсов.
Константин Ильин
09 ноября 2017, 19:41
+3
Да, тоже вспомнил наставление: Если не работает у тебя пробуй на модхосте
Минут 10 назад тоже воспроизвел, все ок. Начал у себя лазать, а потом оказалось, что таблицу сортирует JS.
Теперь стыдно.
Константин Ильин
09 ноября 2017, 19:15
0
Тоже так подумал потом и написал:)
Константин Ильин
09 ноября 2017, 19:08
0
Володь, похожая беда, в последнем обновлении pdoTools написано может с этим связанно:
- [pdoFetch] Ability to use arrays in "&sortby".

Поле createdon в модели
<field key="createdon" dbtype="int" precision="11" phptype="int" null="false" default="0"/>

Вызов
{'!pdoPage' | snippet : [
                    'class' => 'SimpleLog'
                    ,'sortby' => 'createdon'
                    ,'limit' => 0
                    ,'where' => '{"user" : '~$_modx->user.id~'}'
                    ,'tpl' => 'log.tpl'
                ]}

Лог
0.0002570: pdoTools loaded
0.0000269: xPDO query object created
0.0000849: Added selection of SimpleLog: SQL_CALC_FOUND_ROWS `id`, `type`, `user`, `description`, `createdon`, `sum`, `fake`
0.0001092: Added where condition: user=2
0.0000598: Sorted by SimpleLog.createdon, DESC
0.0002530: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `SimpleLog`.`id`, `SimpleLog`.`type`, `SimpleLog`.`user`, `SimpleLog`.`description`, `SimpleLog`.`createdon`, `SimpleLog`.`sum`, `SimpleLog`.`fake` FROM `mfm_freelife_log` AS `SimpleLog` WHERE `SimpleLog`.`user` = 2 ORDER BY SimpleLog.createdon DESC "
0.0000710: SQL executed
0.0001440: Total rows: 3
0.0000148: Rows fetched
0.0013311: Loaded "modChunk" with name "log.tpl"
0.0039690: Compiled Fenom chunk with name "modchunk/28"
0.0055280: Returning processed chunks
0.0066950: Total time
6 291 456: Memory usage

По запросу вроде все есть, но должно быть так ведь(красным отметил):
joxi.ru/823n376IJdxeVm
Константин Ильин
09 ноября 2017, 10:25
0
Вопрос из серии банальных:
msCart на странице корзины вызывается некешированным? ну и msMiniCart тоже?