7 комментариев

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

Следующий крупный релиз, над которым работает сейчас почти вся наша команда, это новый Shop-Script. Мы покажем долгожданную новую версию уже в декабре 2012. Очень скоро!

Чтобы получить уведомление о презентации нового Shop-Script и быть в курсе важных событий развития фреймворка Вебасист, подписывайтесь на этот блог по RSS, в Фейсбуке, в Твиттере.

18 комментариев

Версия 1.1.0 — фреймворк Вебасист выходит из статуса альфа-версии!

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

Фреймворк будет находиться в статусе бета-версии еще некоторое время, пока мы внедряем новый полезный системный функционал (например, API для доступа к данным приложений) и разрабатываем некоторые прикладные приложения: новый Shop-Script и связанные с ним полезные приложения «Рассылки», «Поддержка», «Календарь», онлайн-CRM и пр.

Новое в версии 1.1.0:

  1. db.php вместо app.sql



    Ранее для описания таблиц приложения нужно было создавать файл lib/config/app.sql, в котором, по сути, находился MySQL-дамп структуры таблиц. Этот файл автоматически разбирался при установке приложения, чтобы создать необходимые таблицы, а так же при удалении приложений, чтобы удалить уже ненужные таблицы.

    У такого подхода было несколько минусов:
    — Жесткая привязка к MySQL
    — Нужно явно указывать Engine для MySQL. Поскольку фреймворк можно устанавливать на большинство хостингов, то до сих пор использовались только таблицы MyISAM, т.к. InnoDB до сих пор поддерживается не везде. А это значит, что не было возможности пользоваться внешними ключами и транзакциями
    — Нет возможности указать связи между таблицами

    Для решения этих проблем мы заменили формат, в котором задается структура таблиц приложения, и вместо lib/config/app.sql теперь используется lib/config/db.php

    Было:
    wa-apps/guestbook2/lib/config/app.sql

    DROP TABLE IF EXISTS `guestbook2`;
    CREATE TABLE IF NOT EXISTS `guestbook2` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `contact_id` int(11) NOT NULL DEFAULT '0',
      `name` varchar(255) NOT NULL DEFAULT '',
      `text` text NOT NULL,
      `datetime` datetime NOT NULL,
      PRIMARY KEY (`id`),
      KEY `datetime` (`datetime`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
    
    Стало:
    wa-apps/guestbook2/lib/config/db.php

    <?php
    return array(
        'guestbook2' => array(
            'id' => array('int', 11, 'null' => 0, 'autoincrement' => 1),
            'contact_id' => array('int', 11, 'null' => 0, 'default' => '0'),
            'name' => array('varchar', 255, 'null' => 0, 'default' => ''),
            'text' => array('text', 'null' => 0),
            'datetime' => array('datetime', 'null' => 0),
            ':keys' => array(
                'PRIMARY' => 'id',
                'datetime' => 'datetime',
            ),
        ),
      );
    

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

  2. Обновление jQuery (добавлена 1.8.2, удалены все устаревшие версии), Smarty (3.1.12), Swift Mailer (4.2.1).
  3. Приложения «Блог», «Фото», «Стикеры», «Списки дел», «Контакты»: файлы db.php с описанием структуры таблиц приложений, а также исправления незначительных ошибок.

7 комментариев

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

Чего не хватает в документации больше всего? Туториалов? Видео-туториалов? Демо-приложений? Поиска по документации? Справочника по всем классам и методам? Было ли понятно с чего начинать? Проблемы при установке? Нужны ли примеры изменения шаблонов дизайна? Непонятно, как работает роутинг?

Пожалуйста, расскажите, что лично вы хотели бы видеть в документации. Принимаем любые пожелания!

27 комментариев

Сегодня большое обновление фреймворка и почти всех приложений!
Версия фреймворка 1.0.10 — контрольное обновление перед выходом фреймворка из статуса альфа-версии.

Приложение «Сайт»: версия 2.0

Большая часть приложения «Сайт» была переработана, и теперь новый «Сайт» может конкурировать со всеми полнофункциональными CMS-системами. Новые функции «Сайта» 2.0:


  • Иерархия страниц и улучшенная схема управления страницами. Теперь страница может быть прикреплена только к одному поселению, что исключает возможность дублирования контента и упрощает публикацию новых страниц на сайте.
  • Новый раздел «Темы дизайна», из которого можно одним кликом устанавливать темы оформления для разных приложений («Сайт», «Блог», «Фото» и других).
  • Связанные темы оформления: любой теме дизайна можно установить родительскую тему, из которой данная тема сможет подключать CSS-файлы, шаблоны и изображения. Это позволяет создавать универсальные темы дизайна (семейства тем), которые будут подходить многим приложением: для сайта, блога, фотогалереи, интернет-магазина и пр., не задавая при этом жестких рамок для дизайнеров при разработке тем.
  • Темы дизайна CUSTOM: пример универсальной темы дизайна. Для бесплатной загрузки доступны темы CUSTOM для приложений «Сайт», «Блог» и «Фото». Тема для приложения «Сайт» является основной темой этого семейства и предоставляет единый набор CSS-стилей и общий макет index.html, внутрь которого вписывается контент других приложений (content.html). Темы CUSTOM для «Блога» и «Фото» используют тему CUSTOM для «Сайта» в качестве родительской темы.
  • Обновленные блоки (общие блоки). Теперь блоки представляют собой полноценный инструмент интеграции фронтендов приложений друг с другом. Например, приложение «Блог» предоставляет блоки, которые выводят последние посты и комментарии из блога. Такой блок можно редактировать (Smarty!), разместить в любом шаблоне дизайна или на любой странице сайта. Еще пример: приложение «Сайт» предоставляет блок с формой отправки запроса. Этот блок можно встроить также на любую страницу сайта или даже в отдельную запись блога.
  • Поддержка регистрации пользователей приложением «Сайт» (ранее это поддерживали только приложения «Блог» и «Фото»).
  • Улучшенный интерфейс всего приложения, новые возможности настройки: адаптеров авторизации, ввода единого для сайта идентификатора Google Analytics, общего JS-кода, обновленное управление роутингом, возможность изменения фона для каждого сайта, что очень удобно при работы с несколькими сайтами в одной установке.

Дизайн-редактор

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


То же самое с информационными страницами — они прикрепляются к каждому конкретному приложению и редактируются внутри этих приложений. В каждом приложении теперь поддерживается иерархия страниц.


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

Другие изменения

Их тоже немало:

— Обновления в системной части фреймворке (в ядре), связанные с переборкой приложения «Сайт» и вынесением общего функционала на уровень системы.
— Визуальные улучшения в большинстве Вебасист-приложений: «Контактах», «Стикерах», «Списках дел», «Фото», «Блоге» и пр. Обновленные иконки.
— Для «Блога» и «Фото» разработаны мобильные версии бекенда, позволяющие следить за последними записями в блоге, последними загруженными фотографиями, загружать фотографии непосредственно с мобильного устройства. Мобильная версия адаптирована и протестирована на устройствах на основе iOS и Android.

Что дальше

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

Далее мы сосредоточимся на подготовке к выпуску новой версии Shop-Script (ожидается в конце этого года) и обновленной качественной документации по фреймворку. Все дальнейшие обновления фреймворка и приложений будут сопровождаться ченджлогами (подробным списком изменений), которые можно будет просматривать при установке обновлений непосредственно в Инсталлере.

6 комментариев

В текущий состав фреймворка Вебасист входят три версии jQuery: 1.4.2, 1.5.2 и 1.7.1 (JS-файлы находятся в папке wa-content/js/jquery/).

В течение нескольких следующих обновлений фреймворка мы планируем удалить из базового состава версии jQuery 1.4.2 и 1.5.2 и оставить только 1.7.1. Это будет сделано в течение сентября 2012. Если вы используете в вашем приложении jQuery одной из версией, которые будут удалены, пожалуйста, обратите на это внимание.

19 комментариев

Встречайте приложение «Фото»!
http://www.webasyst.com/ru/apps/photos/

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

Разработка «Фото» длилась несколько месяцев. В течение этого времени во фреймворк были внедрены разные полезные механизмы, например, работа с изображениями (класс waImage), а в самом приложении «Фото» реализовано множество интересных и крайне полезных для фотогалереи функций:
— организация фотографий по обычным (наборным) и «умным» (динамическим) альбомам,
— фотопоток без обязательной привязки фотографий к альбомом,
— иерархическое дерево альбомов,
— быстрая фильтрация фотографий по разным критериям, например, по тегам и оценкам,
— публикация фотографий и альбомов во фронтенде,
— группировка фотографий в стеки,
— экспорт фотографий в виде прямой ссылки или HTML,
— приватные фотографии, доступ к которым имеют только авторизованные пользователи бекенда,
— массовая загрузка фотографий, в том числе драг-н-дропом прямо в браузер,
— плагиновая структура, позволяющая очень гибко расширять функционал приложения,
— интеграция с приложением «Блог» (на основе связки приложений «Фото» и «Блог» очень удобно вести фотоблог!)

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

Для приложения также доступны четыре плагина (как и само приложение, плагины бесплатные и устанавливаются через Инсталлер):

Будем рады услышать ваше мнение о приложении, замечания и пожелания.

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

19 комментариев

Опубликована документация по тому, как внедрить возможность регистрации и авторизации пользователей во фронтенде вашего приложения: http://www.webasyst.com/ru/framework/docs/dev/auth-frontend/

В качестве примера мы сделали простое приложение «Гостевая книга 2», в котором реализовали описанный механизм. Рекомендуем установить и посмотреть. Помимо «Гостевой книги 2» (в данный момент) авторизация пользователей поддерживается приложением «Блог».

14 комментариев

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

Регистрация и вход для пользователей на сайте включается в приложении «Сайт» в настройках сайта:

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

Зарегистрироваться можно и через внешние сервисы. Во фреймворке реализованы адаптеры авторизации для Фейсбука, Твиттера, Вконтакта и Гугла.

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

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

Важная информация для пользователей приложения «Блог»

Если вы не редактировали шаблоны дизайна блога, то есть фронтенд блога работает на основе оригинала темы дизайна из wa-apps/blog/themes/default, тогда ничего делать не надо — обновление само заменит оригиналы шаблонов дизайна, и блог будет продолжать работать.

Если же вы редактировали шаблоны дизайна блога с помощью приложения «Сайт», то ваша измененная копия темы была сохранена в wa-data/public/blog/themes/default/. При обновлении «Блога» ваши изменения не будут затронуты, поэтому может потребоваться выполнить некоторые изменения в шаблонах дизайна вручную. Пожалуйста, внимательно посмотрите, все ли продолжает работать во фронтенде блога, и если что-то вдруг перестало работать, замените в шаблонах дизайна старые переменные на новые, как описано ниже.

Во-первых, если вы хотите включить авторизацию во фронтенде блога, то после установки обновления нужно скопировать новые файлы темы дизайна signup.html, login.html, forgotpassword.html из папки с оригиналом темы wa-apps/blog/themes/default в папку с вашими файлами wa-data/public/blog/themes/default/. Скопировать можно либо по FTP (с последующей установкой прав на запись для этих файлов), либо создав в вашей теме дизайна в приложении «Сайт» шаблоны с вышеуказанными названиями файлов и содержимым, как в оригинальных файлах.

В CSS-файл вашей темы скопируйте набор классов из секции «Sign up & Login forms» оригинального default.css.

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

$is_concrete_blog — рекомендуется заменить на условие $wa->param('blog_url')?true:false
$layout_type — рекомендуется использовать пару переменных $is_lazy_loading и $page (см. оригинал темы default
$post.comment_str_translate - вместо этого необходимо использовать целую конструкцию. В потоке:

{if !empty($post.comment_count)}
    {_w('%d comment','%d comments',$post.comment_count)}
{else}
    нет комментариев
{/if}

В отдельном посте:

<h3 class="comment-count" {if $post.comment_count == 0}style="display: none;"{/if}>
    {_w('%d comment','%d comments',$post.comment_count)}
</h3>

Так же требуется отдельно добавить подключение jQuery в явном виде в шаблоне index.html перед всеми остальными JS-скриптами:

<script type="text/javascript" src="{$wa_url}wa-content/js/jquery/jquery-1.7.1.min.js"></script>

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

Если у вас есть вопросы, пожалуйста, задавайте их в комментариях.

UPD: Дополнение по поводу шаблона comments.html и адаптеров авторизации. Изменилось перечисление адаптеров авторизации:

— вместо {foreach $auth_adapters as $name => $adapter} теперь используется {foreach $auth_adapters as $adapter}
— {$name} заменяется на {$adapter->getId()}
— вместо {$adapter.photo_url_20|default:$adapter.photo_url|default:"`$wa_url`wa-content/img/userpic20.jpg"} используется {$adapter->getIcon()}
— вместо {$adapter.name} используется {$adapter->getName()}
— ссылку <a href="#" onclick="return $.blog.oauth('{$name}');"><img src="{$adapter.photo_url_20|default:$adapter.photo_url}" alt="">{$adapter.name}</a> нужно заменить на такую:
<a href="{$adapter->getCallbackUrl(0)}&app=blog"><img src="{$adapter->getIcon()}" alt="">{$adapter->getName()}</a>

Так же обновился JS-скрипт в этом шаблоне:

<script type="text/javascript">
$(document).ready(function() {
    $("#user-auth-provider a").click(function () {
        var left = (screen.width-600)/2;
        var top = (screen.height-400)/2;
        window.open($(this).attr('href'){if !$request_authorization} + "&guest=1"{/if},'oauth', "width=600,height=400,left="+left+",top="+top+",status=no,toolbar=no,menubar=no");
        return false;
    })
});
</script>

9 комментариев

Мы готовим к выпуску еще одно очень интересное приложение на основе фреймворка — приложение «Фото». Приложение позволит создать свою онлайн-фотогалерею, публиковать фотографии на сайте, в блог-постах приложения «Блог» и на страницах приложения «Сайт».

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

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

7 комментариев

Разработка (Developer) — приложение для разработчиков приложений: http://www.webasyst.com/ru/apps/developer/

Приложение является хорошим помощником при разработке приложений на основе фреймворка Вебасист: предоставляет «песочницу» для выполнения произвольного PHP/Smarty-кода в окружении фреймворка, включает в себя документацию по основным CSS-классам для построения интерфейса приложения и список всех доступных иконок .icon16 и .icon10.

В связи с тем, что приложение позволяет выполнить произвольный PHP-код, а значит получить доступ к любым данным фреймворка, его нельзя установить через «Инсталлер». Установить можно только вручную, скачав архив с сайта фреймворка и скопировав файлы приложения в папку wa-apps/ установки Вебасиста. Приложение «Разработчик» — для установки и использования на локальном компьютере или сервере, на котором ведется разработка. Оно не предназначено для работы на хостинге и в рабочей установке с реальными данными!

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

Идея и реализация приложения: Леонид Вакуленко