FastImageTV

Аналог Revo-компонента FastUploadTV. Позволяет добавлять картинки в TV-параметры без вызова файлового менеджера. Разработку оплатил и разрешил поделиться с сообществом пользователь ilarion , за что ему спасибо. Также спасибо пользователю EGO , который до публикации этого топика наткнулся на компонент на гитхабе и прислал по этому случаю донат (:


Читать дальше →

FormLister - сниппет для работы с формами и пользователями

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

Читать дальше →

MODX Evo Custom v1.1-d8.0 (11.04.2016)

Наконец то опубликовал свежую версию сборки в целом тут все то что сейчас делается в офф ветке. Про самое вкусное можно глянуть тут:
github.com/modxcms/evolution/pull/583
Да и переделали возможность сортировку элементов практически в дереве:)


Так же обновил в Extras multiTV теперь работает с tinyMCE4

скачать как всегда можно на сайте:
modx.com.ua
или на GitHub (https://github.com/dmi3yy/modx.evo.custom)

[EVO] globalPlaceholders - модуль глобальных плейсхолдеров, tv и настроек.

Всем доброго времени суток.
Мне наконец надоело заниматься заполнением глобальных настроек через базу и разные быстрые решения. Было решено пошустрому собрать модуль + плагин для редактирования статичных данных которые часто раскиданы по чанкам и разным страницам. В общем собрал все в одно место. Настройка может подменять и плейсхолдер и тв. Редактируется удаляется переименуется все из модуля.

Весь код находится на гите. Предложения и вопросы можно тут а можно и в разделе ошибок на гитхабе.

Модуль работает на версиях 5.2 и выше. В остальном я думаю никаких ограничений нет, но я не ручаюсь т.к. не тестил на других сборках.

Что может модуль:
1) создавать новые настройки в базе system_settings с префиксом global_
2) редактировать эти настройки из модуля.
3) рассовывать настройки по разным группам.
4) присваивать настройкам разные типы редактирования (чекбокс, изображение, файл и т.д.). Селекты как обычно поддерживают стандартный вариант заполнения значений (1||2||3 и 1==имя1||2==имя2). В дальнейшем наполнится возможными типами редактирования.
5) естественно возможность удалять настройки с префиксом global_
6) Есть возможность при помощи плагина подменять [* и [+ на значение настройки. (пример есть настройка global_sitePhone, при выставлении параметров подмены будет доступен в качестве [*sitePhone*] и [+sitePhone+]. Если значение является массивом то доступ к нему как к массиву можно получить через [(sitePhone)]). Удобно если нужно перевести старый проект на этот модуль а вычищать и менять все вызовы тв на вызовы настройки нет желания, как мне :)

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

Что могут плагины
gPHParser:
1) Парсит глобальные настройки с префиксом global_ отчищает их от шелухи и кладет на место уже без префикса.
2) Раскладывает настройки в зависимости от выбранных типов доступности (плейсхолдер — gPH, ТВ — gTV, настройка — по умолчанию всегда)
3) Если включен frontEditor в настройках то оборачивает все текстовые настройки в div для указания что этот текст можно править.

Плагин вызывается по событию onParseDocument, подмена обрабатывается только один раз, при первом проходе парсера. В последующие проходы парсера они доступны уже во всех положенных местах.

gPHFrontEditor:
1) Добавляет скрипты на страницу для активации фронтэдитора.
2) Активирует доступные к редактированию изображения ссылки видео.
3) Сохраняет новые данные после редактирования.
4) Скидывает кеш страниц т.к. редактор виден обычным пользователям. (нужно сделать сброс кеша исключительно данной страницы ибо выходит немного накладно)

Плагин вызывается по событию onWebPageInit, сброс кеша происходит по событию onWebPageComplete.

Немного скриншотов.




Ссылка на видео

Кому интересно можете покопаться на гите)

UPD 10/03

Создавать настройку с пустым именем нельзя.
Группа назначается автоматом если группа не была выбрана и новая не была указана.
Имена настроек транслитируются на английскую раскладку.
Добавлен ричтекст. Ричтекст рендерится на основании дефолтного. Если у вас в настройках выставлено отсутствие ричтекста то будет выводится большая текстареа.
Поправлены небольшие баги. Проведены небольшие доработки кода.
Добавлен префикс в плагин. Теперь можно не перезаписывать существующие плейсхолдеры и тв. По дефолту префикс «g.»

UPD 10/03

Поправил багу с пересохранением значения ричтекста.
Добавил поддержку разделения настроек по табам исходя из группы.

UPD 15/03

Добавлена запись глобальной настройки вида g_[%option_name%] для доступа к настройке без плагина.
Добавлена настройка позиции для группирования настроек.
Поправлены баги с сохранением текста содержащего переносы строк в базу. (Будет еще допиливаться для сохранения переносов т.к. сейчас они просто вытираются)
Добавлен пользовательский шаблон для вывода настройки, в пользовательском шаблоне не выводится имя настройки а только описание.

UPD 27/03

Сделал простенький фронтенд редактор для настроек. Редактор может править тексты (рич, инпуты, текстареа) работать с тегом видео, изображения, ссылки. Т.е. можно менять изображения текста видео ссылки на файлы и видео прям на живую с фронта.
Немного поправил код плагинов и модуля.
Добавил обработку переносов строки для текстареа. Теперь на фронте они как br а в самой текстареа как \r\n.

UPD 30/03

Полностью убран конфиг модуля. Вместо него теперь полноценная страница настройки в модуле.
Поправлены мелкие недочеты с логикой и всякие мелочи типа общей группы.
Добавлен евент OnWebPageComplete в котором скидывается кеш. Сделано для того чтобы веб пользователь не видел скешированную после плагина страницу (потом переделаю во что-то более путное).
Добавлены конфиги в установочные файлы. Теперь модуль и плагины доступны в Extras в качестве одного пакета.

MODX Evolution 1.1 (29.02.2016)

MODX Evolution 1.1 готов, хотя ничего нового для тех кто использует мою сборку(http://modx.com.ua) там нет :) но все равно приятно :)

Список изменений:
github.com/modxcms/evolution/blob/master/install/changelog.txt

Ошибки: 44
Рефактор: 35
Обновления, плюшки: 35
Коммитов: 322
Измененных файлов: 293
Приложили руки: 18 человек

Основная команда:
Dmytro Lukianenko (Dmi3yy) github.com/dmi3yy
Deesen (Deesen) github.com/deesen
Agel_Nash (AgelxNash) github.com/AgelxNash
Sergey Davydov (MrSwed) github.com/MrSwed
Kari Sцderholm (Haprog) github.com/Haprog
YAMA (yama) github.com/yama
Thomas Jakobi (Jako) github.com/Jako
and: Zevseg, Segr, TimGS, jasonabird, bossloper, Eoler, fourroses666, rpre, pmfx, kulmjens, MaXL-ru, janniconl, Fess7, esszett

А также: Zevseg, Segr, TimGS, jasonabird, bossloper, Eoler, fourroses666, rpre, pmfx, kulmjens, MaXL-ru, janniconl, Fess7,esszett

Официальная дата релиза: 29.02.2016 (красивая дата потому пару дней подождем:)


--------------------------------------------
Bugfixes:
--------------------------------------------
* [GitHub:#41a5bcd] Fixing #356 Loosing content in chunk after saving and already exists
* [GitHub:#6d799af] [#364] Fixed issue for renderFormElements to provide default text (Fixed to only set value if field_value is empty) 
* [GitHub:#90b1a91] Weblogin: - Retain remember me option …	
* [GitHub:#dcd9656] Fix script error in View manager logs	
* [GitHub:#3e6895d] Increase FileSource filebinding input field maxlength to prevent data loss
* [GitHub:#da4cf8a] Prevent PHP warning 'Key cannot be empty' …	
* [GitHub:#32f0d65] Fix #396 getUserDocGroups(true) always returns only one group name	
* [GitHub:#3cea34d] Weblogin: doesn't always clear $_SESSION['webDocgrpNames'] on logout	
* [GitHub:#1b0148e] Fix #394 error in description of CodeMirror …	
* [GitHub:#6cc4467] Fix/update confirmed working MODX version in CodeMirror plugin comment.	
* [GitHub:#1c2e755] Value of properties in GUID on module creation. This bug is active since 1.0.13. Seems to be that creating modules is not an everyday task
* [GitHub:#8530858] Maybe missing permission check in refresh_site.dynamic.php 	
* [GitHub:#21e1aad] ManagerManager: non-breaking space. It interferes with the use of the ddmultifield
* [GitHub:#aca2a22] Minor fix - MODxHost template	
* [GitHub:#30fd127] small calendar styles fix	
* [GitHub:#7dec05a] Choose language translate	
* [GitHub:#0dc2c0f] AjaxSarch Date format	
* [GitHub:#395898a] fix DBAPI update( for NULL)
* [GitHub:#5a554f7] fix session_keepalive	
* [GitHub:#dd25766] Ditto: Fix - Deprecated PHP Code "makeList"
* [GitHub:#75c9c0f] Fix - Slimming Paint rendering issue at Chrome …	
* [GitHub:#14a94c6] Fix error render the default setting in the TV type date	
* [GitHub:#cbce5e7] fix sendmail	
* [GitHub:#175a18e] checkCache fix	
* [GitHub:#9e09c4e] wayfinder config need include for multi use with other configs	
* [GitHub:#a5d63f5] DB dumps do not disable foreign key checks 
* [GitHub:#ef206b2] fix install with empty categoryes name	
* [GitHub:#f65f4ed] Avoid double matches …	
* [GitHub:#797bd91] fix emmet header footer for HTML5	
* [GitHub:#b631d61] fix bad SEO when using phpthumb #434 …	
* [GitHub:#ac0cec4] Fixing, TransAlias removes a dot in file's format …		
* [GitHub:#4bc76c5] #391 user/pw htmlspecialchars	
* [GitHub:#2dd47e0] #391 username/data htmlspecialchars	
* [GitHub:#93959ac] Avoid PHP-Error "File not found"	
* [GitHub:#640309d] fix render settings	
* [GitHub:#c7abc69] avoid php notice: undefined index…	
* [GitHub:#e7ea0f7] Avoid PHP-Error/Data-Loss if path not exists	
* [GitHub:#2bb4391] Issue #385	htmlspecialchars + windows-1251 	
* [GitHub:#62a22ba] icon message unread	
* [GitHub:#2772903] Problem with a plus-sign in email address with forgot manager password #428
* [GitHub:#ef7a06d] if: fix for check [*content*] Issue #480	
* [GitHub:#8845642] export.class.inc.php #417
* [GitHub:#9e0a1b9] makeUrl fails with site start and query string
* [GitHub:#92f6cda] Error counting published and unpublished comments in JOT #389

--------------------------------------------
Refactor:
--------------------------------------------
* [GitHub:#aa2baae] Refactor manager api class: added missing return values, updated checkHashAlgorithm, removed superfluos variables, added missing variables
* [GitHub:#dfb0ac4] Display TV name during install
* [GitHub:#6f26656] Refactor - $modx->evalSnippets()	
* [GitHub:#1cebc29] Refactor - $modx->getTagsFromContent()
* [GitHub:#6c098f5] Refactor - $modx->evalSnippets()	
* [GitHub:#4e8b8da] Refactor - $modx->mergeDocumentContent()	
* [GitHub:#2b56d5d] Update setup.sql Increase default max upload file size to 10MB	
* [GitHub:#fb2f868] Wayfinder: for local references - use original document fields separated by comma (useful for set active if it is current, titles, link attr)
* [GitHub:#e77c169] Wayfinder: &useWeblinkUrl=`0` now work, no longer need to write &useWeblinkUrl=`FALSE`
* [GitHub:#27ebbe6] Ditto: no "start=0" in links of ditto pagination depending on modx setting seostrict
* [GitHub:#fa0348f] now we can use custom frame files from theme see (https://github.com/dmi3yy/modx.evo.custom/tree/master/manager/media/style/D3X)
* [GitHub:#ca8bnow] you can change all action in theme without change in core		
* [GitHub:#a842303] refactor search.static	
* [GitHub:#c09c083] frameset to iframe	
* [GitHub:#ed5396e] use Mysqli by default	
* [GitHub:#1968b47] refactor MainMenu (https://github.com/modxcms/evolution/blob/develop/manager/frames/mainmenu.php)	
* [GitHub:#6211a79] refactor cache_sync class, add some code for AliasListingFolder	
* [GitHub:#7c6adaa] fix in postProcess	
* [GitHub:#295ad92] Workaround for deprecated preg_replace() with /e modifier …	
* [GitHub:#bdb542d] refactor BackTrace	
* [GitHub:#e612f72] refactor getLoginUserName	
* [GitHub:#03c5e28] refactor getLoginUserID	
* [GitHub:#816af9c] refactor getChunk	
* [GitHub:#93fa0fc] refactor runSnippet	
* [GitHub:#26f86d0] refactor makeUrl for AliasListingFolder	
* [GitHub:#7d3e99e] refactor logEvent	
* [GitHub:#a7fd270] refactor getChildIds for AliasListingFolder	
* [GitHub:#6f19c69] refactor getParentIds for AliasListngFolder	
* [GitHub:#fa86662] refactor executeParser for AliasListingFolder	
* [GitHub:#3c94596] refactor checkPublishStatus()	
* [GitHub:#758817d] "Show in menu" moved to new row …	
* [GitHub:#b229ca1] #444 (Installer & PHP 5.5+ )	
* [GitHub:#113ac4c] add php version in sysinfo	
* [GitHub:#de360bd] autoload_register to spl_autoload_register	
* [GitHub:#7fadc10] Create cache folder before creating .htaccess in it	

--------------------------------------------
Additional Improvements & Updates:
--------------------------------------------
* [GitHub:#a76c830] Add Ukrainian lang
* [GitHub:#0ca31ad] phpthumb: determination of the original image file extension	
* [GitHub:#46e8457] phpthumb: encode decode cyr filenames	
* [GitHub:#70d0c84] phpthumb: &q=96 makes no sense with png and gif
* [GitHub:#9b0a873] phpthumb: encode only returned filenames
* [GitHub:#bc501e0] phpthumb: larger nophoto image	
* [GitHub:#563934c] Update eform.inc.php fix adding slash by vericode for HTML5 inputs	
* [GitHub:#d2adb9d] eForm: Adding HTML5 input types	
* [GitHub:#7be7aca] Wayfinder. Set id of reference to original document ID if it is innerdoc
* [GitHub:#63e6414] Starting the installation with the language of the user's browser	
* [GitHub:#bc5a9eb] BreadCrumbs 1.0.5: add ignoreAliasVisible to BreadCrumbs
* [GitHub:#2e56507] Eform: add phone validate in Eform
* [GitHub:#89dc1ea] New - $modx->getField($field,$docid)	
* [GitHub:#0c3fd0b] New - $modx->getUltimateParentId($docid,$top)
* [GitHub:#956c9ae] Cross-references from ClipperCMS: [*pagetitle@17*], [*pagetitle@parent*], [*pagetitle@ultimateparent*] ([*pagetitle@uparent*]), [*pagetitle@ultimateparent(17)*], [*pagetitle@alias(alias/path)*],[*pagetitle@site_start*]
* [GitHub:#5ddb8df] allow using asterisk for assign TVs to all templates
* [GitHub:#2ed509b] Update file browser KCfinder to 2.5.4	
* [GitHub:#eae7e74] Update CodeMirror to 1.2b	
* [GitHub:#b7dc20f] the ability to pass arbitrary parameters in the snippet(so you can use them in the processing of events)
* [GitHub:#fcb6343] Wayfinder: add [+wf.iterator+]	
* [GitHub:#907a1f2] view customTV in Select when choice tv type	
* [GitHub:#1072d79] Add some events: OnMakePageCacheKey, OnDocFormUnDelete, onBeforeMoveDocument, onAfterMoveDocument, OnBeforeLoadDocumentObject, OnAfterLoadDocumentObject, OnBeforeLoadExtension, OnManagerMenuPrerender, OnDocFormTemplateRender, OnFileBrowserUpload, OnDocFormTemplateRender
* [GitHub:#2770263] ManagerManger(add mm_movecategorytotab)
* [GitHub:#] add AliasLiastingFolder in Setting -> Friendly URLs (tested with 1000000 documents, no more limits for documents)
* [GitHub:#07bac53] add function getCacheFolder	
* [GitHub:#9372391] add function setConditional	
* [GitHub:#09e0ba7] add function getTpl	
* [GitHub:#769617e] ctrl + S, cmd + S now save in Manager	
* [GitHub:#fe5a3e7] Add MODxAPI extend MODX Api		
* [GitHub:#bcbe26e] add DocLister (https://rtfm.modx.com/extras/evo/doclister/)	
* [GitHub:#1bb1710] add in DBAPI $modx->db->dataSeek	
* [GitHub:#3a1c634] update _get_snip_result	
* [GitHub:#97326f2] Added missing CSS-ID to "actionButtons"
* [GitHub:#95a9283] Add Extras module to core
* [GitHub:#0d95ec6] if: Added Expression "contains"	

MODX Evo Custom v1.1RC-d7.1.6 (25.02.2016)

Обновил очередной раз свою сборку:) из важных плюшек теперь в базе есть DocLister а так же добавил поддержку для темы MODxPress


- rename folders libs to lib 
- add DocLister 
- fix error if no folders and turn on AliasListing for Folders
- fix phpthumb for image with ext jpeg
- turn on TinyMCE4 after install 
- scrollWork: console.log deleted and fix bug 
- добавлен Украинский язык для админки
- исправлена ошибка с системными плейсхолдерами(была в версии 7.1.5 затянул с оф ветки)
- добавленна поддержка темы MODxPress (можно экшены теперь переносить в папку темы и менять под себя)
- исправлен язык в tinyMCE теперь подхватывает нужный
- исправленно Tiny MCE Emmet - конфликт с HTML5 тегами header и footer
- Fix render properties menu


Скачивать как всегда:
modx.com.ua или на github

moveMODX - перенос сайта MODX Evo с хостинга на хостинг

Так как собираю довольно много сайтов и всегда приходиться переносить с тестового хостинга на боевой. Решил наконец-то облегчить эту задачку. Создал скрипт автоматического переноса:)

Указываем ему данные: FTP + MySql и все остальное он делает сам:


Читать дальше →

Почему никто не любит читать документацию? я сам люблю метод научного тыка но...

Переодически накатывает волна непонимания как можно собирать на MODX проекты при этом не потратив пару вечеров на знакомство с API?

Я понимаю что все не запомнишь да это и не нужно. просто нужно понимать какие есть возможности. В остальном как именно сделать можно глянуть в документации в любой момент.

Когда только начинал сам тоже работал исключительно методом тыка :) но потом пришло понимание что лучше потратить 1 день ознакомиться с Документацией и понимать что можно вообще сделать а дальше уже собирать.

docs.evolution-cms.com — Для начала вот этого сайта более чем
тут есть 90% информации которая необходима и после ознакомления с которой сразу отпадет куча лишних вопросов.

[EVO] Новый шаблон для MODx - MODxPress

Всем привет. Решил выйти из ридонли.
Не для кого не секрет что админка Evo устарела еще 10 лет назад. По сему нужно что-то делать для комфортной работы с админкой на планшетах и мобилках. За день на коленке был собран новый шаблон для админки который по своему принципу очень похож на админку WordPress (да и по дизайну почти слизан с нее). Просьба не кидаться тапками, мол фу, WordPress… Админка у них явно удобней и выглядит лучше чем у нашего любимого Evo.





Читать дальше →

Новый on-line курс "Создай свой сайт!"

on-line курс создай свой сайт!

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

Обучение построено на практических занятиях. Вы пройдете все этапы создания сайта: начиная от идеи, набросанной на листе бумаги до полной настройки и выкладки вашего творения в публичный доступ.

Вы научитесь работать в программе Photoshop и создавать эскизы страниц сайта, узнаете все тонкости современной верстки HTML+CSS шаблонов и сможете сверстать страницы для своего сайта или без труда разобраться в готовом шаблоне, познакомитесь с CMS MODX и на практике сделаете свой сайт на этой замечательной системе!

Читать дальше →