Олег Щавелев
С нами с 20 января 2017; Место в рейтинге пользователей: #28Скрипт создающий sudo юзера
Бывают ситуации, что пароль от админа теряется, а к почте, на которую зареган админ, доступа нет. Данный скрипт создаёт sudo юзера при запуске с рандомным логином и паролем. Дальше уже можно через этого юзера поменять пароль от админа, а залогинившись под админом — удалить только что созданного sudo. Скрипт просто надо закачать в папку с MODX и запустить.
Обертка для чанка (tpl) PdoResorces
Всем привет.
Есть чанк persons.tpl
Различие только в наименовании класса span3, где-то нужен span2,span4 и тд.
Вывод вот такой
'nameClassWrapper' => 'span2',
Есть чанк persons.tpl
<div class="span3">
<div class="persons__item person">
<a href="{$_modx->makeUrl($id)}" class="person__link">
<img src="{$_modx->runSnippet('phpthumbon', [
'options' => '&w=240&h=291&zc=1',
'input' => $_pls['tv.imagePerson']
]
)}" class="person__img">
<div class="person__name">{$pagetitle}</div>
</a>
</div>
</div>
Используется на сайте более 5 раз.Различие только в наименовании класса span3, где-то нужен span2,span4 и тд.
Вывод вот такой
{$_modx->runSnippet('pdoResources', [
'parents' => 7,
'depth' => 0,
'limit' => 0,
'includeTVs' => 'imagePerson',
'tplPath' => '/assets/elements/tpl/',
'tpl' => '@FILE persons.tpl'
])}
как передать название класса в чанк, что-то типа'nameClassWrapper' => 'span2',
<div class="{$nameClassWrapper}">
<div class="persons__item person">
<a href="{$_modx->makeUrl($id)}" class="person__link">
<img src="{$_modx->runSnippet('phpthumbon', [
'options' => '&w=240&h=291&zc=1',
'input' => $_pls['tv.imagePerson']
]
)}" class="person__img">
<div class="person__name">{$pagetitle}</div>
</a>
</div>
</div>
или возможно это всё костыли, и есть решение из коробки Расширение любых таблиц MODX
В очередной раз понадобилось изменить таблицу сайта, менять которую не предусмотрено.
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Что обычно люди делают в таких случаях? Верно, редактируют ядро или нужный компонент, и больше их не обновляют. Но ведь это неправильно, и можно решить вопрос иначе.
Пишем обычный плагин, выставляем для него событие OnMODXInit и меняем модель для нужных классов системы или дополнений. Например, я добавил id менеджера в заказ miniShop2:
Tickets у вас недостаточно прав
Использую
[[!pdoPage?
&element=`TicketComments`
&allowGuest=`0`
&depth=`1`
&gravatarIcon=`mm`
&gravatarSize=`140`
&tplCommentAuth=`Tickets.comment.one.auth`
&tplCommentGuest=`tpl.Tickets.comment.one.guest`
&tplComments=`tpl.Tickets.comment.wrapper`
&tplCommentForm=`tpl.Tickets.comment.form`
&tplLoginToComment=`tpl.Tickets.comment.login`
&limit=`5`
]]
<hr />
[[!+page.nav]]
Минимальное количество товара в miniShop2
Всем привет! Столкнулся с такой проблемой, необходимо указать минимальное количество товара, скажем 5 штук, но сделать это так, чтобы покупатель не смог поставить меньше? Есть ли готовые решения?
Кэширование в MODX Revo для Google Page Speed
Всем привет! Столкнулся с такой проблемой, при проверке сайта в developers.google.com/speed/pagespeed/insights/ выскакиевает такая ошибка:
Автообновление индекса mSeach2 через cron
Есть интернет магазин с импортом из файла.
Импорт производится кроном раз в сутки.
Каждый раз после импорта нужно чистить кеш сайта и обновлять индекс в mSearch2.
Для чистки кеша нашел вот такой скрипт и засунул в cron:
Импорт производится кроном раз в сутки.
Каждый раз после импорта нужно чистить кеш сайта и обновлять индекс в mSearch2.
Для чистки кеша нашел вот такой скрипт и засунул в cron:
<?php
function clearCache() {
require_once('/index.php');
$modx= new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');
$cm = $modx->getCacheManager();
$cm->refresh();
}
?>
Вопрос в следующем: нет ли похожего скрипта для обновления индекса mSearch2, что бы тоже засунуть его в cron? xPDO: некорректное определение типа поля в JOIN ON
Пользовательская таблица, имеет xPDO-схему без связей с другими таблицами:
Как видно по схеме, все поля имеют целочисленный тип.
Если пользовательскую таблицу join'ить к «modResource»:
то число 5 парсится как строка:
<?xml version="1.0" encoding="UTF-8"?>
<model package="s" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" version="1.1">
<object class="sRelations" table="sRelations" extends="xPDOSimpleObject">
<field key="id1" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" index="index" />
<field key="id2" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" index="index" />
</object>
</model>
Как видно по схеме, все поля имеют целочисленный тип.
Если пользовательскую таблицу join'ить к «modResource»:
$query = $modx->newQuery('modResource');
$query->select(array('modResource.id AS resourceId'));
$query->innerJoin('sRelations', 'sRelations', array('sRelations.id1:=' => 5));
то число 5 парсится как строка:
SELECT modResource.id AS resourceId
FROM `modx_site_content` AS `modResource`
JOIN `sRelations` `sRelations` ON `sRelations`.`id1` = '5'
[Tickets] Версия 1.6.1-pl Рейтинги пользователей
Представляю вам новую версию Tickets 1.6.0-pl, с системой рейтингов. Она написана в рамках нашей краудфандинговой компании, вот beta версия, а вот rc.
Новые объекты
В этой версии появлсяются 2 новых объекта: TicketAuthor, связанный с modUser, и TicketAuthorAction. Как нетрудно догадаться, первый объект это профиль автора на сайте, куда пишется:- Дата создания профиля (регистрация пользователя)
- Последняя активность
- Общий рейтинг
- Количество тикетов
- Количество комментариев
- Просмотров
- Сколько тикетов или комментов автора было добавлено в избранное
- Сколько было отдано голосов за тикеты и комменты автора
Снова о дополнительных TV-полях в TicketForm
Приветствую!
Вопрос, касающийся дополнительных tv-параметров для формы Tickets.
Было время, когда на многих ресурсах поднимался этот вопрос, но потом все как-то дружно замолчали, как будто узнали решение :) И всё, что я сейчас смог найти, это комментарии двух- а то и трёхлетней давности, из которых толком ничего почерпнуть не получилось.
Суть задачи в следующем: нужно добавить несколько полей типа select в форму создания тикета.
С обычными текстовыми полями проблем не возникает.
Вопрос, касающийся дополнительных tv-параметров для формы Tickets.
Было время, когда на многих ресурсах поднимался этот вопрос, но потом все как-то дружно замолчали, как будто узнали решение :) И всё, что я сейчас смог найти, это комментарии двух- а то и трёхлетней давности, из которых толком ничего почерпнуть не получилось.
Суть задачи в следующем: нужно добавить несколько полей типа select в форму создания тикета.
С обычными текстовыми полями проблем не возникает.