All streams
Search
Write a publication
Pull to refresh
8
0
Ланец Николай @Fi1osof

JS fullstack developer

Send message

Собственный репозиторий для MODX Revolution

Reading time1 min
Views7.5K
Много писать не буду. Это скорее как новость, нежели мануал. Хотя вопрос собственных репозиториев для MODX Revolution — тайна, покрытая мраком (если кто видел готовые решения, дайте пожалуйста ссылку).

В общем создал я пакет, позволяющий создавать свои собственные репозитории для MODX Revolution.

Пока не все дописано (в частности пока не считается количество загрузок, и не реализован приватный режим работы с доступом по ключу API), но в целом пакет уже вполне рабочий и для личных целей вполне годится.

Особенно это решение пригодится веб-студиям и фрилансерам.

Подробности в видео-ролике.
Читать дальше →

MODX Revolution и php-шаблоны

Reading time2 min
Views34K
Как и у всякой CMS/CMF, у MODX есть как последователи, так и противники. Чисто субъективно, этого вообще не избежать (у каждого свои привычки, взгляды, потребности и т.п.).

Но есть ли объективные причины? Да, безусловно. И на мой взгляд одна из самых серьезных — это собственный парсер MODX.

У MODX есть ряд собственных зарегистрированных тегов, используя которые даже начинающий программист, который знает только HTML и быть может вообще не знает PHP, может собрать довольно вменяемый сайт, так как существует довольно большое количество готовых компонентов, которые устанавливаются просто в два клика. К примеру для того, чтобы получить на своей странице меню, достаточно прописать [[Wayfinder?startId=`0`]]

Сразу небольшая видео-демка с решением для тех, кому лень читать.
Читать дальше →

Новый релиз пакета modLivestreet 0.5.0-rc full

Reading time2 min
Views5K
image
После двадцати часов работы публикую свежий пакет modLivestreet, который надеюсь станет переломным в восприятии и уже сможет наглядно продемонстрировать для чего вообще это все затевалось.

Что же на этот раз нового? В этот раз упор был сделан на то, чтобы создавалось все необходимое для полной установки Livestreet-а в несколько кликов и практически полное управление движком из админки MODX, а именно:
  • Источники файлов Livestreet (полностью раздел, плагин modLivestreet, папка uploads). Теперь не придется долго искать где что лежит, а там же можно через админку управлять файлами Livestreet
  • Шаблоны для MODX, чтобы выводить главную Livestreet, любые документы Livestreet, Любые документы MODX в двух вариациях (в две колонки с лентой новостей в правом блоке, и в одну колонку без сайдбара).
  • Пара чанков, чтобы вклиниться в шаблонизацию Livestreet

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

Под катом более полный список изменений и демо-ролик.
Читать дальше →

Установка LivestreetCMS на MODX Revolution из пакета за 10 кликов

Reading time4 min
Views5.8K
imageЯ уже не раз писал о своем модуле modLivestreet для связки MODX Revolution + LivestreetCMS (В этом топике подробно расписана идея и реализация со схемами и т.п.).
Спустя почти две недели с начала разработки модуля, я пришел к следующему выводу: слишком все сложно получается. Идея сама по себе простая: к MODX Revolution (которому исторически не хватает модулей для построения блогов) прикрутить LivestreetCMS, дабы получить этакую социалочку с хорошим функционалом.

Первый пакет я накидал быстро, и он вполне обеспечивал перенаправление запросов на Livestreet и вывод контента в MODX. Но дальше захотелось реализовать синхронную работу с пользователями MODX- и LS-., потом еще что-то… В общем функционал рос, код тоже. Проблемы проявились в сложностях настройки данного союза. Если с MODX можно сказать вообще никаких серьезных проблем не возникло (во всяком случае не потребовалось трогать ни байта кода движка), то с Livestreet все оказалось сложнее… Так или иначе приходилось лезть в код. Я конечно понимаю, что какие-то вещи можно и перегрузкой классов в своем плагине сделать, но это только частное решение проблемы. Да и некоторые моменты не перегрузить, как к примеру обстояло дело с классом Jevix. Но это не важные детали. Главное — настройка всего этого дела требует много ручной работы. Когда я написал мануал по установке и настройке всего этого дела, я совсем озадачился… Вроде и не много, но все равно больше, чем ничего.
Читать дальше →

Релиз новой версии модуля modLivestreet 0.4.6.1-rc

Reading time1 min
Views1.9K
11 дней прошло с последнего пресс-релиза моего модуля modLivestreet для связки MODX Revolution + LivestreetCMS

За это время пакет был серьезно доработан и уже претендует на звание стабильной версии.
Список изменений под катом.
У кого возникнут вопросы, спрашивайте.
Читать дальше →

Релиз новой версии модуля modLivestreet 0.3.0-rc

Reading time10 min
Views4.4K
Продолжая нашу тему про модуль связки MODX и Livestreet, представляю новую версию модуля modLivestreet: livestreet-0.3.0-rc.transport.zip

Что нового? Да практически все :-) Модуль переписан с нуля.
1. Серьезно изменена (улучшена) логика обработки запросов на LiveStreet.
2. Добавлена синхронизированная регистрация пользователей в MODX и LiveStreet. Теперь регистрируя пользователя через админку MODX, пользователь автоматически создается в LiveStreet, а обрабатывая запрос на LiveStreet на регистрацию пользователя, регистрация проходит через MODX, что в свою очередь так же обеспечивает синхронную регистрацию пользователя в обоих движках.
Данную функцию можно отключать через настройку.

Под катом схемы работы (упрощенные) MODX в стандартной версии и с модулем modLivestreet и более подробное описание того, как происходит синхронная регистрация пользователей в MODX и Livestreet (Схему, как изменилась регистрация в MODX выложу позже), а так же исходники.

UPD: сборка пакета на github: github.com/Fi1osof/modx-livestreet
Читать дальше →

Связка MODx Revolution + LiveStreet. Часть 2 (Дубль два)

Reading time2 min
Views2.9K
Прошлый мой топик закритиковали из-за отсутствия полностью задокументированного и оформленного решения, отправив меня все это дело переделывать, потому и переписываю топик с нуля, так как и решение с нуля все переделано.
Думал за часик все оформлю, а в итоге все переписал единым пакетом, полностью переосмыслив логику. Если так посмотреть, то с этим плагином MODX может работать не только с LiveStreet, а скорее всего много с чем, как бы выполняя роль шлюза (или nginx-а, чтобы понятней было).

Итак, вот готовый пакет для MODX: goo.gl/X6HCd (Extra залил на modx.com, но пока на модерации. Как только запустят, обновлю ссылку)

Что требуется для работы?
Отдельно MODX
Отдельно LiveStreet (можно в какой-нибудь внутренней папке в MODX (но не на одном уровне с livestreet.url_prefix, а то могут возникнуть сложности с подменой УРЛ-ов), можно за пределами MODX_DOCUMENT_ROOT (но лишь бы на одном сервере и доступ к файловой системе был)).

В общем ставим это все (или берем готовые сайты), устанавливаем на MODX данные пакет, правим (если надо) системные конфиги MODX пространства имен livestreet.

Это все просто.

Чуууточку сложнее вот это сделать:
Читать дальше →

Парадигма программирования процессорами в MODx Revolution

Reading time6 min
Views10K
Сразу оговорюсь, что данная статья — рассуждения и пища для размышлений. Совершенно не хочу устраивать холивары и навязывать другим свои методы программирования. Просто рассказываю, так как по себе ощущаю, что используемые мною методы программирования за последний год очень сильно изменились и в корне отличаются от методов предшествующих нескольких лет.

В данной статье я хотел бы рассказать насколько MODx Revolution в целом изменил мой подход к программированию.
Не знаю как кто программирует, но я считаю, что давным давно уже программирую методами ООП. К чему же в общих чертах сводилось программирование? Я писал (или брал готовые) классы под свои задачи (класс по работе с базой данных, класс по работе с шаблонами, класс еще под что-нибудь). Большинство классов были довольно большие и выполняли множество необходимых задач по своему профилю. Чаще всего по мере роста проекта многие классы разрастались, или обзаводились расширениями, или и то и другое. Так или иначе, уверен многие сталкивались с ситуацией часового разбора объекта в пару тысяч строк и несколькими десятками методов, чтобы разобраться куда можно внести очередные изменения, но так, чтобы при этом что-то другое не сломалось. Но на мой взгляд сложнее всего обеспечить гармоничное взаимодействие различных объектов между собой, особенно в плане перехвата ошибок при выполнении тех или иных действий, а главное в момент ошибки решить насколько она критичная и стоит ли прервать процесс выполнения, или можно идти дальше. А еще сюда же приписать клиент-серверные решения, чтобы стандартизировать ответы выполнения и для серверной части (с дальнейшей ее отрисовкой в шаблоны), и для Ajax-запросов.

Какой же именно инструментарий предлагает MODx Revolution для программирования логики проекта? Всего два класса: Процессор (выполняется классом modProcessor) и Коннектор (выполняется классом modConnector).
Что это такое? Процессор — отдельный файл с чаще всего одной или несколькими мелкими задачами, в результате выполнения которого ответ должен быть только положительным (что будет свидетельствовать о положительном результате выполнения), или отрицательный (желательно с конкретным сообщением об ошибке), что будет само собой говорить, что произошло что-то критически неправильно.
Читать дальше →

Пользовательские запросы к БД в MODx Revolution

Reading time5 min
Views50K
Данный топик наверняка будет полезен тем, у кого довольно большие проекты на MODx Revolution, так как с обычными сайтами-визитками достаточно и стандартных методов работы а-ля $modx->getObject(), $modx->getCollection() и т.п. И данные методы по сути своей не просто работа с базой данных, а еще и с объектами MODx.

При работе с большими проектами методы а-ля $modx->getCollection() для нас не лучшее решение по двум причинам:
1. Перерасход ресурсов. Данные методы не просто получают данные из БД, но еще и создают инстанции получаемых объектов. В данном случае получая информацию о 10000 документов, мы получаем 10000 объектов modResource, что не очень круто.
2. Осложняется задача подсчета получаемых записей. Помимо прямых сложностей подсчета еще на уровне запроса, даже если вы получите 10 записей одного и того же документа (к примеру), MODx вернет вам как результат только один объект modResource. И хотя часто такое устроит многих программистов (они получили уникальные объекты и рады), кого-то это не устроит, так как опять же происходит перерасход ресурсов, а по конечному результату сразу и не видно, что запрос не оптимизированный.
К тому же при работе на крупных проектах нам чаще всего нужны не сами объекты, а только информация (записи из базы данных).

Описанные здесь методы работы с БД ставят 2 задачи:
1. Дать бОльшую гибкость в написании запросов к БД.
2. Придерживаться стандартных методов xPDO, то есть избежать чистого SQL, так как чистый SQL по некоторым причинам в фреймворках вообще не кашерно (хотя бы с точки зрения возможной миграции на другой тип БД, смены названий таблиц, префиксов или еще чего-нибудь)
Читать дальше →

Работа с поддоменами в MODx

Reading time3 min
Views11K
Тут от товарища поступил вопрос:
День добрый!

Читаю статью про дружбу ModX и LS, и решил спросить вопрос, который сам никак в ModX не могу решить — как реализовать логику работы Revo в зависимости от текущего поддомена основного сайта?

Я вижу на pro-cent.ru, что в поддомен выносится название города (http://kaliningrad.pro-cent.ru/). ModX как-то помогает в обработке этого, или у Вас все руками и своим кодом сделано?


Решил дать ответ в публику, наверняка кому-нибудь тоже пригодится.
Читать дальше →

Связка MODx Revolution + LiveStreet

Reading time4 min
Views7.1K
Когда собирался писать свой топик, ломал голову куда же его писать? С одной стороны часть сайта написана на MODx, с другой стороны другая часть написана на LiveStreet, а с третьей стороны это такие костыли, что в пору в Ненормальное программирование писать. Оказалось, что Хабр готовился к такому повороту событий и сделал возможность писать сразу в несколько блогов, за что ему отдельный респект! :-)

Ну а теперь собственно к основному вопросу: В свое время я написал и запустил купонный сервис, само собой написанный на MODx Revolution (само собой, потому что я ярый любитель этого движка и что бы ни писал, всегда пишу именно на этом фреймворке).
Так вот, проект рос, развивался, много функционала было написано (благо MODx позволяет решить любую задачу), да вот только замыслилось мне на сайте еще и социалку-блог а-ля Хабрахабр запустить, да чтобы все наши пользователи там были, да чтобы отзывы по акциям туда же попадали, да чтобы отзывы были и в акциях, и в социалке, и чтобы и там и там их можно было комментировать и читать их в отдельной ветке все до кучи, и еще много-много чего… И когда я думал, сколько же мне понадобится времени, чтобы напрограммировать это все самому, я делался очень грусным...

Но вспомнил я про LiveStreet, о котором слышал давно-давно, и то, что он позиционируется как легкий и быстрый клон Хабра. И вот решил я отдельно социалку поднять на LS и увязать его с моим основным сайтом на MODx. LiveStreet установил и запустил за пару часов (это мое первое знакомство с этим движком).
Читать дальше →

Как же достал timeweb.ru!

Reading time2 min
Views10K
С хостингом timeweb.ru работаю уже года 3. К настоящему моменту у меня 4 аккаунта и штук 30-40 сайтов на них (это из тогго, что я еще не перетащил оттуда и что не особо важно).
Первые года полтора горя не знал, все устраивало, саппорт работал регулярно и качественно.
Со временем становилось как в сказке: «чем дальше, тем страшнее»…
Читать дальше →

Высокие технологии в Active cloud

Reading time1 min
Views759
Много писать не буду, коротко и по сути.
Несколько месяцев уже время-от-времени пользуюсь услугами облачного хостинга activecloud.ru.
Так вот, ни разу еще не было так, чтобы оплата прошла в автоматическом режиме и без проблем. Каждый раз приходится им звонить и разбираться с оплатой. Вот и сегодня оплатил им денег через карточку, Ассист рапортовал что все ОК, емейл от него же с подтверждением оплаты получил, но… Оплаты в активклауде нет. Услугу на день они мне не могут включить даже не смотря на то, что на балансе есть почти 300 рэ, но они не имеют технической возможности, а с оплатами разбираются манагеры, которые будут только завтра днем, или вообще в понедельник???

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

UDP: Не хватало кармы разместить сразу в тематическом разделе, по-этому переношу сейчас.

UDP2: Надо отдать должное, Хабрахабр ребята мониторят и сразу же идут на связь и максимально пытаются загладить вину. Но это уже понедельник (потому что менеджеры только в будние работают), то есть спустя два дня. Два выходных потеряно…

UPD3: У них получилось загладить передо мной вину и компенсировать моральный ущерб. Плюс за индивидуальный подход

PHP-консоль под MODx Revolution

Reading time2 min
Views9.3K
Продолжая статью уважаемого bezumkin-а, хочу поделиться одним небольшим, но очень полезным модулем для админки MODx Revolution. Это, так сказать, Ajax-консоль для выполнения PHP-кода (само собой на стороне сервера) и вывода результатов в браузер.

P.S. Не надо лишних комментариев на счет безопасности. Если не знаете MODx Revolution, лучше вообще ничего не говорить. Так же перед постингом по безопасности читаем тут.

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

Пользовательские таблицы в MODx Revolution

Reading time5 min
Views25K
imageВ данной статье мы разберем следующие вопросы:
  1. Создание пользовательских таблиц для MODx Revolution.
  2. Генерация XML-схемы и php-файлов-классов для xPDO.
  3. Работа с пользовательскими таблицами.

Читать далее

Безопасность и проблемы с ней в MODx Revolution

Reading time6 min
Views9.9K
Данный топик посвящается вопросам защищенности MODx Revolution в целом, а так же коннекторов и контекстов в отдельности (релиз Revolution 2.1.0 ).

Предыстория: встал вопрос создать серьезный ресурс на движке MODx Revolution. Технических проблем мы не видели, но решили больше внимания уделить вопросам защищенности движка.
Честно сказать, я всегда считал механизмы безопасности в MODx Revolution очень гибкими и надежными, но тут я получил довольно много сюрпризов… Постараемся разобрать их как можно больше и подробней.

Кто любит сразу самое интересное читать, начинайте читать со слов «Теперь подытожим, что же надо чтобы работал коннектор........», так как сначала рассмотрели не проблему, а задачу.

UDP: в версии 2.1.1 пофиксили. Но зная на сколько >2.1.0 сырая еще, уверен что 99% Рево в ходу это более ранние релизы.

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

Знакомство с Хабрапипл

Reading time5 min
Views2.6K

P.S. вместо вступления (из возникших комментов), чтобы легче было определиться, читать или не читать данный пост:


:-)
знаете как получается? Собираются такие клевые друзья, крайне мощные и талантливые программеры и арт-творцы. «Мы такие классные! Мы гении! Мы классные проекты можем реализовать на раз-два!». И создают они чудо-компанию, ведь они классные! Они не могут не заработать, потому что у них работы красивые и без багов.
Только вот проходит несколько месяцев, а бизнес как-то не идет… А все очень просто: просто система продаж в компании не совершенная. И бегают они, и пытаются содрать хоть какой-то заказик за копейки, чтобы иметь возможность доказать этому заказчику, что они классные, в надежде что он их оценит и потом сделает заказ хороший. И вроде находят… И опять что-то не так. Не ценит их заказчик, не понимает их гениальности! Опять пытается навязать свое видение, как надо правильно делать. И опять все кончается нервотрепкой, и провальным проектом.

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

Вот именно эти вопросы мы и будем поднимать.

Обращение сейчас ко всем, так сказать к слову:
Если вы из тех, кто мечтает создать идеальную компанию с гениальным портфолио и безупречной репутацией, для вас вряд ли что будет тут интересного.
Если вы больше бизнесмен и хотите поднять бизнес, пожалуйста, приглашаю к конструктивному диалогу. В дальнейших статьях будут более интересные и предметные моменты раскрываться

Знакомство с Хабрапипл

Очередной «урок» по ExtJS. Шаблоны элементов

Reading time3 min
Views4.7K
Привет всем! Во-первых всех хочу поздравить с Рождеством! Счастья всем и здоровья!
Во-вторых, хочу сообщить тем, кому интересно, что я разместил на своем сайте еще один урок по ExtJS, в котором мы попытаемся разобраться с шаблонами элементов.
Вообще сразу хотел бы отметить следующий факт: с прошлым постом получилась одна маленькая неприятность — много хабрапипл меня пытались убедить в том, что я творю Зло, что занижаю порог вхождения в сакральные технологии и оказываю медвежью услугу тем, кто в результате изучения моих корявых уроков напрочь теряет шанс стать нормальным кодером. В связи с этим хочу сразу определить несколько моментов:
1) Я вполне допускаю что высказалось немало действительно хороших специалистов в этой области, тем не менее прошу вас впредь не тратить свое время на подобные убеждения, ибо во-первых, с вами я не согласен, а во-вторых, выложите более адекватные уроки и нужность моих кривых уроков сразу пропадет сама собой.
2) Я еще раз повторюсь, что на звание авторитетной мануалы мои уроки не претендуют. Для меня программирование — хобби, и познания у меня больше дилетанские, и видение такое же, потому лексикон и примеры соответствующие. Но вполне возможно именно по-этому их понять начинающему легче, чем сразу с головой окунаться в изучение официальной доки на буржуйском языке. Потому, если у вас глубокие познания в программировании, вы вряд ли найдете что-то новое в моем материале, разве что захотите налить грязи и показать насколько вы крутой кодер на фоне остальных неучей. Не надо! Мы итак это знаем. Потому не флудьте почем зря. Здесь материал для начинающих и тех, для кого кодинг — хобби.
Читать дальше →
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity