Shedko Denis

Shedko Denis

С нами с 23 декабря 2020; Место в рейтинге пользователей: #167
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:
но не уверен, что эта ошибка там «отметится»
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=
Shedko Denis
23 июля 2021, 16:59
0
Проблема в том что:


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

Потому и хотелось бы узнать страницу(ы) источник ошибки.
Shedko Denis
23 июля 2021, 15:33
0
Спасибо за ответы.

Но есть нюанс — уж больно много страниц и не понимаю как отследить на какой странице и в каком чанке/снипете эта(и) ошибки.

Можно ли как-то в логи об ошибках MODX добавить URI источника ошибки?
Shedko Denis
11 июля 2021, 15:11
0
Спасибо за предложение.

Но придется заставить править «в ручную», ибо таких чанков может быть несколько разных на странице.
Shedko Denis
09 июля 2021, 18:22
0
Да не совсем стандартный вопрос.

Есть такая потребность, подумал, а почему нет? Вдруг я чего не знаю.
Shedko Denis
06 июля 2021, 14:54
0
Огромное спасибо. Работает.
Shedko Denis
05 июля 2021, 17:23
0
Да уже понял — что сам себе буратино подложил бяку.

Но сайт на fenom уже не переведешь (в чанках он включен) — около 2тыс страниц. Сайт «ложится» сразу, поди разбери почему — при большом количестве страниц/чанков/сниппетов.

Попробую вынести в чанк и там уже сделать проверку на {$_modx->resource.parent}
Shedko Denis
05 июля 2021, 17:04
0
Да. pdoResources не добавляет.

Как выяснилось. Добавляет вот что в шаблоне:
[[If? &subject=`[[*parent]]` &operator=`in_array` &operand=`236` &then=`
<!-- БЛОГ статьи -->
 [[TicketComments? &allowGuest=`1` &autoPublish=`0` &autoPublishGuest=`0` &allowGuestEdit=`0`  ]]
`]]
Т.е. MODX обрабатывая все свои тэги вставляет этот код несмотря на то, что этот код использоваться не будет.

Т.е. выход только один — выносить отзывы и блоги (где разрешено комментирование) в отдельный шаблон?
Shedko Denis
05 июля 2021, 15:25
0
Спасибо. Это знаю. Но менеджеры (девушки) — будут против )

Скорее не понимаю как вывести через чанк документы к которым «привязаны» tickeks но без добавления указанного куска в header
Shedko Denis
05 июля 2021, 14:41
0
Проверьте вызов сниппета/чанка, или параметр не тот или где-то кавычка не там стоит. Если не ошибаюсь, то это родной фильтр из коробки
stripString 	Удаляет строку указанного значения 	[[+name:stripString=`Mr.`]]
Shedko Denis
05 мая 2021, 14:50
0
В AMP сторонние JS-скрипты не работают.
И просто включив плагин — вы ничего не получите. Или валидацию страница не пройдет (99%) или разметка поплывет. Там ооочень много подводных камней.

АМП как и YandexRSS — в основном для новостных/статейных сайтов. АМП для магазинов мало подходит — конверсии никакой почти. Только если низкочастотные выводить в амп — и то это же только для гугла.
Shedko Denis
04 мая 2021, 14:57
0
Перед своим вызовом pdoResources пишите
[[*id:input=`value`:toPlaceholder=`param`]]
где value — значение переменной, param — название переменной
в tpl используете как:
[[+param]]
Shedko Denis
27 января 2021, 14:54
0
В текущем проекте да ТурбоРСС не мешает, т.к. запрос на *контент* идет через АПИ и плагин не срабатывает. А вот с АМП — беда, придется переписывать. Рисунки отдаются не обработанные… пока не проверяли как они себя ведут. Может и зря «наговариваю».
Shedko Denis
26 января 2021, 19:08
0
Для новых браузеров смысла в этом дополнении нет (да покупал его).
Ибо добавляя код:
loading="lazy"
в
<img class="img-responsive"  loading="lazy" src="img/modx.pro.png">
вы и так говорите современным браузерам не грузить картинку если она не видна. А все плагины/скрипты мешают еще реализации AMP и ТурбоРСС
Shedko Denis
26 января 2021, 18:58
0
Решил созданием сниппета GetPageContent с кодом

<?php
$resource = $modx->getObject("modResource", array("id" => "$input"));
return $resource->get("content");
и вызовом
[[!GetPageContent? &input={$id}]]
Shedko Denis
25 января 2021, 13:15
0
Настроил согласно этой инструкции, но появился вопрос.

В текст статьи по этому коду:
{'!rssCDATA' | snippet : [ 'cnt' => ( $id | resource : 'content' | replace : '"assets/' : ('"' ~ $_modx->config.site_url ~ 'assets/') ) ]}
уходит экранированный текст, где все тэги «побиты»
<p><img src="/img/lys.jpg" width="300" alt="Монтаж люстры" align="right"   vspace="0" hspace="5">
<p>Теперь Вам достаточно просто обратиться в нашу компанию. Больше нет необходимости в поиске электрика, наши специалисты сделают это для Вас.</p>
<h2>Монтаж люстры</h2>
<p>Все <b> люстры </b> крепятся практически одинаково, приведем три примера.</p>


Подскажите, что я сделал не так )
Shedko Denis
04 января 2021, 19:39
0
учитывая свои потребности ограничился таким сниппетом:

<?php
if( isset($_GET['amp'])) {
	return  'yes';
} else {
	return 'no';
}
Shedko Denis
04 января 2021, 18:47
0
Если предварительно отработал такой код:

<?php
$id = $modx->resource->get('id'); 
$resource = $modx->getObject('modResource',$id);
$template = $modx->resource->template; 
if( isset($_GET['amp'])) {
	$modx->resource->set('template', 41);
} 
$modx->resource->cacheable = false;
привязан на OnLoadWebDocument и при наличии & меняет на шаблон для amp-страниц.

Но не смотря на то что страница использует указанный «41» шаблон (это видно визуально), вышеприведенный код отдает все равно старый шаблон страницы.

Может есть какое решение?

( необходимо чтоб не выводить сниппеты в амп версии)
Shedko Denis
23 декабря 2020, 00:29
0
Добрый вечер/день

Проясните как background-image задействовать.

Для сомневающихся — стоит ли тратить свое время(деньги) на то что уже реализовано и проще купить)