Алексей

Алексей

С нами с 25 декабря 2012; Место в рейтинге пользователей: #69
Алексей
21 марта 2016, 17:28
0
Было бы классно, если этот метод авторизировал сразу в админке.
Алексей
18 марта 2016, 10:15
+1
Очень крутой скрипт! только нужно перед вызовом процессора
$response_upload = $modx->runProcessor('gallery/upload', array(
...
вставить:
$res = $modx->getObject('modResource',$row['id']);
$res->set('properties','{"ms2gallery":{"media_source":"4"}}');
$res->save();
Где media_source нужно указать ID источника файлов ms2gallery
Алексей
11 марта 2016, 09:15
0
Заметил что в английской версии разделы сайта в тэгах
<title></title>
отображаются на русском
Алексей
08 марта 2016, 21:08
0
it use in every snippet from «pdoTools» package, because it get data from mysql Data Base by dint of class pdoFetch. In class pdoFetch it setting place this: github.com/bezumkin/pdoTools/blob/master/core/components/pdotools/model/pdotools/pdofetch.class.php#L163
Алексей
08 марта 2016, 09:31
0
You can use
&outputSeparator Optional line for separation of the results
That behavior is describe in official documentation in this page:
docs.modx.pro/en/components/pdotools/general-settings#Template-parameters
like:
&tpl=`@INLINE <li[[+classes]]><a href="[[+link]]">[[+menutitle]]</a>[[+wrapper]]</li>`
&outputSeparator=` `
It necessary set it to «one space» symbol:
&outputSeparator=` `
, because if use simply empty string,
&outputSeparator=``
it not properly work.

By default it set to
&outputSeparator=`\n`
according to this code: github.com/bezumkin/pdoTools/blob/master/core/components/pdotools/model/pdotools/pdotools.class.php#L63
Алексей
06 марта 2016, 21:36
0
хм, странно, я думал ваше решение как-то относится к теме вот этого вопроса:
под запретом понимается — исключить из контекстного меню пункт «Создать->Категорию с товарами»
на сколько я понимаю, это делается как раз таки с помощью расширения стандартных объектов.
А с помощью плагина на событие OnBeforeDocFormSave — эт да, известная тема, можно кучу всяких проверок делать, и не позволять сохранять документ. С этим я согласен, куча методов решения, но они выходят за рамки данного вопроса. Речь идет о контекстном меню.
Алексей
06 марта 2016, 08:35
0
Вот что удалось найти по этой теме, несколько ссылок:
rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-resource-classes/creating-a-resource-class
и
rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/custom-resource-classes/creating-a-resource-class/creating-a-resource-class-step-2
По событию «OnBeforeDocFormSave» нужно плагином расширять метод «getContextMenuText»? Или каком хотябы примерный механизм работы этого плагина?
Алексей
06 марта 2016, 07:59
0
а куда он пишет кэш? удалял полностью директорию /core/cache/, системная настройка
cache_handler='xPDOFileCache'
А также чистил кэш через «Управление» ->«Обновить сайт»
Алексей
05 марта 2016, 21:23
0
Актуальный вопрос -) ставлю miniShop2 только лишь для приемы payPall из коробки, мэнэджеру вообще не нужно создавать никогда никакие категории. Поэтому залез в файлик
core/components/minishop2/model/minishop2/mscategory.class.php
И закомментил
public function getContextMenuText() {
		$this->xpdo->lexicon->load('minishop2:default');
		return array(
//			'text_create' => $this->xpdo->lexicon('ms2_category'),
//			'text_create_here' => $this->xpdo->lexicon('ms2_category_create_here'),
		);
	}
Только это решение это слабовато -) скорее через политику доступа можно настроить не выводить «создать категорию с товарами» — также как можно настроить через политику доступа не выводить «создать символичискую ссылку», и другие элементы.
Алексей
05 марта 2016, 20:54
0
Добрый вечер. Работает ли rank в табличке маршрутов?
Непосредственно в таблице строчки хорошо drug-n-drop'ятся, но вот на порядок обработки маршрутов это совсем не влияет. Приходится создавать по-новой все маршруты в порядке, в котором они должны отрабатывать (видимо порядок обработки всета-ки идет по полю ID, а не по полю RANK). Вот такие вот дела. Никто больше не сталкивался с таким странным поведением дополнения?
Алексей
26 февраля 2016, 12:22
0
блин, у меня же там старючая версия modx -))) наверное поэтому
Алексей
25 февраля 2016, 21:41
0
Было бы классно увязать с дополнением HybridAuth — высылать оповещения в соц. сети при авторизации через них. Бывает что нету у пользователя email, он авторизуется через к примеру VK, и было бы классно отправлять ему уведомления в личку VK аккаунта к примеру о комментарий на тикет, совершении заказа и проч.
Алексей
25 февраля 2016, 09:00
0
почему-то в консоли не работает ни так
$modx->filterPathSegment($alias)
ни так
modResource::filterPathSegment($modx, $alias);
а вот так работает -)
$res = $modx->newObject('modResource');
$res->cleanAlias($alias);
Алексей
24 февраля 2016, 18:11
1
0
Тоже долго искал решения для IS NULL условия, никак не мог заставить pdoTools писать IS NULL, всегда было IS " NULL", но вот через fenom все заработало с первого раза:
{$_modx->runSnippet('pdoResources', [
'loadModels'	=> 'ms2gallery',
'class'		=> 'msResourceFile',
'where'		=> [
	'parent'	    	=> 0,
	'active'	    	=> 1,
	'resource_id'		=> "{$_modx->resource.id}",
	'tags.file_id:IS'	=> null
	],
'limit'		=> 0,
....
Это для выборки изображений из галереи ms2gallery, которым не присвоено ни одного тэга.
Алексей
13 февраля 2016, 22:57
0
Ребят, может всетки добавим поиск юзеров по городу? это же так просто, я не ради раздела «работа» хотя для него тоже, но и просто интересно, сколько в моем городе модъиксеров, можно встретиться делиться опытом, или просто пиво попить-)
Алексей
08 февраля 2016, 16:37
3
+2
у меня никаких особых защит не стоит — ни капчи, ни текстовых вопросов.
защита серверная.
Все дело в спам-программах — они сначало пытаются понять, с каким движком имеют дело, а только потом уже заспамиться\зарегистрировать пользователя\оставить ссылку, делают они это по следующим признакам:
1. наличие footprint'а в файле html
Powered by wordpress
Powered by joomla
Этот пункт не относится к MODX — пропускаем
2. ломятся по известным адресам (папкам)
/bitrix/
/user/
/users/
/registrate/
/login/
И так далее — тут они понимают, битрикс ли это или форум phpbb, или что там еще.
Вот этот пункт интересен.
В nginx вешаем правило
location ~* ^/(blocks|bitrix|user|users|registrate|login|node|netcat|wp-admin|wp-content|wordpress|engine|blocks|administrator|PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|phpmyadmin2)(|/) {
	try_files $uri =404;
}
— исключительно чтобы не нагружать php5-fpm\hhvm демон спамными запросами, динамический бэкэнд и там отдаст 404 ошибку т.к. этих папок нет.
Потом ставим fail2ban, и организуем следующий jail:
/etc/fail2ban/filter.d/nginx-noscript.conf
[INCLUDES]
before = common.conf

[Definition]
failregex = 	
		^[^ ]* <HOST> -.*"GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi).*" 404
		^[^ ]* <HOST> -.*"GET.*/(blocks|bitrix|user|users|registrate|login|node|netcat|wp-admin|wp-content|wordpress|engine|blocks|administrator|PMA|phpmyadmin|myadmin|mysql|mysqladmin|sqladmin|mypma|admin|xampp|mysqldb|mydb|db|pmadb|phpmyadmin1|phpmyadmin2).*" 404
		^[^ ]* <HOST> -.*"GET.*" 403
		^[^ ]* <HOST> -.*"GET.*" 401
		^[^ ]* <HOST> -.*"GET.*" 444
ignoreregex =
и в файле:
/etc/fail2ban/filter.d/jail.conf
[nginx-noscript]
enabled = true
port = http,https
#action = iptables-multiport[name=NoScript, port="http,https"]
filter = nginx-noscript 
logpath = /var/log/nginx*/*access*.log
maxretry = 3
bantime = 600
Таким образом, любой, кто запросит подобные расположения папок: example.com/bitrix более 3 раз (maxretry = 3), попадет в бан по IP адресу на 10 минут (bantime = 600)
При такой защите не только у спам-программ отпадает охота сканить ваш сайт, но и у тех, кто делает это вручную.
+Абсолютная неуязвимость к программам определяющих на какой CMS ваш сайт
+Практически никакого спама (только если форма отправки сообщений висиь на главной страничке)
+Разгрузка динамического бэкэнда php5-fpm\hhvm от ненужных запросов

Все эти интересные пути запрашиваются тысячами, обнаружить их можно анализируя логи через удобный интерфейс piwik, который называется log analizator, серверный скрипт, написанный на питоне. Смотрит все логи nginx и строит по ним всякие графики, пободно yandex.metrika, только по логам а не через прикрепляемый javascript (хотя такая возможность тоже есть). Тут же можно следить, как часто робот яндекса\гугла посещает ваш сайт.
Алексей
08 февраля 2016, 09:12
1
0
ок! круто.
Василий, подскажи, почему не показываешь синтаксис феном во всей его красе — передача массивов сниппетам?
{$_modx->runSnippet('!pdoMenu',[
	'parents'	=>0,
	'level'		=>3,
	'showLog'	=>1,
	'scheme'	=>'uri',
	'tpl'		=>'@INLINE <li{$classes}><a href="{$link}" {$attributes}>{$menutitle}</a>{$wrapper}</li>'
])}
Алексей
07 февраля 2016, 23:21
0
Тогда вместо запуска modx::makeUrl() в плейсхолдер [[+link]] будет подставлено содержимое поля uri ресурса. Если же это сделать не получается, то будет запущен оригинальный метод.
Я имею ввиду, когда не удастся подставить uri поле ресурса — как будет генериться схема url в этом случае.
будет запущен оригинальный метод.
с какой схемой? -)
Алексей
07 февраля 2016, 17:02
0
Спасибо за обновления! Подскажите, схема генерации uri (&scheme=`uri`) работает в режиме
&scheme=`full`
или
&scheme=`abs`
?