Обзор блогодвижка Webasyst Блог

    Одним из первых приложений, которое мы разработали на основе фреймворка Webasyst, было приложение «Блог», позволяющее вести личные, коллективные и корпоративные (закрытые авторизацией) блоги. Именно блог, потому что на примере этого приложения было очень удобно реализовать множество базовых концептов во фреймворке: фронтенд, дизайн-редактор, плагины, сайтмап и т.д. К тому же тогда нам самим нужно было открывать блог на сайте. Приложение бесплатное (LGPL), работает на основе PHP/MySQL/Smarty/jQuery.



    Демо: фронтенд, бекенд (введите любые логин и пароль для входа в демо)
    Скачать: в архиве (3.8 МБ; архив уже включает в себя фреймворк Webasyst) или на GitHub (само приложение находится в wa-apps/blog/)

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

    Установка


    Системные требования «классические»: PHP 5.2+, MySQL 4.1+, расширения mbstring, iconv, json, curl, gd/imagick — ставится практически на любой шаред-хостинг.

    Приложение является частью фреймворка Webasyst. Если скачать приложение по ссылке, приведенной выше, фреймворк установится сразу вместе с приложением «Блог». Если же «Блога» в базовой поставке нет, то его можно легко установить через встроенное приложение «Инсталлер», которое всегда входит в базовый состав фреймворка («Инсталлер» позволяет одним кликом устанавливать обновления и новые приложения).

    Установка происходит в несколько шагов: копирование файлов на сервер по FTP с последующим вводом настроек подключения к MySQL через веб-интерфейс. Ничего необычного. Инструкция. (Если не хочется ставить скрипт, можно попробовать приложение в облаке Вебасиста.)

    Вход в бекенд:



    Бекенд


    При первом запуске приложение встречает пользователя:


    Интерфейс бекенда построен вокруг списка постов.



    Основное разделение постов — по блогам. Блоги представляют собой независимые потоки постов и могут быть открытыми — посты автоматически публикуются на сайте, и закрытыми — посты доступны только пользователям бекенда. Доступ к блогам настраивается по пользователям и группам пользователей. Каждому блогу можно назначить свой цвет, что делает ведение большого количества независимых блогов довольно удобным. На скриншоте выше показан пример общей ленты сразу трех блогов, два из которых (желтый и красный) закрытые — рядом с заголовком постов, принадлежащих этим блогам, выводится маленькая иконка-замочек.



    Пост может находиться только в одном блоге. Дополнительно на каждый пост можно назначать теги, категории (для этого нужно установить бесплатные плагины). Везде в списках lazy loading.

    Дизайн


    По умолчанию для фронтенда подключается тема дизайна «Дефолт», которая выглядит минималистично:


    «Дефолт» можно легко сменить на любую другую тему дизайна непосредственно в дизайн-редакторе в бекенде: выбираешь тему дизайна, она скачивается с сайта Вебасиста и устанавливается.



    Пока базовых тем немного, но зато все темы — с чистой валидной версткой (валидатор демо-версии), автоматически адаптируются под устройство пользователя (десктоп, планшет, мобильное), плюс во всех базовых темах дизайна используется микроразметка постов и комментариев по стандартам Schema.org.

    Используется шаблонизатор Smarty. Локализация — на основе gettext. Дизайн витрины можно редактировать непосредственно в браузере в бекенде приложения. Через веб-интерфейс редактировать можно все шаблоны фронтенда: и HTML/Smarty, и CSS, и JavaScript (jQuery).



    Предусмотрены разные Smarty-хелперы, которые помогают в любом шаблоне дизайна получать данные из приложения «Блог» или других приложений. Например, с помощью конструкции $wa->shop->products('tag/бестселлер') можно получить из Shop-Script 5 (приложения для создания интернет-магазинов) список товаров с тегом «бестселлер» и вывести их, скажем, в сайдбаре блога (шаблон sidebar.html):



    Аналогично можно вытягивать данные и из других приложений: $wa->photos->photos(‘tag/каникулы’), $wa->shop->cart()->total(), $wa->blog->blogs() и т.д. Список поддерживаемых хелперов всегда можно посмотреть в шпаргалке здесь же в дизайн-редакторе.



    Фронтенд


    Подписка на блог во фронтенде — RSS, на закрытые блоги в бекенде — по email.

    Для ЧПУ-адресов записей фронтенда можно использовать один из нескольких вариантов: только адрес записи или же адрес записи вместе с годом, месяцем, днем.



    На базе одного приложения можно вести несколько независимых блогов на разных сайтах. За каждым фронтендом приложения (а их может быть сколько угодно и на разных доменах) можно закрепить отдельный блог. Пример: на сайте фреймворка мы ведем блоги на английском (webasyst.com/blog/) и русском (webasyst.ru/blog/) языках в едином потоке, посты публикуются на разных доменах и внешне выглядят независимыми.



    Во фронтенде тоже везде lazy loading. С точки зрения SEO все ок: если нет поддержки JavaScript, то показывается постраничный навигатор вместо lazy loading, так что все посты индексируются нормально.

    Также приложение автоматически создает и обновляет сайтмап блога (пример сайтмапа в демо).

    Написание поста


    Для написания постов предусмотрено три режима редактирования:
    WYSIWYG, куда же без него: используется редактор elRTE,
    HTML: на основе редактора Ace,
    Markdown: нужно поставить бесплатный плагин.

    Для постов можно редактировать мета-теги, заголовок , теги, категории (плагин), планируемую дату публикации и произвольные key-value параметры, значения которых потом передаются в шаблон дизайна.



    Если в настройках приложения включить опцию 'can_use_smarty' => true, в теле поста можно будет также полноценно использовать Smarty. Это удобно для работы с данными из других приложений, например, когда нужно получить динамический список фотографий из приложения «Фото» по какому-либо правилу: тегу, рейтингу, альбому и т.п.

    Комментарии


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



    Во фреймворке сразу «из коробки» есть OAuth-адаптеры авторизации для популярных сервисов, поэтому в настройках (в веб-интерфейсе) можно легко подключить авторизацию через Гугл, Фейсбук, Вконтакте и другие сервисы.

    Дисциплина


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



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



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



    Плагины


    Для бесплатной загрузки доступны несколько полезных плагинов, например:

    — плагин «Троллфейс», позволяющий отметить троллфейсом отдельные комментаторов,
    — уже упомянутый выше плагин Markdown,
    — плагин импорта из Вордпресса и ЖЖ,
    — плагин фильтрации постов по категориям и тегам,
    — антиспам Akismet,
    — остальные плагины можно посмотреть здесь.



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

    API


    Предложение предоставляет 13 внешних API-методов для чтения и записи данных.

    blog

    • blog.blog.add
    • blog.blog.getInfo
    • blog.blog.getList
    • blog.blog.update

    post

    • blog.post.add
    • blog.post.comments.add
    • blog.post.comments.delete
    • blog.post.comments.getInfo
    • blog.post.comments.getTree
    • blog.post.delete
    • blog.post.getInfo
    • blog.post.search
    • blog.post.update

    Документация по API-методам приложения (с песочницей): http://www.webasyst.ru/developers/docs/api/explorer/blog/

    WordPress, другие движки и зачем еще один велосипед


    На основе фреймворка Webasyst мы делаем в основном приложения для командной работы и бизнеса, а основное направление сегодня в Вебасисте — интернет-магазины. Приложение «Блог» мы создали не для конкуренции с Вордпрессом и другими блогодвижками, а, во-первых, потому что оно технически очень помогло нам в развитии фреймворка, а во-вторых, мы хотели, чтобы на основе фреймворка было возможно и приятно вести блог, и поэтому поставили задачу создать удобный, сбалансированный инструмент, сфокусированный исключено на ведение блога. В целом фреймворк расширяет его функционал до полноценной универсальной CMS, но только вкупе с другими приложениями.

    Приложение «Блог» будет полезно для тех, кому надоел их движок блога, для тех, кто хочет помимо блога иметь в бекенде своего сайта еще много других инструментов: фотогалерею, интернет-магазин и вообще не связанные с привычными CMS инструменты вроде списков дел, справочника контактов, почты, заданий и т.д. Во фреймворке Webasyst таких инструментов много, и мы постоянно выпускаем все новые и новые интересные приложения.

    «Блог» особенно хорош в связке с приложением «Фото»: после загрузки фотографий в «Фото» их можно экспортировать в блог по одной или сразу целой пачкой. Также «Блог» многие наши клиенты используют для публикации новостей их интернет-магазинов, работающих на основе Shop-Script 5.

    Ссылки на некоторые примеры блогов: http://www.webasyst.ru/store/app/blog/examples/

    Разработчикам


    Если вам интересно приложение «Блог», будем рады вашим пулл-реквестам на Гитхабе и заявкам на размещение плагинов и тем дизайна в магазине Webasyst — недавно мы открыли свой магазин приложений, плагинов и тем дизайна, в котором независимые разработчики могут публиковать собственные разработки на платной или бесплатной основе. Условия публикации опубликованы здесь. Будем рады сотрудничать и совместно развивать платформу!

    GitHub: https://github.com/webasyst/webasyst-framework (само приложение находится в wa-apps/blog/)
    Лицензия: LGPL (приложение бесплатное)
    Webasyst
    28.03
    Company
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 10

    • UFO just landed and posted this here
        0
        Задачу переплюнуть WordPress мы не ставили, и просто хотели сделать полезный бесплатный инструмент для ведения блогов на базе нашего фреймворка. Но в определенных применениях приложение действительно может оказаться удобнее Вордпресса (например, при использовании совместно с другими приложениями).
        0
        «Демо: фронтенд, бекенд (введите любые логин и пароль для входа в демо)»

        Frontend — это интерфейс взаимодействия с пользователем, а backend — интерфейс взаимодействия frontend-а с сервером. Но уж никак не админка движка.
          +1
          http://en.wikipedia.org/wiki/Backend

          In content management systems the terms front end and back end may refer to the end-user facing views of the CMS and the administrative views respectively.
          –1
          PHP/MySQL/Smarty/jQuery

          а как же новые технологии?
            0
            ну не на Эрланге же писать, чесслово:)
            • UFO just landed and posted this here
                0
                ghost.org
            • UFO just landed and posted this here
                0
                Спасибо за замечания.

              Only users with full accounts can post comments. Log in, please.