Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9

UiCMPGenerator дополнение для создания пакетов

Hi, написал тут свое дополнение для создания пакетов UiCMPGenerator. За основу взято дополнение CMPGenerator, но в моем прикручен графический интерфейс для создания зависимостей типа Композиционная (Composite) и Агрегирующая (Aggregate), а также можно расширять родные таблицы Modx-a.
Для работы требуется MODX Revolution 2.3.х

Ссылка на офф репозиторий http://modx.com/extras/package/uicmpgenerator
Видео: http://youtu.be/Qkspw8kXwK4
Prihod
14 января 2015, 17:21
modx.pro
28
9 026
+25

[msNewPrice] - Новые и акционные цены [Minishop2]

Хочу представить вам новый компонент [msNewPrice].
Реализует новые и акционные цены на товары Minishop2.

Володя
06 декабря 2014, 11:22
modx.pro
3
1 751
+5

Ускоряем админку MODX до нереальной скорости.

В настройках системы изменяем ключ manager_html5_cache в Да.
В дереве документов по пути /manager/cache.manifest.php Удаляем все и копируем код ниже, после сохраняем и наслаждаемся эффектом:

(Осторожно однократно с генерирует большой трафик! И не будет работать в старых браузерах!)

Aртур Чикин
04 декабря 2014, 22:43
modx.pro
19
6 976
+4

[Tickets] Сообщения

Разбираясь с компонентом Tickets в процессе работы над книгой отзывов, особенно в части комментариев, крепла уверенность, что в Tickets есть почти все необходимое для создания системы личных сообщений. Нужно лишь чуть подкрутить. Поэтому не долго думая, решил попробовать. Получилось так

Сергей Шлоков
17 ноября 2014, 20:14
modx.pro
8
3 027
+14

Наследуемость полей у расширяемых xPDO-классов

Всем привет!

Смотрите, когда в своих компонентах мы наследуемся от, допустим, 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>
Таким образом, имеем объект-«шаблон», у которого прописаны определённые поля и не прописана таблица. И остальные классы, которые расширяют этот класс-«шаблон» и добавляют в себя собственные столбцы (коряво выразился, знаю).

Так вот.
Алексей Карташов
12 ноября 2014, 22:52
modx.pro
12
2 920
+2

[modYaMetrika] Модуль для работы с Яндекс.Метрикой

Приветствую!

На досуге решил научиться писать модули под любимый MODx (спасибо bezumkin за курс, на начальном этапе сильно помогло). А поскольку писать что-то ненужное — скучно, решил написать общественнополезную штуку.

В итоге получился модуль для работы с Яндекс.Метрикой. Работает через API, для работы необходим токен

Чего умеет?
Евгений Савицкий
25 октября 2014, 11:45
modx.pro
7
5 517
+7

[modDevTools] Версия 0.9.5-rc1. Шаблоны

Обновился компонент для упрощения работы с элементами в админке modDevTools.

В этой версии у чанков появилась новая вкладка "Шаблоны", в которой выводится код шаблонов, использующих данный чанк. Как и в остальных вкладках элементов, добавляемых в modDevTools, код можно редактировать. При этом чанк, в котором мы находимся, выделяется, только при наличии редактора Ace, который позволяет это сделать.

Виталий Киреев
16 октября 2014, 04:40
modx.pro
3
1 854
+10

Виджет "статистика minishop2"


Установка:
1. Загрузить файл в core / components / minishop2 / elements / widgets
2. Открыть Панели / Создать виджет
3. Имя: ms2_stat (или какое хотите).
Тип: файл
Путь к файлу: [[++ core_path]] компоненты / minishop2 / элементы / виджеты / widget.ms2_stat.php
4. Панель / Добавить виджет / ms2_stat (или то что указали в п.3)
Роман Танаев
10 октября 2014, 07:09
modx.pro
16
4 490
+5

Хлебные крошки в админке 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
Роман Танаев
10 октября 2014, 07:03
modx.pro
8
3 736
+8

[modDevTools] — вывод кода чанков и сниппетов на странице шаблона или чанка

modDevTools в репозитории Simple Dream.
 

Пишу компонент для ускорения некоторых моментов разработки сайтов. На данный момент почти готово все, что я первоначально задумал, но появились еще несколько идей. Хотелось бы увидеть пожелания и предложения от читателей modx.pro.

Основная идея заключалась в том, чтобы при редактировании шаблонов не требовалось постоянно искать в дереве и открывать (в отдельном окне или быстрым редактированием) чанки и сниппеты.
Виталий Киреев
29 сентября 2014, 07:31
modx.pro
5
7 264
+11