Рубрика «cms» - 30

В последнее время очень много говорится о схеме проектирования MVC, почти все популярные PHP-фреймворки уже давно перешли на эту схему. Что же касается Kohana, то начиная с версии 3, реализована иерархическая схема MVC – HMVC. Преимущества HMVC, всем понятны и мы не будем их здесь обсуждать.

Я, как желающий сменить статус «программиста-любителя» на «программиста-профессионала» решил, что уже достаточно изучил PHP и пора начинать работать с фреймворками, выбор моего самого первого фреймворка пал на именно Kohana, т.к. в нем реализуется HMVC, ну и вообще, его много хвалят за простоту.

В реальности все оказалось не просто, но особенно напрягало отсутствие изолированности триад MVC, триады разбивались на части и помещались в разные папки. В моем понимании, триада Model-View-Controller, должны быть изолированны от других триад, и находиться в одной папке, конечно, это можно было реализовать в Kohana, но все будет выглядеть очень «коряво» и запутанно. Еще было не понятно, почему не используется такая замечательная возможность PHP как пространство имен? Просмотрел еще несколько HMVC-фреймворков, но не к одному «душа не легла». Тогда я решил самостоятельно реализовать HMVC.

Сразу установил несколько директив:

  • Должно использоваться пространство имен
  • Автозагрузка классов работает на пространстве имен
  • В автозагрузку можно добавлять несколько папок
  • Каждое приложение имеет свою папку, на которую устанавливается автозагрузка
  • Каждая триада, в том числе и шаблоны, помещается в отдельную папку, соответственно, находятся в своем пространстве имен
  • По умолчанию, части MVC называются своими именами, Controller, Model и View, в каждой папке триады должна быть папка templates для шаблонов
  • Очень простой роутинг, URI просто разбивается в массив
  • Controller похож на Kohana_Controller
  • Controller получает информацию о том, что от него хотят в конструкторе, разбирает информацию URI-массива, после чего запускает метод action()
  • Метод action() проверяет методы объекта и запускает соответственно action_действие()
  • Генерация HTML, осуществляется методом контроллера render()

Потом добавил еще несколько:

  • Роутинг осуществляет расширенный контроллер, он разбивает URI в массив, сначала проверяет свои actions, если не находит, то ищет зарегистрированный контроллер
  • Результат работы модели сохраняется в контроллере, передается в View, при создании в методе контроллера render()
  • Метод action() публичный, созданный контроллер можно еще раз запустить и сгенерировать HTML
  • View похож на Kohana_View, для приложения, View необходимо «вытащить» в глобальное пространство имен при помощи наследования, заодно немного настроив, все остальные View должны быть наследниками глобального View
  • Контроллеры и View должны знать в какой папке и в каком пространстве имен они находятся, для этого они наследуются от специального класса NameSpaceAdapter, это нужно для правильного поиска View из контроллера, а так же папки templates из родительского View
  • Главный шаблон для каждой триады — template.php
  • Контроллеры автоматически передают в View свой action, на основании этой информации View из главного шаблона template.php самостоятельно ищет нужный шаблон action.php, поэтому не должно быть action_template(), это приведет к зацикливанию шаблонов
  • Для администрирования можно создать шаблоны с префиксом admin_action.php, которые можно вызвать только если установлена константа ADMIN

В итоге получилась небольшая HMVC структура, Model не играет роли, поэтому код не привожу, скажу только, что склоняюсь к статическому классу.
Читать полностью »

Обзор Особенности встроенного редактирования контента.

Что нового можно придумать в технологии редактирования контента? Все уже привыкли, что для редактирования приходится вначале искать нужный материал в недрах CMS, а потом искать в большой форме то поле, в котором меняется сам текст. И хорошо, если в этом поле он будет показан с таким же оформлением, как на сайте. Но часто эта форма для управления содержимым является не только очень мощной (когда позволяет внести изменения в метаинформацию), но и избыточной. Ведь если вы забыли поставить запятую, то придётся вновь проделывать все эти операции.
Вместо этого inplace-редакторы дают возможность сконцентрироваться на самом тексте без необходимости искать материал в недрах админки.Читать полностью »

Корректная работа механизмов информационного обмена программ на базе 1С: Предприятие с сайтом PHPShop зависит от того, насколько верно выполнены настройки синхронизации в обработке обмена. Однако, именно выполнение первоначальных настроек чаще всего вызывает у пользователей наибольшие затруднения.

В качестве одного из решений в оказании технической помощи своим пользователям компания PHPShop включили в состав обработок обмена 1С помощник настроек, позволяющий последовательно заполнить и проверить настройки подключений к сайту и ftp-серверу, параметры выгрузки товаров на сайта и обратной загрузки заказов в 1С.
Читать полностью »

Сколько себя помню, всегда любил разные тусовки разработчиков и хороших специалистов разного ИТ-профиля. Из первых рук можно узнать множество интересной информации, а в кулуарах порой возникают уникальные договоренности или раскрываются разные секреты. К сожалению, мой родной Екатеринбург — не самый передовой город в этих вопросах. Попробуем исправить ситуацию?Читать полностью »

Начиная с сегодняшнего дня у HolyCMS 3 появилась онлайн-демо – теперь можно оценить возможности интерфейса администратора и редактора сайта без установки на собственный хостинг!

HolyCMS 3 — онлайн демо сайты
Читать полностью »

CMS с открытыми исходниками и лицензией “твори что хочешь, только автора упомяни” продолжает развиваться, добавляя в себя больше ООПшности, MVCшности и прочей няшности.

Holy CMS 3.2 – работа над ошибками, или добавим к Битриксу ложечку Коханы

Читать полностью »

Механизмы аутентификации и подтверждения платежа посредством электронной подписи широко применяются в системах ДБО. Эволюция технических средств электронной подписи наглядно показана в статье Щит и меч в системах ДБО. Кратко линейку можно можно представить в виде — токены, токены с криптографией на борту, touchscreen с криптографией на борту.

Обычно устройства с криптографией на борту реализуют базовые криптографические алгоритмы — ЭП, хэш-функцию, шифрование. Но в ряде случаев в системах ДБО для аутентификации и ЭП применяются цифровые сертификаты. Для интеграции криптографических возможностей устройств и инфраструктуры PKI мы выпустили решение Рутокен WEB PKI Edition, мультиплатформенный и мультибраузерный плагин для систем с web-интерфейсом.

Новая версия плагина поддерживает наш touchscreen с криптографией на борту — устройство Рутокен PINPad. Теперь можно проверить, что подписывается действительно платежка, отображаемая в браузере.

Таким образом, мы предлагаем разработчикам систем ДБО универсальное решение, которое по ряду показателей безопасности, возможностей и удобства использования не имеет аналогов.

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

Щит и меч в системах ДБО. Прикладное решение

Читать полностью »

Ни для кого не секрет, для чего проводятся конкурсы. Конечно, это разновидность рекламы, и часто в виде конкурса она более эффективна, чем классическая реклама прямого воздействия. Потому что, во-первых, рекламодателю обходится относительно недорого: нужен всего лишь призовой фонд. Во-вторых, народный резонанс выше и внимание целевой аудитории более пристальное. А для интернет-конкурсов еще и в том выгода, что после конкурса следы останутся, которые будут давать дополнительную отдачу еще долгое время. По крайней мере так нам казалось, когда мы задумали провести конкурс. Так ли это на самом деле — покажет время.

Сразу скажу, ранее конкурсы мы не проводили, это наш первый опыт. Хотя интернет-рекламу использовали и используем всякую. И что интересно, в сети много информации о том, как запустить тот или иной вид традиционной рекламы, но найти руководство по проведению конкурса — не сыщешь. Поэтому организацией конкурса мы занимались с нуля. А на фоне того, что мы уже долгое время по всякому рекламируемся в интернете, нам будет с чем сравнивать. Обо всем мы расскажем ниже.
Читать полностью »

Привет!

Год назад разработали под свои задачи сервис который позволял нам хранить файлы (со всеми примочками файловых хранилищ) и прямо из хранилища создавать для файлов виджеты, делать удобные линки на файлы, которые мы добавляли на корпоративные сайты, статистику для отслеживания жизни виджетов и еще незначительный функционал, который нам был нужен.

Весной, в Калифорнии, пообщавшись с множеством предпринимателей решили (видимо воздух у них там такой) сделать публичный сервис, который бы давал возможность человеку управлять своими файлами непосредственно из своего хранилища. Проблему вы знаете — контента много, что с ним делать не всегда ясно. В Долине в одной компании нам сказали, что они уже не контролируют на каких сайтах и что они публиковали.Читать полностью »

В очередной раз, пытаясь найти себе программиста, который работал с CMS 1C-Bitrix с своем городе натыкаюсь на проблему…

Программисты есть, работавшие с разными бесплатными фреймворками по типу Joomla, WordPress и т.д., но когда дело доходит до Битрикса, все как один говорят: — «Ой, она платная, зачем мне это когда есть куча других бесплатных». И не хотят браться за изучение чего то нового.

Так начинал и я, за исключение одного, мне сразу показали, как что и почему. Но материала в сети и на хабре я так и нашел. По этому начну с простого, как обычному программисту владеющим знаниями PHP и хотя бы базовыми HTML, CSS, JS начать работать c Битрикс.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js