С Новым 2017-м Годом!

Поздравляю всех с наступающим Новым Годом и Рождеством!

Мечтайте, люди, и претворяйте свои мечты в жизнь! И стирайте грань между сказкой и жизнью! Всем радости и благополучия!

ВАЖНО: Критическое обновление

В AltoCMS используется библиотека PHPMailer, в которой была обнаружена критическая уязвимость. В версии Альто 1.1.27 эта библиотека обновлена.

Настоятельно рекомендуется обновить движок до версии 1.1.27! Или обновить хотя бы саму библиотеку, которая находится в директории /engine/libs/phpMailer

Как правильно модифицировать шаблон (скин) для себя

По умолчанию в движке идет три скина: start-kit, expirience, exprience-simple.

Все скины в той или иной степени можно модифицировать, не влезая особенно в код. Но иногда этого бывает мало. Если немного понимаешь в верстке, если понимаешь, как работает шаблонизатор Smarty, то нередко возникает соблазн где-то что-то подправить — в файлах шаблона, в стилях, в js-скриптах. И уж если это делать, то делать нужно так, чтоб при обновлении движка не убить все свои правки. И тут я расскажу именно об этом.

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

Про секретную админку, поддомены и прочие тонкости маршрутизации в Alto CMS

Довольно часто встречаются такие вопросы:
А как сделать, чтобы админка работала не по адресу site.com/admin, а по секретному адресу, который знаю только я? Или вопрос из этой же серии: как сделать, чтоб блоги открывались не по адресу site.com/blog/blabla, а, например, по адресу site.com/section/blabla?

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

В общих чертах, полагаю, большинство из вас понимает, как работает маршрутизатор (роутер): берет запрашиваемый URL, разбирает его на составляющие и вызывает нужный экшен. При этом обработка URL проходит через несколько наборов правил, которые могут задаваться в конфиг-файле (причем, именно в таком порядке):
  • проверка правил внешнего редиректа
  • правила обработки доменов
  • обработка переопределения запроса («внутренний реврайтинг»)
  • внутренний редирект контроллеров (экшенов)
  • определение класса контроллера (экшена)
Теперь обо всем этом по порядку.

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

Как shikari.do за потенциальными клиентами охотится

shikari [ʃɪˈkærɪ] — сущ., охотник-туземец, работающий проводником
На правах хозяина ресурса позанимаюсь-ка я саморекламой. Точнее — рекламой сервиса, к которому я имею непосредственное отношение, и который может быть весьма полезен многим посетителям этого сайта.

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

И что нам теперь с этим делать? Как таких заказчиков искать? Можно, конечно, попытаться мониторить их в соцсетях вручную. Но это будет жутко неэффективно (кто сомневается — попробуйте, потом мне расскажите о результатах).

Но есть способ получше — подписаться на сервис shikari.do. Кто не любит много читать, а предпочитает сразу действовать — идите и регистрируйтесь. Полноценная регистрация с подпиской на одну категорию на три дня абсолютно бесплатна!

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

Версия 1.1.23 — небольшие исправления и чуть-чуть новенького

Таки вышел релиз Alto CMS 1.1.23. Каких-то «прорывных» фишек в ней нет, она, главным образом, исправляет ряд обнаруженных ошибок и чуть-чуть добавляет некоторых новых возможностей для разработчиков.

Вот список основных изменений:

Исправлены ошибки:
  • несовместимость с php 5.3
  • установка в конфиге экшена/ивента по умолчанию
  • иногда нарушался порядок подключения js-файлов
  • не работал ресайз в методе getPhotosetMainPhotoUrl() топика
  • в некоторых случаях ломалась цветопередача для загружаемых jpeg-файлов с CMYK-профилем (очень старая ошибка, но никак не могли ее выловить)
  • исправлен еще ряд мелких, но неприятных ошибок в коде и шаблонах

Обновлены сторонние библиотеки:
  • CSSTidy до 1.5.5
  • JShrink до 1.1.0
  • jQuery до 1.12.4

Добавлено:
  • местоположение директории для для загрузки и хранения изображений
  • для js-файлов можно указывать атрибуты defer и async
  • выбор изображений топика по параметрам
  • методы AppendAsset() и PrependAsset() модуля Viewer
  • вызов E::Module('Name') теперь кеширует экземпляр модуля, что увеличивает быстродействие
  • ну и кое-что еще по мелочи

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

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

Плагины Компании и Работа, теперь на Альто

Добрый день, меня зовут Антон, я занимаюсь разработкой плагинов и доработок под Livestreet с 2009 года. Тогда же были написаны плагины Компании и Работа для livestreet, некий аналог разделам хабрахабр. Недавно стали поступать запросы по поводу работы плагинов под Альто и я решил сделать адаптацию. И я ее сделал.

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

Что с Alto CMS? Да все нормально! Просто жара

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

Во-первых, надо, наконец, озвучить, что релиз версии 1.2 перенесен на осень. Жаль, конечно, но пришлось. Поэтому в августе выйдет очередная версия ветки 1.1.х с фиксами и небольшими улучшениями.

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

[dev] ActiveRecord в Alto CMS v.1.2. Часть 1

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

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

В общем, все закончилось тем, что в Альто была выполнена своя реализация ActiveRecord, о которой сейчас и пойдет речь.

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