Роман Ильин

Роман Ильин

С нами с 29 октября 2013; Место в рейтинге пользователей: #152
Роман Ильин
18 октября 2017, 19:04
0
Привет! Классно, но мне, увы, это не помогло.
Роман Ильин
15 октября 2017, 18:42
+1
Если в конфиге сервера будет подобная директива, то это исключит вероятность попадания на сайт через http

if ($scheme != "https") {
        rewrite                 ^ https://domain.ru$uri permanent;
}
Роман Ильин
15 октября 2017, 15:09
+1
В общем-то такой проблемы и не существует. Если у вас сложилась такая ситуация, то надо разбираться в правильности конфигурации сервера и MODX
Роман Ильин
10 октября 2017, 08:36
0
Это-то я видел, спасибо.
Но документация не дает ответа про вызов некешированных плейсхолдеров.
Получается, никак?
Роман Ильин
05 октября 2017, 13:58
0
Я порыскал в англоязычном сегменте, но ничего кроме советов «сбросить кеш» пока не нашел. Кстати, тормозит не только Ace, а вообще почти любая подсветка синтаксиса кода на сайтах.
Роман Ильин
29 сентября 2017, 12:22
+1
Судя по всему сортировка здесь:
core/components/msearch2/model/msearch2/filters.class.php
В 305 строке
Роман Ильин
18 сентября 2017, 11:07
0
friendly_alias_restrict_chars_pattern
Роман Ильин
18 сентября 2017, 10:48
+1
Паттерн URL ЧПУ в настройках не меняли? у меня бывало такое, когда я косячил в нем.
Роман Ильин
18 сентября 2017, 10:17
0
В логах ошибок MODX и php что-нибудь нашлось? Параметры подключения к базе верные? Вы переносили сайт, может быть остались хвосты в конфиге?
Роман Ильин
12 сентября 2017, 23:09
12
+2
Сниппет для удаления старых версий:

<?php
/**
 * versionCleanX
 *
 * @author Scott Pronych, September 27, 2013
 *
 * DESCRIPTION
 *
 * For use with VersionX to delete old content
 *
 * PROPERTIES:
 *
 * &contentType - can be resource, chunk, plugin, snippet, template, or templatevar
 * &maxVersions - integer value for max number of versions you would like to keep
 *
 * USAGE:
 *
 * [[!versionCleanX? &contentType=`resource` &maxVersions=`10`]]
 *
 */
 
$cx_type = $modx->getOption('contentType', $scriptProperties, 'resource');
$cx_max = (int) $modx->getOption('maxVersions', $scriptProperties, 5);
 
$GLOBALS['count'] = 1;
$GLOBALS['total'] = 0;
$GLOBALS['deleted'] = 0;
$GLOBALS['page_total'] = 0;
$GLOBALS['page_deleted'] = 0;
$GLOBALS['page_name'] = '';
$GLOBALS['prev_content_id'] = 0;
$GLOBALS['prev_version_id'] = 0;
 
switch ($cx_type) {
    case 'chunk':
        $name = 'name';
        break;
    case 'plugin':
        $name = 'name';
        break;
    case 'snippet':
        $name = 'name';
        break;
    case 'template':
        $name = 'templatename';
        break;
    case 'templatevar':
        $name = 'name';
        break;
    default:
        $name = 'title';
        $cx_type = 'resource';
}
 
$GLOBALS['db_name'] = 'modx_versionx_' . $cx_type;
 
function delete_row ($id) {
    global $modx;
    $query = "DELETE FROM `" . $GLOBALS['db_name'] . "` WHERE version_id = '" . $id . "'";
    $result = $modx->query($query);
    if (!is_object($result)) return false;
    else {
        $GLOBALS['deleted']++;
        $GLOBALS['page_deleted']++;
        $GLOBALS['page_total']++;
        $GLOBALS['total']++;
        $GLOBALS['count']++;
        return true;
    }
}
 
function log_row () {
    $GLOBALS['data'] .= '<tr><td>' . $GLOBALS['page_name'] . '</td><td>' . $GLOBALS['page_total'] . '</td><td>' . $GLOBALS['page_deleted'] . "</td></tr>\n";
    $GLOBALS['page_deleted'] = 0;
    $GLOBALS['page_total'] = 1;
    $GLOBALS['count'] = 1;
}
 
$query = "SELECT version_id, content_id, " . $name . " AS page_title FROM `" . $GLOBALS['db_name'] . "` ORDER BY content_id ASC, version_id DESC";
 
$GLOBALS['data'] = '';
$output = 'An error occurred: ';
$versionx = $modx->query($query);
if (!is_object($versionx)) {
   return $output . 'query error ' . print_r($modx->errorInfo(), true);
}
else {
 
while($row = $versionx->fetch(PDO::FETCH_ASSOC)) {
    // New content_id so reset
    if ($prev_content_id == 0) {
        $prev_content_id = $row['content_id'];
        $prev_version_id = $row['version_id'];
        $GLOBALS['total']++;
        $GLOBALS['page_total']++;
        $GLOBALS['count']++;
        $GLOBALS['page_name'] = $row['page_title'];
    }
    elseif ($prev_content_id != $row['content_id']) {
        if ($GLOBALS['count'] > $cx_max) {
            if (!delete_row($prev_version_id)) return $output .  'deleting row for ' . $GLOBALS['page_name'] . ' Row: ' . $prev_content_id . ' ' . print_r($modx->errorInfo(), true);
            $GLOBALS['page_total']--;
 
        }
        else {
            $GLOBALS['total']++;
            $GLOBALS['count']++;
        }
        log_row();
        $prev_content_id = $row['content_id'];
        $prev_version_id = $row['version_id'];
        $GLOBALS['page_name'] = $row['page_title'];
    }
    // Content count is over the max so delete previous row
    elseif ($GLOBALS['count'] > $cx_max) {
            delete_row($prev_version_id);
            $prev_content_id = $row['content_id'];
            $prev_version_id = $row['version_id'];
    }
    else {
        $GLOBALS['count']++;
        $GLOBALS['page_total']++;
        $GLOBALS['total']++;
        $prev_content_id = $row['content_id'];
        $prev_version_id = $row['version_id'];
    }
}
log_row();
 
if ($GLOBALS['data'] != '') {
$output = '<h3>VersionX Cleanup for ' . $GLOBALS['db_name'] . '</h3>
<p>Total records: <strong>' . $GLOBALS['total'] . '</strong>
Total deleted: <strong>' . $GLOBALS['deleted'] . '</strong></p>
<table class="table table-striped">
<thead>
<tr>
<th>Page name</th>
<th>Total found</th>
<th>Deleted</th>
</tr>
</thead>
<tbody>
' . $GLOBALS['data'] .  '</tbody></table>
';
}
else $output = 'Error: no data found.';
}
 
$query = "OPTIMIZE TABLE `" . $GLOBALS['db_name'] . "`";
$versionx = $modx->query($query);
if (!is_object($versionx)) {
   $output = 'Optimize error ' . print_r($modx->errorInfo(), true) . $output;
}
 
return $output;


Вызывать так:
[[!versionCleanX? &contentType=`resource` &maxVersions=`10`]]
Роман Ильин
04 сентября 2017, 12:12
0
Понял, спасибо!

Но вариант:
'parents' => '-9',
не подходит, т.к. он убирает пункт из меню целиком, а надо только скрыть его детей.

С какой стороны к этому можно красиво подойти кроме как всем подпунктам ставить «не показывать в меню»?
Роман Ильин
04 сентября 2017, 08:12
0
А как быть если TV – внешний? Например, FastUploadTv
Роман Ильин
03 сентября 2017, 22:41
0
Здравствуйте! Решили как-нибудь?
Роман Ильин
31 августа 2017, 08:24
0
Так работает, да! Спасибо. В комментах ниже предложили конструкцию проще:
$_modx->resource['tv-name']
Роман Ильин
31 августа 2017, 08:22
0
Не-а, такая штука не прокатывает из-за нарушения именования переменных. А вот конструкция которую предложил Максим Кузнецов ниже – работает. Всем спасибо!
Роман Ильин
23 августа 2017, 10:30
0
Решение
Изменить настройку friendly_alias_restrict_chars_pattern на
/[\0\x0B\t\n\r\f\a&=«»№+%#<>"~:`@\?\[\]\{\}\|\^'\\]/
Роман Ильин
17 августа 2017, 13:41
0
Столкнулся с похожей проблемой. Решили как-нибудь?
Роман Ильин
02 августа 2017, 18:50
0
Да, предупреждение о превышении лимита размера нет. Сам недавно на этом споткнулся.
Роман Ильин
31 июля 2017, 09:32
0
На том сайте работает потому, что у него все ссылки одноуровневые, без вложенности разделов.