Всего 91 968 комментариев

Sergey
1 час назад
0
Если заполнить все поля, то выдает такую ошибку
Notice: Trying to get property of non-object in /home/i/site.ru/public_html/core/components/minishop2/model/minishop2/msorderhandler.class.php on line 493
{"success":false,"message":"\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043e\u043c\u0443 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0437\u0430\u043a\u0430\u0437\u0443","data":[]}
Александр
1 час назад
0
Попробовали использовать и
1 вешался модкс на строке
$mes = $modx->getChunk($tpl, $scriptProperties);
2 не отправлял сообщения с пробелами.
Вот переписанный smschook
<?php
$fields = $hook->getValues();
$phones = $scriptProperties['smschook_phones'];
if(empty($phones)){
    $phones = $modx->getOption('smschook_phones', null, '');
}

$tpl = $scriptProperties['smschook_tpl'];
$mes = $modx->getChunk($tpl, $fields);
//return true;
$data = [
    'login' => $modx->getOption('smschook_login', null, ''),
    'psw' => $modx->getOption('smschook_password', null, ''),
    'phones' => $phones,
    'mes' => $mes
];

if (empty($data['login']) || empty($data['psw'])
    || empty($data['phones']) || empty($data['mes']) || empty($scriptProperties['smschook_tpl'])) {
    $modx->log(modX::LOG_LEVEL_ERROR, '[smscHook] Error sending SMS: empty login, password, phones, message or tpl'.$data['login'].$data['psw'].$phones.$tpl );
    return true;
}

$link = 'https://smsc.ru/sys/send.php?login=' . $data['login'] . '&psw=' . $data['psw'] . '&phones=' . $data['phones'] . '&mes=' . urlencode($data['mes']) . '&charset=utf-8';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200 && substr($res, 0, 2) == 'OK') {
    curl_close($ch);
    return true;
}
$modx->log(modX::LOG_LEVEL_ERROR, '[smscHook] Error sending SMS: ' . print_r(curl_getinfo($ch), true));
curl_close($ch);
return true;
Василий Наумкин
2 часа назад
0
Конечно, старичкам трудно осваивать что-то новое, им бы внуков понянчить.

На мой взгляд и вопрос с кешированием файлов стилей и скриптов также чрезмерно раздут. Прочел и ужаснулся, люди целые программы разрабатывают для этого.
Внезапно, программисты любят писать программы и автоматизировать свой труд!

Во время разработки сайта это кеширование вообще не имеет смысла, достаточно нажать в браузере ctrl+f5 и весь кеш браузера слетел.
А еще лучше использовать webpack-dev-server, которому ничего и нажимать не надо, он в реальном времени отображает все изменения из IDE.

На продакшине даже если и пришлось вносить какие то доработку в верстку или стили
То просто выгрузил все изменения из IDE и запустил npm run build. Чтобы не ошибиться и не забыть что-то нажать в админке.

Еще недавно я так же вручную менял версию, но всё время выходило вот так:

И теперь это уже автоматизировано.

В 95 процентов случаев веб разработчики делают довольно простые проекты
Но бывает и наоборот, когда разработчик продолжает развиваться и делает всё более сложные проекты.
Василий Наумкин
2 часа назад
+1
Просто обнови pdoTools еще раз
Алексей
3 часа назад
0
Я тут наобновлялся (jevix, bt4) и в одном месте при вызове
[[!pdoPage? &tpl=`articles_sidebar` &parents=`6` &pageLimit=`6` &includeTVs=`article_image`]]
вылезло в кол-ве 6 штук:

Notice
: Undefined index: link in
...core/components/pdotools/model/pdotools/pdofetch.class.php
on line
150


Я не уверен, что это из-за обновлений, т.к. точно по времени не отследил момент появления этого сообщения.
Подскажите пожалуйста, как исправить?
Prihod
3 часа назад
0
выполни в консоли modx

$modx->getService('msimportexport', 'Msie');
$manager = $modx->getManager();

$manager->addField('MsiePresetsFields', 'properties', array('before' => 'fields'));
$manager->addField('MsiePresetsFields', 'where', array('before' => 'fields'));
    $manager->addField('MsiePresetsFields', 'select', array('before' => 'fields'));
$manager->addField('MsiePresetsFields', 'innerjoin', array('before' => 'fields'));
$manager->addField('MsiePresetsFields', 'leftjoin', array('before' => 'fields'));
$manager->addField('MsieCron', 'run_user', array('before' => 'date_start'));

if (!$obj = $modx->getObject('MsieHeadAlias', array('key' => 'put_thumb'))) {
    $obj = $modx->newObject('MsieHeadAlias');
    $obj->set('key', 'put_thumb');
    $obj->set('value', 'Фото');
    $obj->save();
}

if (!$obj = $modx->getObject('MsieHeadAlias', array('key' => 'vendor.name'))) {
    $obj = $modx->newObject('MsieHeadAlias');
    $obj->set('key', 'vendor.name');
    $obj->set('value', 'Производитель');
    $obj->save();
}
Sergey
3 часа назад
0
убрал все поля кроме тел, заполняю пишет «Вы должны заполнить требуемые поля»
что ему надо еще?
picplus.ru/img/1903/26/0ddf34cd.png
Илья Александрович
4 часа назад
0
Приветствую.
pdoArchive
dateField — createdon — Поле ресурса для получения даты документа: createdon, publishedon или editedon.
Можно ли как то dateField передать дату из TV поля?
Владислав
4 часа назад
0
Обычно разрешаю в маске минишопа пробелы и скобки, а потом добавляю проверку вот этой штукой
igorescobar.github.io/jQuery-Mask-Plugin/
Misha Bulic
4 часа назад
0
Там в обсуждении в телеге предложили такой вариант:
@Евгений Generalov
<?php
switch($scriptProperties['options']['type']) {
    case 'script':
        echo '<script src="'.$input.'?v='.filemtime($_SERVER['DOCUMENT_ROOT'] .'/'. $input).'"></script>';
        break;

    case 'stylesheet':
        echo '<link rel="stylesheet" type="text/css" href="'.$input.'?v='.filemtime($_SERVER['DOCUMENT_ROOT'] .'/'. $input).'">';
        break;
}
Использование:
{'assets/css/main.min.css'| includeFile : ['type' => 'stylesheet']}
Наумов Алексей
4 часа назад
0
Не совсем. OnEcMessagePublish сработает когда в админке будет выбран пункт меню «Опубликовать». Но если просто отредактировать сообщение, проставив галочку «Опубликован», то будет событие OnEcMessageSave.

Если нужно отслеживать, что поменялся список отзывов, то надо ловить все события: OnEcMessageSave, OnEcMessagePublish, OnEcMessageUnpublish, OnEcMessageDelete, OnEcMessageUndelete, OnEcMessageRemove.

плагин один, код один, события несколько. Уже в плагине смотрите, что произошло.
Получить id вроде как, если не путаюсь:
$id = $object->get('id');
perfkirill
5 часов назад
0
А где пример как делать интеграцию с msOptionsColor?
perfkirill
5 часов назад
0
Ну короче недосоздалось там… Починил, вроде…
Максим
5 часов назад
0
Ну SIGNED это по-сути диапазон целых чисел. У меня в базе пока целые числа. Так что не думаю что DECIMAL изменит ситуацию.
Но, Илья, в любом случае спасибо! Буду тестировать!)
P.S. Пока еще не проверял BETWEEN с числами с плавающей точкой!)))
Artur Plugin
5 часов назад
0
у меня есть компонент который посылает сообщения/файлы юзеру через телеграм бота без всяких вебхуков и пушеров, как письма по ид юзера вместо email адреса. Сюда залить не получилось да и правилами нельзя заливать похожее, на моем сайте качайте. подробная инструкция как это запустить там внутри. юзер просто запускает бота и дает свой ид, по нему ему через этого бота сервер посылает тексты/файлы.
Impulse
5 часов назад
0
Спасибо. То есть при публикации сообщения нужно использовать событие «OnEcMessagePublish» только пока не дошло как получить допустим ID публикуемого сообщения.
Наумов Алексей
5 часов назад
0
По событиям документации нет.

Список:
// ecThread events
OnBeforeEcThreadRemove
OnEcThreadRemove
// ecMessage events
OnBeforeEcMessageSave
OnEcMessageSave
OnBeforeEcMessagePublish
OnEcMessagePublish
OnBeforeEcMessageUnpublish
OnEcMessageUnpublish
OnBeforeEcMessageDelete
OnEcMessageDelete
OnBeforeEcMessageUndelete
OnEcMessageUndelete
OnBeforeEcMessageRemove
OnEcMessageRemove

В событии как правило доступен $object (ecMessage или ecThread).
Impulse
5 часов назад
0
Всем привет, а есть где нибудь документация по системным событиям данного плагина? Есть необходимость собирать поля поля при публикации: ресурс, отправитель, текст и тд. Где уже только не искал, в ТП компонента можно не писать покупал более года назад.
perfkirill
5 часов назад
0
Добрый день,

Подскажите, у меня не отображается «Список настроек полей:» после обновления на новую версию, при чем в базе создается. А при выборе ничего нет

[2019-03-26 14:17:26] (ERROR @ core/xpdo/om/xpdoobject.class.php: 240) Error 42S22 executing statement:
Array
(
[0] => 42S22
[1] => 1054
[2] => Unknown column 'MsiePresetsFields.where' in 'field list'
)