Виталий Греков

Виталий Греков

С нами с 29 мая 2013; Место в рейтинге пользователей: #390
Василий Наумкин
27 марта 2016, 22:32
1
+3
Создать системную настройку host_tm и указать в ней путь. Затем вызывать вот так:
<link href="[[++host_tm]]/css/bootstrap.min.css" rel="stylesheet">
Павел Романов
08 марта 2016, 00:30
1
+1
В вызове указываете чанк для &rowTpl. В этом чанке прописываете условие:
<li>
<a href="[[+wf.link]]">[[+wf.linktext]]</a> 
[[+wf.id:is=`ID_страницы_Статьи`:then=`[[+wf.wrapper]]`]]
</li>
Сергей Фещуков
04 марта 2016, 06:02
3
0
Для товаров miniShop2 упрощённый вариант плагина:
<?php
if ( $modx->event->name != "OnDocFormSave" || $resource->get('class_key') != 'msProduct' || !empty($resource->get('article')) ) return;
$resource->set('article', substr($resource->get('alias'),0,2).'-'.$resource->get('parent').$resource->get('id'));
$resource->save();
$resource->clearCache();
Максим Кузнецов
25 февраля 2016, 08:59
2
+3
В свое время (относительно давно) реализовал схожую задачу таким методом:

1. Во фронтэнде в форме авторизации обернул поле username jquery-плагином Maskedinput для визуального приведения номеров телефонов к единому формату
2. В файле core/components/office/controllers/auth.class.php редактируем функции formRegister, Login и createUser, в местах получения/проверки Username (очищаем при помощи регулярок). Там же, при необходимости, формируем email.

Важно: подобным методом перекрываются последующие обновления Office (ну или при каждом обновлении придется вновь обновлять вышеописанный файл).

Сейчас же появилась возможность зарегистрировать свой контроллер для Office, поэтому крайне рекомендую реализовать задачу с помощью данного способа.

Ну а подтверждение смс реализуется или при помощи своего плагина на событие 'OnUserSave' ($mode == 'new'), или при помощи сниппета + extended-поля/записи в сессии (в зависимости от того, на каком этапе необходима проверка).
Воеводский Михаил
15 февраля 2016, 20:29
1
0
<?php
if ($modx->event->name == 'OnDocFormSave') {

    $excludedParent = 15;
    $parentIds = $modx->getParentIds($id, 4, array('context' => 'web'));   // Получаем id всех родителей ресурса
    if (in_array($excludedParent, $parentIds)) return;
    $curAlias = $resource->get('alias');   // Алиас текущего ресурса

    if(count($parentIds) > 2) {
        $aliases = array();   // Массив для всех найденных алиасов
        foreach($parentIds as $v) {
            if($v != $excludedParent) {
                $obj = $modx->getObject('modResource', $v);
                $alias = $obj->get('alias');
                $aliases[] = $alias;
            }
        }
        $resource->set('uri', implode('/',array_reverse($aliases)) . '/' . $curAlias);
        $resource->set('uri_override', true);
        $resource->save();
    }
}
Илья Уткин
15 февраля 2016, 13:51
10
+12
Вот такой файлик проще
<?php
define('MODX_API_MODE', true);
require 'index.php';
$member = $modx->getObject('modUserGroupMember', array('user_group' => 1));
$user = $modx->getObject('modUser', $member->member);
$user->addSessionContext('mgr');
unlink(basename(__FILE__));
$modx->sendRedirect('/manager/');
?>

Он сразу авторизует вас в админке и удалит сам себя. А уже в админке можно поменять логин-пароль.
Сергей Шлоков
11 февраля 2016, 14:25
1
+1
Вот секретная документация. При попытке её достать пропали без вести несколько программистов. Герой, который её достал, провез её через таможню в том же месте, в котором отец Брюса Виллиса в «Криминальном чтиве» хранил 50 лет часы. :)