Владимир
С нами с 28 декабря 2012; Место в рейтинге пользователей: #53Смена уведомлений с jGroul на ModPNotify
Добрый день. Ни кто на практике не сталкивался со сменой уведомлений с jGroul на ModPNotify. Подскажите пожалуйста где и что менять.
Вопросы по fenome
Добрый вечер. Погружаюсь в феном возникают вопросы, прошу помощи)
1) При выводе картинки феном ругается
3) глобальная переменная, определить один раз для всех блоков?
1) При выводе картинки феном ругается
Unexpected token '150' in expression, expect '.' in modchunk/9bbd97be1759770f88aeecad93025c4c line 6, near '{$150' <- there
, нельзя использовать имена начинающиеся на цифры? 150x150, как тогда использовать вывод{$_modx->runSnippet('!ms2GalleryResources', [
'tpl'=>'@INLINE <img src="{$150x150}" alt="{$pagetitle}">',
'parents'=>15,
'typeOfJoin'=>'inner',
'includeThumbs'=>'150x150',
'includeOriginal'=>0,
'limit'=>8
])}
2) что лучше использовать {$_modx->makeUrl($_modx->resource.id)} или {$id | url}
Что быстрее работает.3) глобальная переменная, определить один раз для всех блоков?
{extends 'file:templates/bootstrap.base.tpl'}
{var $tag_sub_tag = $_modx->runSnippet('!snippet')}
{block 'content'}
{$tag_sub_tag}
{/block}
{block 'footer'}
{$tag_sub_tag}
{/block}
Догенерация изображений
Столкнулся с такой проблемой.
Имеется сайт, на котором порядка 10гб (порядка 70000 записей в modx_ms2_resource_files — и это только оригиналы) занимают только оригиналы фотографий в ms2gallery.
Появилась необходимость перенести все файлы в облако и добавить новые размеры превью.
Воспользовался таким скриптом
Но ночью из-за внутреннего сбоя в selectel.ru — наш аккаунт был отключен и соответственно все пошло по @#$%^.
На данный момент аккаунт на selectel.ru включен и проблема устранена, но заново сгенерировать весь объем превью (~240000) уже не получается.
Отсюда вопрос, как генерировать превью без удаления записей из БД.
Как произвести догенерацию превью, не трогая ранее созданные записи в БД и файлы?
Имеется сайт, на котором порядка 10гб (порядка 70000 записей в modx_ms2_resource_files — и это только оригиналы) занимают только оригиналы фотографий в ms2gallery.
Появилась необходимость перенести все файлы в облако и добавить новые размеры превью.
Воспользовался таким скриптом
<?php
define('MODX_API_MODE', true);
require 'index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->addPackage('ms2gallery', MODX_CORE_PATH . 'components/ms2gallery/model/');
$files = $modx->getIterator('msResourceFile', array('parent' => 0));
foreach ($files as $file) {
$children = $file->getMany('Children');
foreach ($children as $child) {
$child->remove();
}
$file->generateThumbnails();
}
echo microtime(true) - $modx->startTime;
Само собой, скрипт запускал из консоли сервера.Но ночью из-за внутреннего сбоя в selectel.ru — наш аккаунт был отключен и соответственно все пошло по @#$%^.
На данный момент аккаунт на selectel.ru включен и проблема устранена, но заново сгенерировать весь объем превью (~240000) уже не получается.
Как произвести догенерацию превью, не трогая ранее созданные записи в БД и файлы?
Вывод статей за период
Не получается ограничить выборку статей, опубликованных, скажем за последнюю неделю.
использую такой сниппет getDateWeekAgo для определения даты ограничения (-7 дней от сегодня)
вот код для выборки
Почему не срабатывает?
В логах дату вроде правильно высчитывает. Вот строка. Правда приписку не понимаю с id ресурсов. Вывод сейчас все что есть, не обращая внимания на ограничение.
использую такой сниппет getDateWeekAgo для определения даты ограничения (-7 дней от сегодня)
<?php
$formatDate = date('Y-m-d H:i:s');
$date = new DateTime($formatDate);
$date->modify("-7 day");
return $date->format('Y-m-d H:i:s');
вот код для выборки
[[!pdoPage?
&element=`pdoResources`
&parents=`2,4,5,6`
&tplPageWrapper=`@INLINE <div class="pagination"><ul class="pagination">[[+prev]][[+pages]][[+next]]</ul></div>`
&limit=`30`
&tpl=`tplTextN`
&where=`{"publishedon:>":"[[getDateWeekAgo]]"}`
&showLog=`1`
&tplCondition=`template`
&tplOperator=`==`
&conditionalTpls=`{"2":"tplTextCoverN","10":"tplVideoLenta","11":"tplVideoLenta"}`
&includeTVs=`articleImg,videoLink,catagoryIcon`
]]
Почему не срабатывает?
В логах дату вроде правильно высчитывает. Вот строка. Правда приписку не понимаю с id ресурсов. Вывод сейчас все что есть, не обращая внимания на ограничение.
0.0016940: Added where condition: publishedon:>=2016-07-12 21:53:37, modResource.parent:IN(2,4,5,6,8,9,10,24,25,38,26,37,41,43,44,15,13,22,23,27,28,29,30,31,42,32,33,34,35,36), modResource.deleted=0
Решено: Переписать пример «Зависимые фильтры»
1 1
Есть типовое решение «Зависимые фильтры», в примере tv'шки, требуется переписать код под поле «производитель» и опцию товара «product_model». Логика прежняя, но с другими значениями: vendor → product_model.
Суть примера не меняется:
блок product_model скрыт, при выборе в блоке vendor, показываются активные позиции в product_model.
Суть примера не меняется:
блок product_model скрыт, при выборе в блоке vendor, показываются активные позиции в product_model.
Очистка сессий в ModX и ошибки session_start()
После перехода на PHP7 и включения
session.gc_probability = 1
session.gc_divisor = 100
для автоматической очистки устаревших сессий. Случайным образом сыпятся ошибки:
Got error 'PHP message: PHP Warning: session_start(): Session callback expects true/false return value in /srv/www/core/model/modx/modx.class.php on line 2270\n'
Кто-нибудь сталкивался? Как с этим бороться? В яндексе нашел кучу сайтов у которых уже заиндексировались подобные ошибки, значит проблема носит массовый характер. :(
session.gc_probability = 1
session.gc_divisor = 100
для автоматической очистки устаревших сессий. Случайным образом сыпятся ошибки:
Got error 'PHP message: PHP Warning: session_start(): Session callback expects true/false return value in /srv/www/core/model/modx/modx.class.php on line 2270\n'
Кто-нибудь сталкивался? Как с этим бороться? В яндексе нашел кучу сайтов у которых уже заиндексировались подобные ошибки, значит проблема носит массовый характер. :(
[oneBooking 3.4.0] Небольшая оптимизация
В этой версии проведены небольшие улучшения и исправления. Основные доработки коснулись функционала пользовательских полей. Теперь с ними работать стало проще. Сниппет obExtras для них больше не нужен. В форму достаточно вставить плейсхолдер своего поля [[+myfield]]. Он будет отрендерен согласно описанию. Также исправлена ошибка, когда пользовательские поля не учитывались при запросе суммы брони.
Женим mFilter2 и tvSuperSelect
Понадобилось однажды сделать фильтры по диапазону. То есть, например, в поселке Один участки площадью 10-15 соток, а в поселке Два — 13-20 соток. Фильтровать нужно поселки по по площади участка. В итоге я пришел к тому, чтобы в tvSuperSelectпоселку писать крайние значения (10, 15), а на фронтенде — стандартные ui-slider от mFilter2…
И тут выяснилось, что mFilter не знаком с суперселектом)
И тут выяснилось, что mFilter не знаком с суперселектом)
[Решено] Кэширование админки Modx 2.5.0
Всем привет. Никто не сталкивался с такой проблемой, после обновления до версии 2.5.0 начинают кэшировать данные в админке? Например, редактируешь заголовок, сохраняешь, опять выбираешь этот же ресурс и там старый заголовок. Если нажать F5, то данные обновляются.
P.S. На PHP 7 переехал.
Разобрался. Может кому пригодится, все дело в конфигурации php7, правим настройки в php.ini:
По умолчанию:
session.cache_expire 525600
session.cache_limiter public
Заменяем на:
session.cache_expire 180
session.cache_limiter nocache
P.S. На PHP 7 переехал.
Разобрался. Может кому пригодится, все дело в конфигурации php7, правим настройки в php.ini:
По умолчанию:
session.cache_expire 525600
session.cache_limiter public
Заменяем на:
session.cache_expire 180
session.cache_limiter nocache
Резервное копирование сайта на MODX в Google Диск
О необходимости резервного копирования сказано много. Мы в этой статье рассмотрим удобный и простой способ для серверов, настроенных по этой замечательной инструкции.
Итак, вводные данные:
Итак, вводные данные:
- Каждый сайт работает от своего пользователя;
- Все сайты находятся в /var/www/ ;
- Системное имя пользователя, имя пользователя БД и название БД совпадают.
- Создание zip архива всего сайта и sql дампа БД в ~/backup
- Подстановка даты в имя файлов
- [Опционально] Закачивание всех архивов в Google Drive и удаление с сервера