Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
01 сентября 2015, 14:40
+3
Классно. Может, создать пулл-реквест в modExtra Василия? Думаю, он примет. Удобно будет всем.
Илья Уткин
31 августа 2015, 20:16
+1
Классно, мне нравится
Илья Уткин
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

Тогда ошибка исчезнет.
Илья Уткин
24 августа 2015, 10:51
0
Минусы его в том, что он сохраняет в файлах только элементы. Ни настройки системы, ни ТВ-параметры, ни наборы компонентов — ничего не сохраняется в папке. Это все нужно руками дублировать. Но я настройки системы меняю редко, компонент не сложно два раза поставить, так что для меня эти минусы незначительны.

А вот автоматическое создание, например, чанков из файлов — очень интересный плюс
Илья Уткин
23 августа 2015, 00:34
+2
Я не знаю, кто поставил вам минус, но прошу не обращать на это внимание.

Компонент очень интересный и многим понадобится. Я себе уже поставил галочку, что такой компонент есть, и теперь буду знать, где его найти.
Илья Уткин
21 августа 2015, 10:30
1
+2
$c = $modx->newQuery('Operation');
        $c->where(array(
            'userid' => $userid,
        ));

        // Надо, во-первых, указать, сколько всего в базе строк
        $modx->setPlaceholder($totalVar, $modx->getCount('Operation', $c));

        // А во-вторых, ограничить выборку с помощью переменных, которые передаст нам pdoPage
        $c->limit($limit, $offset);

        $q = $modx->getCollection('Operation',$c); // получаем все денежные пополнения  конкретного юзера в шаблоне  incoming_tpl
        foreach($q as $row){
             $op_array[] = $row->toArray();
               $output .= $modx->getChunk('incoming_tpl', $op_array);
        }
return $output;
Илья Уткин
20 августа 2015, 12:31
0
Ну, проблема доступности папки core у вас существовала и до этого. Просто раньше MODX не проверял наличие этой проблемы, насколько я знаю.

Напишите в техподдержку хостинга — как закрыть доступ к папке? Они должны помочь.
Илья Уткин
20 августа 2015, 12:25
0
Вроде, да… Тогда не знаю))
Илья Уткин
20 августа 2015, 12:17
0
Так, что ли, для NGINX
location ~* ^/core/ {
        deny            all;
}
Илья Уткин
20 августа 2015, 12:15
0
Кстати, на сервере-то Apache? Потому что для nginx доступ запрещать надо по-другому — он htaccess не слушается
Илья Уткин
20 августа 2015, 12:14
0
а, да, действительно, тупанул
Илья Уткин
20 августа 2015, 12:12
0
Переименовать /core/ht.access в /core/.htaccess
Илья Уткин
17 августа 2015, 15:09
+1
Это дополнение платное, думаю, можно попросить в техподдержке глянуть одним глазком: modstore.pro/cabinet/tickets/ticket
Илья Уткин
17 августа 2015, 12:55
+1
Отключайте плагины по-одному…
Илья Уткин
17 августа 2015, 11:34
0
Мне неизвестно, что
генерируемый html-код страницы имеет кривую табуляцию
У меня все красиво обычно
Илья Уткин
13 августа 2015, 12:35
0
array('key:NOT IN' => array('mgr', 'web'))
Илья Уткин
13 августа 2015, 12:34
0
Название — это $ctx->get('name'), а URL как-то так можно получить:
$setting = $modx->getObject('modContextSetting',
           array('context_key' => $ctx->get('key'), 'key' => 'site_url'));
$url = $setting->get('value');

Только теперь скрипт будет тормозить при большом количестве контекстов. Лучше переписать его на PDO и использовать JOIN для получения site_url
Илья Уткин
13 августа 2015, 11:11
0
Надо писать свой небольшой сниппет. Типа такого

$contexts = $modx->getCollection('modContext', array('key:!=' => 'mgr'));
$output = '<ul>';
foreach ($contexts as $ctx) {
  $output .= '<li>'.$ctx->get('key');
  $output .= $modx->runSnippet('pdoMenu', array('parents' => 0, 'context' => $ctx->get('key')));
  $output .= '</li>';
}
$output .= '</ul>';