Всего 125 673 комментария

Александр Мельник
25 июля 2021, 22:06
-1
Этот пост становится для меня лингвистической мукой.
Сергей, я понимаю, что русский ( как и для меня) не ваш родной язык, но что значит фраза «Если подойдет не могу гарантировать.»
Как так — если подойдет не могу гарантировать. Ведь правильная фраза такая? — не могу гарантировать, что вам подойдет)
Сергій
25 июля 2021, 21:49
+1
Есть готовое решение для добавление документов в личный кабинет, напишите в ЛС покажу код. Если подойдет не могу гарантировать.
Николай Савин
25 июля 2021, 21:39
0
Условие выборки — это одномерный массив. У вас двумерный почему то. В нем проблема. Как минимум в нем тоже
Stepan
25 июля 2021, 20:36
0
например
не работает запрос
$_lim = $modx->getObject( 'LimitedUser', [
   'team_id' => clearID($_chek_team['team_id']),
   'lim_module' => 'corp_event',
   'lim_finish:>' => date("Y-m-d G:i", time()),
   [
     'lim_used' => 0,
     'OR:res_id' => $_res->get('id'),
   ]
] );
и вот как узнать что именно не так
Stepan
25 июля 2021, 20:35
0
ну еще можно и modx не пользоваться в принципе, вопрос то не в этом…
Александр Мельник
25 июля 2021, 18:17
-1
Думаю Михаил ответил вам правильно.
Но вот лично мне, совершенно не понятно, что такое
— форма отправки данных через личный кабинет
— возможность в личном кабинете прикрепить документы, возможностью их добавлять/удалять
для моего мозга это просто ужасная пытка, поэтому пожалуйста, расскажите подробнее.
Форма отправки каких данных? Отправки куда данных? Отправки зачем данных? Это ведь звучит просто ужасно, все равно, что — а посоветуйте магазин чтобы с товарами и чтобы там мигало что-то, а чтобы нажимаешь кнопочку а потом сразу Ух!
Баха Волков
25 июля 2021, 15:48
+1
$resource = $modx->getObject('modResource', $id);
Algirdas
25 июля 2021, 15:15
0
Проблема в том, что это не мой код, я его взял на просторах интернета. Сам я писать вообще не умею. И в оригинале там так и было:

$tv = $resource->getTVValue($tvname);
Но в таком случае у меня выдает ошибку:

Fatal error: Uncaught Error: Call to a member function getTVValue() on null in C:\bla-bla\core\cache\includes\elements\modsnippet\34.include.cache.php:11 Stack trace: #0 C:\bla-bla\core\model\modx\modscript.class.php(76): include() #1 C:\bla-bla\core\model\modx\modparser.class.php(537): modScript->process(NULL) #2 C:\bla-bla\core\components\pdotools\model\pdotools\pdoparser.class.php(273): modParser->processTag(Array, true) #3 C:\bla-bla\core\model\modx\modparser.class.php(251): pdoParser->processTag(Array, true) #4 C:\bla-bla\core\components\pdotools\model\pdotools\pdoparser.class.php(65): modParser->processElementTags('', '<!DOCTYPE html>...', true, false, '[[', ']]', Array, 9) #5 C:\bla-bla\core\model\modx\modresource.class.php(546): pdoParser->processElementTags('', '<!DOCTYPE html>...', true, false, '[[', ']]', Array, 10) #6 C:\bla-bla\core\model\modx\modresou in C:\bla-bla\core\cache\includes\elements\modsnippet\34.include.cache.php on line 11
Павел Гвоздь
25 июля 2021, 05:10
0
Учитывая, что у вас помимо Tickets на сайте ещё что-то есть, стоило бы удостовериться точно, что в нём дело. А по поводу «как решить», если в Тикетс дело, то доработать Тикетс в том месте, где он затирает неугодные ему properties. Но мне больше интересно, почему свойство «ms2gallery» остаётся на месте…
Артур Шевченко
24 июля 2021, 22:33
+1
Ну ты же получил объект ресурса в переменную, чтобы получить значение ТВ надо делать так $resource->getTVValue(tvname); А $modx->resource->getTVValue получает значение ТВ ресурса в котором ты вызываешь сниппет. И лучше конечно делать запрос в БД через newQuery и сразу получать сумму, а не вот это вот всё. Твой код прям сильно неоптимальный.
Shedko Denis
24 июля 2021, 00:16
0
OK. c pdo — все норм, но как отловить
[2021-07-23 23:56:45] (ERROR @ /home/***/public_html/core/model/modx/modparser.class.php : 541) Could not find snippet with name Рассрочка под 0%.
да понимаю, что это парень-«набивщик» который наполняет сайт заказанными текстами ошибся где-то в скобках, но ИМХО как-то не очень удачно (опять же по моему мнению) сделан лог ошибок — не видно где ошибка, если вызов чанков/снипетов.
добавил доп поля вывода в логах в
case E_STRICT:
но не уверен, что эта ошибка там «отметится»
@Наумов Алексей, спасибо, отличный пример!
Не занудства ради, ибо сам не привыкну никак, но хочется уточнить что в «новом модном JS» принято неизменяемые переменные объявлять через const, то есть:
const override_field ... const enabled ... const available ... const override_fields
А изменяемые, если им не нужна глобальная область видимости, через
let tmp;
Andrey
23 июля 2021, 19:11
0
Можно по условию дебажить прямо в сниппете с выводом различных данных. Что-то такое добавить в pdopage:
if (!is_int($scriptProperties['limit']) || $scriptProperties['limit'] < 1) {
    $modx->log(MODX_LOG_LEVEL_ERROR, 'Ошибка pdopage. Параметр limit содержит: [' . $scriptProperties['limit'] . ']. В ресурсе: ' . $modx->resource->get('id'));
}
В общем, можно поиграться по-всякому.
Shedko Denis
23 июля 2021, 17:59
0
Огромное спасибо.
Теперь хоть будет понятно где искать.

в файле \core\model\modx\error\moderrorhandler.class.php

case E_WARNING:
                $handled= true;
                $errmsg= 'PHP warning: ' . $errstr;
                $this->modx->log(modX::LOG_LEVEL_ERROR, $errmsg, '', '', $errfile, $errline);
                break;
поменял на
case E_WARNING:
                $handled= true;
                $errmsg= 'PHP warning: ' .  $this->modx->resource->get('id') . ' ' . $errstr;
                $this->modx->log(modX::LOG_LEVEL_ERROR, $errmsg, '', '', $errfile, $errline);
                break;
и да теперь хоть вижу на какой странице искать ошибку/опечатку.

в первой попавшейся было
[[pdoPage? &element=`msProducts`&parents=`26` &limit='250' &sortby=`{"menuindex":"asc"}` ]]`]]
т.е. не кавычки в limit=
Andrey
23 июля 2021, 17:39
2
+1
Ну, можно побаловаться с выводом в журнал… Вот вывод id ресурса, например:
$modx->log(MODX_LOG_LEVEL_ERROR, $modx->resource->get('id'));
Можно с пояснительным текстом:
$modx->log(MODX_LOG_LEVEL_ERROR, 'ID ресурса: ' . $modx->resource->get('id'));
Shedko Denis
23 июля 2021, 16:59
0
Проблема в том что:


Да это число можно уменьшить в разы, тут считает все вызовы pdoPage даже в снипетах, но число зашкаливает все равно.

Потому и хотелось бы узнать страницу(ы) источник ошибки.
Andrey
23 июля 2021, 16:43
0
В вызове pdopage посмотрите не стоит ли в лимите 0.
Наумов Алексей
23 июля 2021, 16:38
0
{$_modx->runSnippet('mapexMap', [
		'resource' => '8',
               'tvName' => 'ИМЯ ВАШЕГО TV ПОЛЯ',
		'width' => '100%',
		'height' => '460px',
		'mapId' => 'mapexMap1'
])}