Разделы

  
 

[Revo (2.2.0-pl2)] Не удается определить логин пользователя, который вошел в систему

Здравствуйте.

Решаю задачу: нужно сохранить в БД пользователей которые логинились в систему modx или на сайт. Для этого написал plugin, который срабатывает на события onManagerLogin и on WebLogin

В плагине:
1) подключаюсь к БД,
2) определяю логин пользователя $usr = $modx->user->get('username');
3) вызываю процедуру в БД в которую передаю логин.

В modx зарегистрировано 2 пользователя admin и test. Но при входе в систему (или на сайт) в базу передается пользователь (anonymous), id = 0.

Ошибки в процедурах БД нет, так как с выходом пользователя все работает (тот же плагин, но на событие OnBeforeManagerLogin)

Подскажите, как определить логин пользователя который вошел в систему?

MODx Revolution Plugin: ChangeTemplate

ChangeTemplate это плагин для MODx Revolution (2.2.0-pl2). Этот плагин является особенно полезным, когда мы должны контролировать, какие Шаблон наследуется детьми в документах родителя.
С ChangeTemplate пользователю не нужно помнить, какой выбрать шаблон, потому что это делается автоматически с помощью плагина.
Нашел на форуме. может кому и пригодится.
1. Установка
Для установки плагина ChangeTemplate перейдите в раздел «Элементы> Plugins> Новый плагин» и создайте:
Имя плагина: ChangeTemplate
Системные события: OnDocFormRender
Код плагина

( Читать дальше )

[Evo] Вариант создания тегов в дереве MODx

Disclaimer Эта статья носит скорее обучающий характер, и не претендует на высоко профессиональность. В статье используются разные техники использоания гибкости MODx.
Картинка результата для затравки




( Читать дальше )
  • +4
  • 13 января 2012, 01:46
  • adminko
  • 8

Система бронирования на modx

Здравствуйте,
существуют ли готовые решения для реализации системы бронирования на modx.
Базовый функционал:
— пользователь может просмотреть, выбрав дату с xx.xx до xx.xx наличие свободных мест
— администратор в админке должен иметь возможность добавлять бронирование на какие-то даты

Спасибо.

Плагин уведомить о наличии

Пытаюсь создать плагин, отправки уведомления подписавшимся на наличие товара
Не могу выяснить почему не работает
есть таблица с подписавшимися

CREATE TABLE IF NOT EXISTS `nasklade` (
  `idp` int(11) NOT NULL AUTO_INCREMENT,
  `prodid` int(11) NOT NULL, #ключ документа
  `uname` varchar(20) NOT NULL, #имя подписчика
  `uemail` varchar(50) NOT NULL, #email подписчика
  PRIMARY KEY (`idp`),
  KEY `prodid` (`prodid`,`uemail`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;



и плагин на событии OnDocFormSave по идее должен реагировать на изменение количества в TV документа invertory если больше или равно TV miniweigt. Если условие удовлетворяет отправляет сообщение подписавшимуся и удаляет запись

defined('IN_MANAGER_MODE') or die();
$e = &$modx->Event;
if ($e->name == "OnDocFormSave"){
$id = $_POST['id'];
    if($id) { //check Id
$field1 = $modx->getTemplateVar('invertory','',$id); //количество на складе
$field2 = $modx->getTemplateVar('miniweigt','',$id); //минимальное число товаров для заказа
            if($field1 >= $field2){ 
      global $modx;
      $aTitle = $modx->getPageInfo($id,'','pagetitle'); //get pagetitle 
$tblEmails= $modx->getFullTableName('nasklade');
$emails= $modx->db->select("SELECT idp, prodid, uname, uemail FROM $tblEmails WHERE prodid = '$id'");
    if( $modx->db->getRecordCount( $emails ) >= 1 ) { 
        while( $rowmail = $modx->db->getRow( $emails ) ) { 
$match=array("%X%","%N%");
$replace=array($aTitle['pagetitle'],$rowmail['uname']); 
$message = str_replace($match, '"'. $replace. '" ', wordwrap($message, 100));
     
     sendEmail($rowmail['uemail'], $subject, $message);
     // if ($sendmail) {
      $modx->db->delete($tblEmails, "idp = ".$rowmail['idp']."");
                //     }
                 }
              }
       }
}
}

 // Send email
function sendEmail($to, $subject, $message) {
    $headers ="MIME-Version: 1.0\n".
              "Content-type: text/html; charset=utf-8\n".
              "From: ".$_SERVER['SERVER_NAME']."<no-reply@{$_SERVER['HTTP_HOST']}>\n".
              "X-Mailer: PHP/".phpversion();

$body = <<<EOD
$message
EOD;

   $mail = mail($to, $subject, $body, $headers);
  }



с конфигурацией


&subject=Email Subject;text;товар в наличии &email=Email Address;text; &message=Message (%X% will be replaced);textarea;Здравствуйте, %N%. Товар %X% появился на складе нашего магазина

плагин customSettings 1.0 для Evo. Добавляем свои системные настройки.

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

Например нам нужно на сайте вывести номер телефона и адрес компании. Можно для этого создать чанки, но редактировать их простому менеджеру сайта будет очень не удобно. Значительно удобнее было бы добавить эти данные в конфигурацию сайта («Инструменты» -> «Конфигурация»). Для этого можно использовать простой плагин.


( Читать дальше )

AddFileInfo (Revo) - Автоподстановка типа и размера файлов

AddFileInfo (beta)


Скрипт:


  1. обрабатывает содержимое (контент) и находит в нем ссылки

  2. получает http headers ссылок и создает описание на их базе

    • преобразует формат (mime) и дописывает класс ссылки

    • дописывает размер файла по шаблону

    • дописывает любой внутренний/внешний текст по шаблону


  3. создает описание всех/меченых* ссылок по шаблону

  4. если ссылка помечена как табличная* — создает двухколоночную таблицу «Ссылка — Описание»

    • в таблицу добавляются все последовательно стоящие ссылки, не разделенные иными тегами, кроме br

    • автоматически удаляются разрывы строк (br) до, после и между строками таблицы


    • * — параметры обработки задаются классом ссылки




Скачать установочный пакет — ставится через установщик пакетов (закинуть в core/packages, искать пакеты локально)


( Читать дальше )

Автоматический перевод ALIAS'a в MODx Revo 2.0.4

Привет всем. Не могу найти плагин для MODx Revo 2 который автоматически будет переводить alias с Русского на Английский язык при добавлении ресурса. Помогите пожалуйста.
  • 0
  • 16 декабря 2010, 05:56
  • NNP
  • 4

[Plugin] MultiFiles - прикрепляем к странице несколько файлов

Это почти то же самое, что MultiPhotos, но для файлов.
Поддерживается несколько подключений на странице.
Необходимые параметры: для плагина — tvIds (один или несколько id через запятую), для сниппета — tvname (имя tv).
Сниппет ещё выводит иконки.

файлы

Установка:
1. Создать новый параметр (TV) типа textarea с именем, к примеру files
2. Создать новый плагин MultiFiles, вставить код плагина, вставить конфигурацию
&tvIds=TV Ids;text;&templ=Template;text;&role=Role;text;
прописать id параметра files в появившееся поле tvIds, отметить галочкой событие OnDocFormRender.

UPD. 16.05.11
Добавил параметр id
UPD. 10.07.11
Исправил ошибку в сниппете
UPD. 03.08.11
Добавил поддержку IE9
UPD. 05.01.12
Исправил баг с несохранением данных в плагине
  • +8
  • 21 ноября 2010, 19:51
  • Temus
  • 58

systemField - плагин для MODx Evo

Плагин позволяет удобно добавлять «служебные» данные в контент страницы (вызовы сниппетов и т.п.). Теперь эти данные не будут вводить в ступор неподготовленного менеджера, т.к. они находятся в скрытом текстовом поле (открывается по клику по ссылке «system content»). И не надо заморачиваться с созданием TV и правами чтобы его скрыть.


( Читать дальше )