3 заметки с тегом

MODx EVO

Добавление нового параметра в WebloginPE Modx Evo

2 ноября 2016, 15:29

Добавление параметра &dobFormat в сниппет WebloginPE в Modx Evo.

Редактируем код сниппета:

Пример Bruno

$dateFormat = isset($dateFormat) ? $dateFormat : '%A %B %d, %Y at %I:%M %p';
$dobFormat = isset($dobFormat) ? $dobFormat : '%m-%d-%Y';//add by Bruno

А также 

$wlpe->CustomTable($customTable, $customFields, $prefixTable, $tableCheck);
$wlpe->dobFormat=$dobFormat;//add by Bruno



Редактируем файл webloginpe.class.php:

$age = substr($ageDecimal, 0, strpos($ageDecimal, "."));
$modx->setPlaceholder('view.dob', strftime($this->dobFormat, $viewUser['dob']));//dobFormat by Bruno
$modx->setPlaceholder('view.age', $age);

А также

// CREDIT : Guillaume for not format an empty date
$value==0?'':$modx->setPlaceholder('user.'.$key, strftime($this->dobFormat, $value));//dobFormat by Bruno
$modx->setPlaceholder('user.age', strftime('%Y', time() - $value));



В этом же файле перепишем функцию MakeDateForDb:

function MakeDateForDb($date)//modified by Bruno for $dobFormat
    {
        $formatArray= split('[/.-]', $this->dobFormat);
        $dateArray= split('[/.-]', $date);
        // $date is a string like 01-22-1975.
        if (count($dateArray) !== 3)
            return $this->FormatMessage($this->LanguageArray[27]);
        $daypos = array_search('%d', $formatArray);
        $monthpos = array_search('%m', $formatArray);
        $yearpos = array_search('%Y', $formatArray);
 
        // $dateArray is somethink like [0]=01, [1]=22, [2]=1975
        // make a unix timestamp out of the original date string.
        $timestamp = mktime(0, 0, 0, $dateArray[$monthpos], $dateArray[$daypos], $dateArray[$yearpos]);
        return $timestamp;
    }



После данных изменений добавляем параметр в вызове сниппета &dobFormat=`%d.%m.%Y` или в любом нужном для Вас формате.

MODx   MODx EVO   WebloginPE

Решен баг в MODX Evo Eform загрузка файла

18 марта 2016, 22:36

Добрый день

В Modx Evo при отправке формы с загрузкой файла выдает ошибку:
too many nested array

Решение:

Открыть файл на редактирование path/manager/includes/protect.inc.php

Заменить функцию modx_sanitize_gpc на:

if (!function_exists('modx_sanitize_gpc')) {
    function modx_sanitize_gpc(& $target, $modxtags=array(), $count=0) {
        global $sanitize_seed;
        $brackets = array('[[',']]','[!','!]','[*','*]','[(',')]','{{','}}','[+','+]','[~','~]','[^','^]');
        foreach($brackets as $bracket) {
            $r[] = $sanitize_seed . $bracket['0'] . $sanitize_seed . $bracket['1'] . $sanitize_seed;
        }
        foreach ($target as $key => $value) {
            if (is_array($value)) {
                    $count++;
                    if (10 < $count) {
                    echo 'GPC Array nested too deep!';
                        exit;
                    }
                modx_sanitize_gpc($value, $modxtags, $count);
                                $count--;
            }
            else {
                $value = str_replace($brackets,$r,$value);
                $value = preg_replace('/<script/i', 'sanitized_by_modx<s cript', $value);
                $value = preg_replace('/&#(\d+);/', 'sanitized_by_modx& #$1', $value);
                $target[$key] = $value;
                }
            }
        return $target;
    }
}
EForm   MODx   MODx EVO   too many nested array

MODx EVO Базовые вещи

3 июня 2015, 15:08

Основы СMF Modx Evo
Для вывода динамических данных используются специальные теги.

Системные

[(site_name)] – название сайта
[(site_url)] – адрес сайта (http://site.ru)
[(modx_charset)] – используемая кодировка
[^qt^] – время на запросы к базе данных
[^q^] – запросов к базе данных
[^p^] – время на работу PHP скриптов
[^t^] – общее время на генерацию страницы
[^s^] – источник содержимого (база или кэш)

Стандартные

[*pagetitle*] – заголовок документа
[*longtitle*] – расширенный заголовок документа
[*description*] – описание документа
[*introtext*] – аннотация документа
[*content*] – содержимое документа
[*alias*] – псевдоним документа
[*id*] – идентификатор (номер) документа
[*pub_date*] – дата публикации дкоумента
[*unpub_date*] – дата завершения публикации
[*createdby*] – Идентификатор пользователя создавшего документ
[*createdon*] – Дата создания документа
[*editedby*] – Идентификатор пользователя редактировавшего документ
[*editedon*] – Дата редактирования документа
[~идентификатор~] – URL указанного документа

Дополнительные

[*type*] – вариант (документ, папка или ссылка)
[*contentType*] – тип содержимого (например, text/html)
[*published*] – опубликован ли документ (1|0)
[*parent*] – номер (ID) родительского документа
[*isfolder*] – является ли документа папкой (1|0)
[*richtext*] – используется ли при редактировании документа визуальный редактор
[*template*] – номер (ID) используемого шаблона для документа
[*menuindex*] – порядковый номер отображения в меню
[*searchable*] – доступен ли документ для поиска (1|0)
[*cacheable*] – Кэшируется ли документ (1|0)
[*deleted*] – Документ удален (1|0)
[*deletedby*] – Идентификатор пользователя удалившего документ
[*menutitle*] – Заголовок меню. Если не используется, то заголовок документа
[*donthit*] – Слежение за количеством посещений отключено (1|0)
[*haskeywords*] – Документ содержит ключевые слова (1|0)
[*hasmetatags*] – Документ имеет метатеги (1|0)
[*privateweb*] – Документ входит в частную группу пользовательских документов (1|0)
[*privatemgr*] – Документ входит в частную группу менеджерских документов (1|0)
[*content_dispo*] – Вариант выдачи содержимого (1 — для отображения | 0 — для скачивания)
[*hidemenu*] – Документ не отображается в меню (1|0)

Параметры TV, сниппеты и чанки

[[snippet]] Вставляет кэшируемый вызов сниппета
[!snippet!] Вставляет некэшируемый вызов сниппета
[(setting)] Вставляет значения системных параметров
[*resourceField/TV*] Вставляет значение переменной шаблона или TV-параметра
[^timing^] Вставляет системную информацию
[~link~] Формирует ссылку на другой документ MODx
{{chunk}} Вставляет в документ содержимое чанка
[+placeholder+] Используется для вывода какого-либо параметра в шаблонах сниппетов/модулей или для вывода результатов работы сниппета.

Фильтрация и вывод TV

[[Ditto? &parents=`2` &tpl=`catalog_buy_dop` &filter=`club,[*club*],7|id,[*id*],2`]]

&parents=`2` - родитель с клубами
&tpl=`catalog_buy_dop` - шаблон вывода
&filter=`club,[*club*],7|id,[*id*],2` - двойной фильтр:

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

MODx   MODx EVO