Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #53

Смена уведомлений с jGroul на ModPNotify

Добрый день. Ни кто на практике не сталкивался со сменой уведомлений с jGroul на ModPNotify. Подскажите пожалуйста где и что менять.
taxsin
12 августа 2016, 12:40
modx.pro
10
3 037
0

Вопросы по fenome

Добрый вечер. Погружаюсь в феном возникают вопросы, прошу помощи)

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}
Ilya Ev
05 августа 2016, 17:38
modx.pro
1
1 502
+1

Догенерация изображений

Столкнулся с такой проблемой.

Имеется сайт, на котором порядка 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) уже не получается.

Отсюда вопрос, как генерировать превью без удаления записей из БД.

Как произвести догенерацию превью, не трогая ранее созданные записи в БД и файлы?
Ruslan Butakov
01 августа 2016, 10:03
modx.pro
2
976
0

Вывод статей за период

Не получается ограничить выборку статей, опубликованных, скажем за последнюю неделю.

использую такой сниппет 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
Andrey
19 июля 2016, 17:02
modx.pro
4
1 245
+2

Решено: Переписать пример «Зависимые фильтры»

1 1
Есть типовое решение «Зависимые фильтры», в примере tv'шки, требуется переписать код под поле «производитель» и опцию товара «product_model». Логика прежняя, но с другими значениями: vendor → product_model.

Суть примера не меняется:
блок product_model скрыт, при выборе в блоке vendor, показываются активные позиции в product_model.
Stan Ezersky
19 июля 2016, 14:09
modx.pro
1
985
+1

Очистка сессий в 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'

Кто-нибудь сталкивался? Как с этим бороться? В яндексе нашел кучу сайтов у которых уже заиндексировались подобные ошибки, значит проблема носит массовый характер. :(
Константин
18 июля 2016, 12:32
modx.pro
1
3 700
+1

[oneBooking 3.4.0] Небольшая оптимизация

В этой версии проведены небольшие улучшения и исправления. Основные доработки коснулись функционала пользовательских полей. Теперь с ними работать стало проще. Сниппет obExtras для них больше не нужен. В форму достаточно вставить плейсхолдер своего поля [[+myfield]]. Он будет отрендерен согласно описанию. Также исправлена ошибка, когда пользовательские поля не учитывались при запросе суммы брони.
Сергей Шлоков
13 июля 2016, 15:30
modx.pro
1
1 227
+4

Женим mFilter2 и tvSuperSelect

Понадобилось однажды сделать фильтры по диапазону. То есть, например, в поселке Один участки площадью 10-15 соток, а в поселке Два — 13-20 соток. Фильтровать нужно поселки по по площади участка. В итоге я пришел к тому, чтобы в tvSuperSelectпоселку писать крайние значения (10, 15), а на фронтенде — стандартные ui-slider от mFilter2
И тут выяснилось, что mFilter не знаком с суперселектом)
mngatoff
01 июля 2016, 19:01
modx.pro
19
3 355
+7

[Решено] Кэширование админки 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
a.drobushevskiy
30 июня 2016, 15:32
modx.pro
2
931
0

Резервное копирование сайта на MODX в Google Диск

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

Итак, вводные данные:
  • Каждый сайт работает от своего пользователя;
  • Все сайты находятся в /var/www/ ;
  • Системное имя пользователя, имя пользователя БД и название БД совпадают.
Что нам нужно в результате:
  • Создание zip архива всего сайта и sql дампа БД в ~/backup
  • Подстановка даты в имя файлов
  • [Опционально] Закачивание всех архивов в Google Drive и удаление с сервера
Воеводский Михаил
24 июня 2016, 12:00
modx.pro
30
5 176
+21