Александр

Александр

С нами с 10 февраля 2015; Место в рейтинге пользователей: #142
Александр
15 ноября 2016, 11:00
0
Увы, даже поблагодарив, он не сможет узнать или ответить на данную благодарность…
Александр
15 ноября 2016, 10:09
+2
дай Вам бог здоровья побольше)) И Вам, и Евгению, спасибо огромное!!!
Александр
03 ноября 2016, 16:15
0
очень странно, [[12]] должно было игнорироваться в формировании ссылок и восприниматься, как вызов некешированного сниппета
Александр
03 ноября 2016, 05:34
0
Хотя можно попробовать более изящное решение…
1) На всякий случай, приложение у Вас привязано к modx.com или к modstore? В офф репозитории обновления могут отставать от modstore. Если pdoTools все же привязано к офф репозиторию, попробуйте деинсталировать и удалить, потом скачать с modstore.
2) Если у Вас в данном примере класс ресурса только «документ» (а не символическая ссылка допустим), попробуйте поставить параметр в вызов 'useWeblinkUrl ' => false.

На крайний случай можно всегда откатиться до предыдущей версии pdoTools или использовать вместо pdoMenu — pdoResources
Александр
03 ноября 2016, 05:11
0
7рка строгая очень, увы, с ней знаком плохо.
Темнеменее 7ой версией пользуются в последнее время часто и с подобными проблемами вроде не сталкивались. Тут или Вы упустили важное обновление php (например 7.0.11), которое могло повлиять на данную функцию, или настройки к функциям черезмерно строгие. Боюсь, исправив данную проблему, легко посыпятся другие.
Но если уж говорить о исправлении ситуации, в фун-ию надо подставить строку, php воспринимает строчку, как массив.
Допишите выше:
$contentRow = $row['content'] . '';
А в фрагментах, указанных Вами поменяйте $row['content'] на $contentRow
Сразу оговорюсь, мое решение неправильное, но рабочее.
Хотя судя по тому, что Вы пользуетесь fenom и работаете на 7рке, опыта для такого решения у Вас должно быть достаточно
Александр
03 ноября 2016, 02:04
0
connectors/config.core.php
core/config/config.core.php
manager/config.core.php
и config.core.php в корне

Везде правятся пути + удаляем ВСЕ СОДЕРЖИМОЕ папки, но не саму папку
core/cache/
Александр
03 ноября 2016, 01:59
1
0
Вызов какой у Вас? И версия php?
Александр
21 октября 2016, 16:04
0
Жаль, что никто не знает… =(
Александр
21 октября 2016, 09:56
0
Не думал, что разница в этом столь многозначительна. Смотрел, что работает с массивами, и случайно клацнул не на ту вкладку (когда вставлял ссылку здесь). В любом случае старался помочь человеку, и вроде как получилось…
Александр
21 октября 2016, 09:32
0
Я не исключаю такой вариант, сам не проверял, спорить не стану. Процитировал офф доку, и ссылку на нее дал.
Александр
20 октября 2016, 12:30
+1
Не знаю, откуда Вы это вызываете, но там, где идет установка плейсхолдеров:
$modx->toPlaceholder('order_width',$width);
$modx->toPlaceholder('order_depth',$depth);
$modx->toPlaceholder('order_height',$height);
допишите:
$pdo = $modx->getService('pdoTools');
$tpl = "optionsTpl";
$c = '';
if (!empty($additional_modules) && is_array($additional_modules)) {
		foreach ($additional_modules as $key => $innervalue) {
			if (count($innervalue) == 2) {
				$c .= $pdo->getChunk($tpl, $innervalue);
			}
		}
}
$modx->toPlaceholder('order_options',$c);
Увы, я с работой miniShop очень слабо знаком. Дал бы более дельный совет, если бы работал с ним.

Далее в шаблоне указываете например:
<ul>[[+order_options]]</ul>
И система зарендерит Вам:
<ul>
<li>Блок ящиков ширина 40-60 см. в количестве 2 шт.</li>
<li>Угловой элемент правый 2 шт.</li>
<li>Приставной элемент №3 ширина 60 см 1 шт.</li>
и т.д.
</ul>
Александр
20 октября 2016, 11:51
+1
if (!empty($additional_modules) && is_array($additional_modules)) {
		foreach ($additional_modules as $key => $innervalue) {
			if (count($innervalue) == 2) {
				$c = '';
				foreach($innervalue  as  $inner_key => $value) {
					if ($inner_key == 'value') { //зачем отсекать по значению, если отсекли уже по кол-ву значений выше
						print_r("<pre>$value</pre>"); //Это рабочий вариант с print_r ?
						$c.= $value .', ';					
					}
				}
	$modx->toPlaceholders('additional_modules',$c,'my','.');
	print_r($c);
			}
}

}
Мой вариант:
/* Тут подразумевается, что pdoTools уже подключен,
$pdo = $modx->getService('pdoTools');
*/
$tpl = "optionsTpl"; /*Указываем чанк, который обрабатывает цикл со значениями, 
например чанк с содержимым "<li>[[+value]] в количестве [[+count]] шт.</li>" выведет нам:
<li>Блок ящиков ширина 40-60 см. в количестве 1 шт.</li>
*/
$c = '';
if (!empty($additional_modules) && is_array($additional_modules)) {
		foreach ($additional_modules as $key => $innervalue) {
			if (count($innervalue) == 2) {
				$c .= $pdo->getChunk($tpl, $innervalue); //Выводим все значения массива в вышеупомянутый чанк
			}
		}
}
return $c;
Подробнее про getChunk
Александр
20 октября 2016, 06:55
0
В документации написано, что вложенные массивы не могут использоваться методом toPlaceholders.
...the $placeholders array can not be deeply nested. It must be a simple associative array.
Могу только предложить пройтись по ним циклом.

Если же у Вас в примере подразумевается несколько простых массивов, тот факт, что выводится только последний элемент логичен. Имя плейсхолдера у Вас одно и тоже, следовательно при отправке массивов в плейсхолдер — оно заменяется. Подробнее код можете написать?
Александр
18 октября 2016, 19:58
0
тип ввода у ТВ date у Вас какой? Если стоит тип «дата», то допишите параметр &debug=`1` и напишите здесь sql запрос, который формируется. (Сам sql после установки параметра должен быть или на месте вызова, или в логах modx)
Александр
30 сентября 2016, 15:35
+1
Между делом, где-то в глубине души проскользнуло мгновенье гордого патриота, то бишь, и вклад русскоязычного разработчика заметили =)
Оффтоп
Александр
27 сентября 2016, 13:20
0
ключ у Вас какой???
Александр
27 сентября 2016, 11:28
0
Насколько я понял, modx пытается выбрать контекст по ключу, но неможет его найти (ключ). Что у Вас в ключе контекста?
и что в базе данных в таблице [префикс, обычно modx_]context?
Александр
27 сентября 2016, 11:23
0
даже не так написал. Идет установка — выбрать текущим контекстом, контекст, с параметром fk.

Что это за параметр, я незнаю. нужно дальше смотреть исходники.
Александр
27 сентября 2016, 11:19
0
почему то не определяется текущий контекст. В исходниках так:

$this->context = $this->modx->getContext($this->getProperty('fk'));
        if (empty($this->context)) {
            return $this->modx->lexicon('setting_err_nf');
        }
Т.е. модX смотрит опцию контекста 'fk' и неможет его найти. Попробуйте пересоздать контекст. Или смотрите в права доступа.

{Имя текущего контекста}
{группа}Administrator
{ранг}9999
{политика доступа}Context