Дмитрий Кондаков

Дмитрий Кондаков

С нами с 28 февраля 2013; Место в рейтинге пользователей: #265
Василий Наумкин
27 сентября 2015, 06:07
1
+9
Искренне печалит, что нет (и я так понимаю, не планируется) вообще никакой документации.
Илья Уткин
25 августа 2015, 13:52
3
+1
Нашел я, в чем проблемка. На Shared-хостингах распространена практика использования связки NGINX и Apache. В этом случае вся статика (картинки и текстовые файлы) обрабатывается NGINX'ом, а php-файлы обрабатывает Apache.

Таким образом, файл /core/docs/changelog.txt будет доступен независимо от того, что указано в .htaccess, а MODX проверяет доступность именно этого файла.

Выход один. Сначала проверить, что у вас не открывается в браузере файл /core/cache/logs/error.log, а потом просто удалить файл changelog.txt

Тогда ошибка исчезнет.
Fi1osof
23 августа 2015, 18:31
1
+1
На самом деле предложенный багфикс вполне может спасти вашу работу. gist.github.com/Fi1osof/ff3ea018841b1bb1f99b
Обновите этот класс и все. Других ошибок я не обнаружил. Так же при наличии файла core/model/modx/processors/element/propertyset/update.class.php (если вы обновлялись, а не устанавливали с нуля, должен присутствовать), можно просто удалить файл core/model/modx/processors/element/propertyset/updatefromelement.class.php, все должно работать.
Василий Наумкин
07 августа 2015, 12:53
2
+6
Проверил на скорую руку, вроде работает:
1. Берем файл для Smarty.
2. Загружаем его на сервер как /assets/components/ace/ace/mode-smarty.js
3. В файле /assets/components/ace/modx.texteditor.js на 7й строке меняем mode c text на smarty.
4. Хорошенько чистим кэш браузера

Результат:
Dmitry Rodionov
19 мая 2015, 14:22
2
+2
В итоге для категорий товара я пришел к простому решению, в 2 этапа:
1)сниппет с 1 sql запросом и рекурсивной генерацией меню, для большей быстроты генерации на лету вес можно еще хранить
2)js скрипт который пробегается по дереву и проставляет текущий пункт и родителей

Скорость генерации сократилась с 10s до 1s при первом вызове и потом до 0.05s при кешировании
wgame
25 февраля 2015, 02:08
1
+1
сталкивался с подобный Василий подсказал что в системную настройку session_cookie_domain нужно добавить .sitename.ru
Алексей Карташов
19 января 2015, 17:32
1
0
Я для себя написал универсальную функцию изменения системной настройки, которая 100 пудов её изменяет и новое значение доступно сразу же и без дальнейших причуд:
function changeSetting ($key = '', $value, $config = array()) {
  global $modx;

  if (empty($key)) { return false; }

  /* @var $response modProcessorResponse */
  $response = $modx->runProcessor('system/settings/update', array_merge(array(
    'key' => $key,
    'value' => $value,
    'namespace' => 'core'
  ), $config));

  if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, '[avk] Cann\'t update setting with messages: '. print_r($response->getAllErrors()));
    return false;
  }
  $modx->reloadConfig();
  return true;
}

Вызывать надо вот так:
changeSetting('pdoFetch.class', 'pdotools.mypdofetch', array(
  'namespace' => 'pdotools'
));

Namespace указывать надо обязательно, если настройка из стороннего компонента.
Максим Кузнецов
05 января 2015, 10:06
4
+1
Если честно, я и прелести tagLister'a не оценил — он уж на случай крайней лени, как по мне.

Вот как реализованы теги у меня (может, кому пригодится):

1. Дополнительное поле «tags»
Параметры ввода: Авто-метка (можно и простой строкой, по желанию)

2. Сниппет «tags», делающий теги ссылками (для последующего поиска по ним)
<?php
	if ($input == ''){
		return;
	}
	$tags = explode(',',$input);
	foreach ($tags as $key => $value){
		$output[] = '<a href="'.$modx->makeurl($tagsPage, '').'/'.$value.'" itemprop="keywords">'.$value.'</a>'; 
	} 
	return implode(', ',$output);

3. Вывод в чанке
[[*tags:notempty=`
<div class="tagList" itemscope itemtype="http://schema.org/CreativeWork">
	[[!tags? &tagsPage=`91` &input=`[[*tags]]`]]
</div>
`]]
— где &tagsPage — параметр, определяющий айди страницы поиска по тегам для формирования ссылки

Ну и дополнительно, для «полного спектра услуг»:

4. Создаем страницу "Поиск по тегам" с псевдонимом tag, где будем выводить все теги, удовлетворяющие запросу:
[[!pdoPage &parents=`0` &includeContent=`1` &where=`{"tags:LIKE":"%[[!GET? &get=`tag`]]%"}` &includeTVs=`tags` &limit=`10` &sortby=`createdon` &sortdir=`DESC` &depth=`1` &tpl=`tag.Item`]]
— где сниппет GET перехватывает выбранный тег в адресной строке.

GET
<?php
	return $_GET[$get];

5. Дописываем .htaccess, чтобы адресная строка поиска приняла вид site.ru/tag/Название_тега
RewriteRule ^tag/([^/]+)$ /tag?tag=$1 [L]
Дмитрий
08 ноября 2014, 12:37
1
0
Всех желающих приглашаю протестировать новые функции.
Инструкция
О всех найденных багах просьба отписаться в комментариях.