Разделы

  
 

Баг с добавлением ресурсов

Имеется два небольших сайта, с такими характеристиками:
MODx Revo 2.2.2-pl, обновлённый с версии 2.2.1 и имеющий последние версии пакетов:
— CodeMirror
— FormIt
— Gallery
— getPage
— getResources
— TinyMCE
— translit
— Wayfinder

По-умолчанию стоит галочка «Публиковать по-умолчанию», а также включены дружественные URL.

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

А теперь нажимаем на любом документе «Создать дочерний документ» заполняем так же, и нажимаем «сохранить». Документ сохраняется, но если потом нажать «просмотреть», то браузер в новой вкладке открывает «about: blank». Убираем галочку с «Опубликовать», а потом снова ставим и сохраняем — документ открывается.

Если убрать в настройках «публиковать по умолчанию», а при добавлении ставить галочку — то всё равно открывает about:blank. URL генерируется. Ошибок в логе нету.

Такое чувство, что не работает галочка «опубликовать» и настройки в системе «публиковать по умолчанию» не срабатывают.

Что мне можно в данный момент сделать, и может ли кто-нибудь сделать баг-репорт (сам, к сожалению не могу)?

Исправляем ошибку валидации разрешения файла в менеджере файлов [evo]

Заметил багу в ветке evolution 1.0.6
Нет возможности загрузить файлы с разрешением написаном в другом регистре. Например, файлы *.JPG, *.JPg и т.п. мы не сможем загрузить, если в настройках прописано .jpg.

Исправляется очень просто: открываем файл /manager/includes/files.dynamic.php и в функции getExtension()
перед ретурнами добавляем strtolower. т.е. получается функция

function getExtension($string) {
   $pos = false;
   $search = ".";
   if (is_int(strpos($string, $search))) {
       $endPos = strlen($string);
       while ($endPos > 0) {
           $endPos = $endPos - 1;
           $pos = strpos($string, $search, $endPos);
           if (is_int($pos)) {
               break;
           }
       }
   }
   if (is_int($pos)) {
       $len = strlen($search);
       return strtolower(substr($string, $pos));
   }
    return strtolower($string);
}


Но даже с этим патчем остается один косяк: если в настройках будет написано не jpg, а JPG, то мы опять не сможем загрузить файлы, т.к. при импорте настроек нет strtolower. Исправлять это можно в manager/includes/settings.inc.php, но мы поправим скрипты, которые непосредственно работают с файлами, т.к. у пользователей есть еще индивидуальные настройки (там тоеж могут быть переопределены разрешенные для загрузки файлы).

Открываем опять /manager/includes/files.dynamic.php и заменяем
$uploadablefiles[$i] = ".".$uploadablefiles[$i]; // add a dot :)
на
$uploadablefiles[$i] = ".".strtolower($uploadablefiles[$i]); // add a dot :)


Теперь открываем /manager/media/browser/mcpuk/connectors/php/config.php (дефолтный менджер файлов используемый при редактировании документов)
$upload_files = explode(',',$upload_files);
$upload_images = explode(',',$upload_images);
$upload_media = explode(',',$upload_media);
$upload_flash = explode(',',$upload_flash);
на
$upload_files = explode(',',strtolower($upload_files));
$upload_images = explode(',',strtolower($upload_images));
$upload_media = explode(',',strtolower($upload_media));
$upload_flash = explode(',',strtolower($upload_flash));


P.S. Если у вас есть какие-то еще скрипты использующие настройки разрешенных к загрузке файлов, либо же вы используете другой файловый менеджер то рекомендую провериться как у вас дела обстоят.

[Revo] Ошибка №2 в Quip

Продолжаю исследовать плагин комментирования Quip и находить там баги.

Теперь не работала система уведомлений (notify).

Как выглядело:
Ставим в любой теме галочку «Подписаться на новые сообщения в этой теме». Потом заходим в любую другую тему и опа, а галочка и там стоит чудесным образом. Т.е. подписавшись на любую тему вы автоматически видите себя подписанным на все темы.

Как я вылечил:
файл \core\components\quip\controllers\web\ThreadReply.php
строка примерно 215, заменяем
/** @var quipCommentNotify $notify */
$notify = $this->modx->getObject('quipCommentNotify',array(
  'email' => $this->modx->user->Profile->get('email'),
  'thread' => $this->thread,
));

на
/** @var quipCommentNotify $notify */
$notify = $this->modx->getObject('quipCommentNotify',array(
  'email' => $this->modx->user->Profile->get('email'),
  'thread' => $this->thread->get('name'),
));


Есть еще аналогичный кусочек кода ниже в этом файле, думаю с ним надо проделать тоже.

P.S. Возможно, что где то есть еще подобное… если замечу — дополню пост. Что самое интересное, гугление не выявило подобных проблем у пользователей

[Решено][Revo] "Доступ закрыт" или action_err_ns

Привет всем. Часто юзаю MODx Revo, но это ошибка в первый раз. Версия 2.1.5
При попытке очистить кеш сайта или перезагрузить права доступа пользователей — вываливается ошибка «action_err_ns». А при любой попытке что-либо сохранить (страницы например), система выбрасывает «доступ закрыт».
Никаких действий с пользователем не делал, прав не менял. Просто начала появляться ошибка.
Создание нового пользователя с правами Super User не дало эффекта. Также пробовал в Opera, Firefox — ошибка таже.
MODx обновление до 2.2 не помогло. Ошибка точно такая же.
Я очень надеюсь на Вашу помощь.

Багрепорт: MODx Revo 2.2 RC2

Скорее не проблема, а багрепорт:
При создании TV типа Изображение или Фото, при переходе в какой-либо документ такой косяк:
Fatal error: Cannot redeclare class modTemplateVarInputRenderText in core/model/modx/processors/element/tv/renders/mgr/input/text.class.php on line 10

Что это такое, кто-то уже работает с 2.2 RC2?

[Revo] UpdateProfile — профиль пользователя обновляется только после чистки кэша [Решено]

Применяю на сайте сниппет UpdateProfile. Получается вот что: при внесении изменений в профиль они появляются только после чистки кэша через админку.
Так же если изменить профиль пользователя через админку, он изменится также после чистки кэша.

Вроде бы это даже официально зарегистрированный баг bugs.modx.com/issues/5655

Можно конечно написать сниппет, который будет чистить кэш всего сайта после обновления информации о пользователе, но это по-моему неправильно, что удаляется кэш сайта если веб-юзер обновляет информацию о себе.

Подскажите, может кто сталкивался с этой проблемой и решил ее?
А может знаете способ чистить кэш только у одного юзера?

UPD: Сниппет вызывается так [[!UpdateProfile]]. Отключил кэширование страницы, сниппета, чанков, плейсхолдеров — не помогает.

Первый раз начинаю дружить с REVO. Сразу куча траблов (

Доброго всем вечера.
Ситуация следующая: по SSH залил MODX Revolution 2.1.3-pl, распаковал, установил.

После установки:
1) не хочет нормально устанавливаться ни один пакет. Вечно вываливается всякий разный текст с ошибками
2) Баг с оверлеем (при загрузке пакетов не всё модальное окно помещается в браузер, потому что стиль во этот отключает полосы прокрутки:

.x-viewport, .x-viewport body {
    border: 0 none;
    height: 100%;
    margin: 0;
    overflow: hidden;
    padding: 0;
}

Фиксится просто фаербагом, если кому лень в файл лезть.
)
Собственно вопрос: как лечить что не устанавливаются пакеты.

РЕШЕНИЕ: Совместно с Valikras переустановили (под его чутким надзором) и всё заработало с пакетами.

Почему на странице выводится кусок [+phx:if=` ?

Evo 1.0.5 Использую такую конструкцию в шаблоне страницы:

[+phx:if=`[*content*]`:is=``:then=`{{ditto_vmesto_content}}`:else=`[*content*]`+]

Однако, при просмотре некоторых страницы перед выводом контента отображается кусок: [+phx:if=` — и после контента — `+]

Вот скрин:



Кто может помочь?

UPD. Заметил

Что контент выводится дважды. Т.е. phx конструкция не обрабатывается, и выводится содержимое вида.

[+phx:if=`
контент первый раз
`:is=``:then=`{{ditto_vmesto_content}}`:else=`
контент второй раз
`+]

UPD 2. Изменил конструкцию. Теперь

В шаблоне сайта чанк: {{content_or_ditto}}

Содержимое чанка:

[+phx:if=`[*isfolder*]`:is=`1`:then=`{{ditto_vmesto_content}}`:else=`[*content*]`+]

Содержимое чанка ditto_vmesto_content:

[+phx:if=`[*content*]`:is=``:then=`
[[Ditto? &startID=`[*id*]` &total=`35` &paginate=`1` &tpl=`sft_ditto_docs`]]
`:else=`[*content*]`+]

UPD3. Попробовал заменить [*content*] на [+content+] в конструкции:

[+phx:if=`[+content+]`:is=``:then=`
[[Ditto? &startID=`[*id*]` &total=`35` &paginate=`1` &tpl=`sft_ditto_docs`]]
`:else=`[+content+]`+]

И всё заработало лучше. Но проблема осталась. Пример ошибки:
umpgroup.ru/ump-safety/products/printer/surfonsigns.html

Не могу войти на сайте

Здесь пытаюсь войти, получаю ошибку.

PHP error debug
Error: include() [function.include]: open_basedir restriction in effect. File(/home/modx-cms/community.modx-cms.ru/docs/config/config.ajax.php) is not within the allowed path(s): (/home/modxcms/modx-cms.ru/www:/tmp)
Error type/ Nr.: Warning — 2
File: /home/modxcms/modx-cms.ru/www/assets/snippets/commlogin/snippet.inc.php
Line: 183
Line 183 source: include COMM_BASE_PATH. '/config/config.ajax.php';

Кроме того, на странице Ditto есть опечатка — написано «язык Ditton».
  • 0
  • 3 июня 2011, 19:24
  • ifman
  • 1

Не работает поиск?

Не могу ничего найти на сайте. Вообще.
  • +1
  • 5 апреля 2011, 14:52
  • ifman
  • 8