Илья Уткин
С нами с 15 декабря 2012; Место в рейтинге пользователей: #9UiCMPGenerator дополнение для создания пакетов
Hi, написал тут свое дополнение для создания пакетов UiCMPGenerator. За основу взято дополнение CMPGenerator, но в моем прикручен графический интерфейс для создания зависимостей типа Композиционная (Composite) и Агрегирующая (Aggregate), а также можно расширять родные таблицы Modx-a.
Для работы требуется MODX Revolution 2.3.х
Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
Для работы требуется MODX Revolution 2.3.х
Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
[msNewPrice] - Новые и акционные цены [Minishop2]
Ускоряем админку MODX до нереальной скорости.
В настройках системы изменяем ключ manager_html5_cache в Да.
В дереве документов по пути /manager/cache.manifest.php Удаляем все и копируем код ниже, после сохраняем и наслаждаемся эффектом:
(Осторожно однократно с генерирует большой трафик! И не будет работать в старых браузерах!)
В дереве документов по пути /manager/cache.manifest.php Удаляем все и копируем код ниже, после сохраняем и наслаждаемся эффектом:
(Осторожно однократно с генерирует большой трафик! И не будет работать в старых браузерах!)
[Tickets] Сообщения
Разбираясь с компонентом Tickets в процессе работы над книгой отзывов, особенно в части комментариев, крепла уверенность, что в Tickets есть почти все необходимое для создания системы личных сообщений. Нужно лишь чуть подкрутить. Поэтому не долго думая, решил попробовать. Получилось так
Наследуемость полей у расширяемых xPDO-классов
Всем привет!
Смотрите, когда в своих компонентах мы наследуемся от, допустим, modResource, то в схеме мы пропишем следущее:
Теперь то, что хочу сделать я.
У меня есть пара десятков сущностей (и, соответственно, таблиц), у каждой из которых должен быть определённый набор полей, вроде «кем создан», «когда создан», «активно», «удалено» и т.д.
Так вот по аналогии с расширением класса modResource подумалось мне сделать вот так:
Так вот.
Смотрите, когда в своих компонентах мы наследуемся от, допустим, modResource, то в схеме мы пропишем следущее:
<model package="myPackage" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myPackage" phpdoc-subpackage="" version="1.1">
<object class="myObject" extends="modResource">
</object>
</model>
И, собственно, всё — объект myObject унаследует все поля, их свойства и методы от класса modResource.Теперь то, что хочу сделать я.
У меня есть пара десятков сущностей (и, соответственно, таблиц), у каждой из которых должен быть определённый набор полей, вроде «кем создан», «когда создан», «активно», «удалено» и т.д.
Так вот по аналогии с расширением класса modResource подумалось мне сделать вот так:
<model package="myPackage" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myPackage" phpdoc-subpackage="" version="1.1">
<object class="myObjectTemplate" extends="xPDOSimpleObject">
<field key="active" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="deleted" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="createdby" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="createdon" dbtype="int" precision="20" attributes="unsigned" phptype="timestamp" null="false" default="0" />
<field key="deletedby" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="deletedon" dbtype="int" precision="20" attributes="unsigned" phptype="timestamp" null="false" default="0" />
<!-- в действительности будет ещё десяток таких полей + индексы к ним -->
</object>
<object class="myObjectOne" table="my_object_one" extends="myObjectTemplate">
<field key="my_object_one_field" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
</object>
<object class="myObjectTwo" table="my_object_two" extends="myObjectTemplate">
<field key="my_object_two_field" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
</object>
</model>
Таким образом, имеем объект-«шаблон», у которого прописаны определённые поля и не прописана таблица. И остальные классы, которые расширяют этот класс-«шаблон» и добавляют в себя собственные столбцы (коряво выразился, знаю).Так вот.
[modYaMetrika] Модуль для работы с Яндекс.Метрикой
Приветствую!
На досуге решил научиться писать модули под любимый MODx (спасибо bezumkin за курс, на начальном этапе сильно помогло). А поскольку писать что-то ненужное — скучно, решил написать общественнополезную штуку.
В итоге получился модуль для работы с Яндекс.Метрикой. Работает через API, для работы необходим токен
Чего умеет?
На досуге решил научиться писать модули под любимый MODx (спасибо bezumkin за курс, на начальном этапе сильно помогло). А поскольку писать что-то ненужное — скучно, решил написать общественнополезную штуку.
В итоге получился модуль для работы с Яндекс.Метрикой. Работает через API, для работы необходим токен
Чего умеет?
[modDevTools] Версия 0.9.5-rc1. Шаблоны
Обновился компонент для упрощения работы с элементами в админке modDevTools.
В этой версии у чанков появилась новая вкладка "Шаблоны", в которой выводится код шаблонов, использующих данный чанк. Как и в остальных вкладках элементов, добавляемых в modDevTools, код можно редактировать. При этом чанк, в котором мы находимся, выделяется, только при наличии редактора Ace, который позволяет это сделать.
В этой версии у чанков появилась новая вкладка "Шаблоны", в которой выводится код шаблонов, использующих данный чанк. Как и в остальных вкладках элементов, добавляемых в modDevTools, код можно редактировать. При этом чанк, в котором мы находимся, выделяется, только при наличии редактора Ace, который позволяет это сделать.
Виджет "статистика minishop2"
Установка:
1. Загрузить файл в core / components / minishop2 / elements / widgets
2. Открыть Панели / Создать виджет
3. Имя: ms2_stat (или какое хотите).
Тип: файл
Путь к файлу: [[++ core_path]] компоненты / minishop2 / элементы / виджеты / widget.ms2_stat.php
4. Панель / Добавить виджет / ms2_stat (или то что указали в п.3)
Хлебные крошки в админке MODX
<?php
if ($modx->event->name == 'OnDocFormPrerender') {
if (!$id = $modx->controller->resourceArray['id']) {
return;
}
$resources = array();
foreach ($modx->getParentIds($id, 10, array('context' => 'web')) as $parentId) {
if ($parentId) array_push($resources, $parentId);
}
natsort($resources);
$resources[] = $id;
$setting = $modx->getObject('modSystemSetting', 'settings_version');
$version = explode('.',$setting->get('value'));
$url = MODX_MANAGER_URL.'/manager/index.php?a=30&id=';
if($version[1]==3){
$url = MODX_MANAGER_URL.'?a=resource/update&id=';
}
$level = 0;
$childTemplates = '<a style="color: #333;" href="'.MODX_MANAGER_URL.'">Панель</a> <span style="color: #333;">|</span> ';
foreach ($resources as $resourceId) {
$resource = $modx->getObject('modResource', $resourceId);
if ($resourceId == $id) {
$childTemplates .= '<span style="color: #333;">'.$resource->get('pagetitle').'</span>';
} else {
$childTemplates .= '<a style="color: #333;" href="'.$url.$resource->get('id').'">'.$resource->get('pagetitle').'</a> <span style="color: #333;">|</span> ';
}
$level++;
}
$modx->controller->addHtml('
<script>'."
Ext.onReady(function() {
var title = Ext.select('#modx-resource-header');
var pagetitle = Ext.select('#modx-resource-pagetitle');
title.createChild('<p style=\"padding-bottom: 15px;\">$childTemplates</p>');
pagetitle.on('keyup', function(){
title.createChild('<p style=\"padding-bottom: 15px;\">$childTemplates</p>');
});
});
</script>
".'</script>');
return;
}
Update
(15.10.2014) — Добавлена генерация url в зависимости от версии cms.
Исходный код: github.com/tanaevr/BreadCrumbsManager
[modDevTools] — вывод кода чанков и сниппетов на странице шаблона или чанка
modDevTools в репозитории Simple Dream.
Пишу компонент для ускорения некоторых моментов разработки сайтов. На данный момент почти готово все, что я первоначально задумал, но появились еще несколько идей. Хотелось бы увидеть пожелания и предложения от читателей modx.pro.
Основная идея заключалась в том, чтобы при редактировании шаблонов не требовалось постоянно искать в дереве и открывать (в отдельном окне или быстрым редактированием) чанки и сниппеты.
Пишу компонент для ускорения некоторых моментов разработки сайтов. На данный момент почти готово все, что я первоначально задумал, но появились еще несколько идей. Хотелось бы увидеть пожелания и предложения от читателей modx.pro.
Основная идея заключалась в том, чтобы при редактировании шаблонов не требовалось постоянно искать в дереве и открывать (в отдельном окне или быстрым редактированием) чанки и сниппеты.