Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extensionchaykaborya
Доклад с 4front meetup #8.
Видео здесь: https://youtu.be/-i9nNmCCFpA
В докладе речь идет о том как портировать Chrome Extension в Firefox Extension или сразу написать кросс-браузерное расширение с нуля.
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extensionchaykaborya
Доклад с 4front meetup #8.
Видео здесь: https://youtu.be/-i9nNmCCFpA
В докладе речь идет о том как портировать Chrome Extension в Firefox Extension или сразу написать кросс-браузерное расширение с нуля.
Planning SharePoint 2010 Backup and Recovery (Russian)Ilia Sotnikov
My session about where to start with planning for SharePoint 2010 backup and recovery from SharePoint Conference Russia 2011.
The slides are in Russian.
http://rusug.net/spconf
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...AvitoTech
икита расскажет о возможностях backend as a service, ответит на вопрос есть ли жизнь после Parse, поделится опытом разработки BaaS Scorocode, особенностями архитектуры и кейсами применения, как можно ускорить разработку с помощью BaaS.
Вадим Дробинин. Защищаем себя и пользователей: руководство по безопасностиAvitoTech
Докладчик поднимет важную тему защиты пользовательских данных и непосредственно ресурсов приложений от внешних угроз, расскажет об основных проблемах, с которыми сталкиваются разработчики, обеспокоенные безопасностью своих приложений и покажет наиболее успешные способы защиты от атак на Swift
Андрей Юткин. Media Picker — to infinity and beyondAvitoTech
Paparazzo - https://github.com/avito-tech/Paparazzo
В своём докладе Андрей поделится опытом разработки собственной камеры и галереи в приложении Avito и расскажет про проблемы, с которыми столкнулся в процессе. Из доклада вы узнаете:
- как реализовать вывод изображения с камеры в нескольких view одновременно
- как оптимизировать работу с памятью при работе с картинками
- как абстрагироваться от источника картинки
- как обработать изображения с помощью фрэймворка ImageIO
- как абстрагироваться от UIKit в слое Presenter архитектуры VIPER
- как работать с изображениями из iCloud и про другие скользкие моменты фрэймворка Photos.
Презентация Алексндра Тороша на PHP Frameworkds Day 2014 о фреймворке Phalcon и последних событиях с ним связанных за последний год. Релиз Yona CMS - системы управления контентом на Phalcon с модульной структурой
Planning SharePoint 2010 Backup and Recovery (Russian)Ilia Sotnikov
My session about where to start with planning for SharePoint 2010 backup and recovery from SharePoint Conference Russia 2011.
The slides are in Russian.
http://rusug.net/spconf
Кортунов Никита. Как ускорить разработку приложений или есть ли жизнь после P...AvitoTech
икита расскажет о возможностях backend as a service, ответит на вопрос есть ли жизнь после Parse, поделится опытом разработки BaaS Scorocode, особенностями архитектуры и кейсами применения, как можно ускорить разработку с помощью BaaS.
Вадим Дробинин. Защищаем себя и пользователей: руководство по безопасностиAvitoTech
Докладчик поднимет важную тему защиты пользовательских данных и непосредственно ресурсов приложений от внешних угроз, расскажет об основных проблемах, с которыми сталкиваются разработчики, обеспокоенные безопасностью своих приложений и покажет наиболее успешные способы защиты от атак на Swift
Андрей Юткин. Media Picker — to infinity and beyondAvitoTech
Paparazzo - https://github.com/avito-tech/Paparazzo
В своём докладе Андрей поделится опытом разработки собственной камеры и галереи в приложении Avito и расскажет про проблемы, с которыми столкнулся в процессе. Из доклада вы узнаете:
- как реализовать вывод изображения с камеры в нескольких view одновременно
- как оптимизировать работу с памятью при работе с картинками
- как абстрагироваться от источника картинки
- как обработать изображения с помощью фрэймворка ImageIO
- как абстрагироваться от UIKit в слое Presenter архитектуры VIPER
- как работать с изображениями из iCloud и про другие скользкие моменты фрэймворка Photos.
Презентация Алексндра Тороша на PHP Frameworkds Day 2014 о фреймворке Phalcon и последних событиях с ним связанных за последний год. Релиз Yona CMS - системы управления контентом на Phalcon с модульной структурой
Основные аспекты управления веб-проектом в Microsoft Azure WebsitesArtur Baranok
Основные аспекты управления веб-проектом в Microsoft Azure Websites. Cоздание сайта из коллекции веб-приложений, выбор СУБД, средства развертывания, сервис Kudu, привязка собственного домена, использование HTTPS. Артур Баранок, Azure MVP
2. 1.Введение
FFCMS - быстрая, расширяемая система управления содержимым
сайта. Система написана на php и использует mysql в качестве хранилища
данных.
FFCMS предназначена для упрощения разработки и наполнения
ваших веб-сайтов: с помощью системы могут быть реализованы как
простые сайты-визитки так и сложные интернет-порталы.
К основным достоинствам системы можно отнести:
● Быстрота и удобство работы
● Минимальное потребление ресурсов
● Поддержка расширенной мультиязычности
● Возможность расширения функциональных особенностей с помощью
расширений для системы.
3. 2.Интерфейсы системы
2.1. Интерфейс пользователя
Данный интерфейс является
реализацией взаимодействия
сайта с пользователем.
Именно данный интерфейс
увидят пользователи, которые
посетят ваш сайт. Интерфейс
пользователя является одним из
основных типов интерфейса.
Системное название
интерфейса пользователя - front.
PIC 1. Интерфейс пользователя
4. 2.Интерфейсы системы
2.2. Интерфейс установщика
Данный интерфейс является
системным интерфейсом
установщика системы FFCMS - он
позволяет устанавливать и
обновлять систему вашего сайта.
Данный интерфейс
предназначен для администрации
и технического персонала, которые
управляют веб-сайтом и следят за
его техническим состоянием.
Системное имя интерфейса - install
PIC 2. Интерфейс установщика
5. 2.Интерфейсы системы
2.3. Интерфейс администратора
Данный интерфейс является
основным для администратора или
модератора сайта и позволяет
управлять содержимым сайта и его
настройками.
Интерфейс
администратора позволяет
редактировать содержимое,
отображаемое в интерфейсе
пользователя.
Системное название
данного интерфейса - back.
PIC 3. Интерфейс администратора
6. 2.4. API интерфейс
Данный интерфейс является
техническим, не видимым для
пользователя или администратора и
позволяет реализовывать
различные модели взаимодействия
по принципу REST API, в частности -
AJAX взаимодействие и
взаимодействие с удаленными
сервисами.
Интерфейс поддерживает
взаимодействие 2х направлений -
front и back(в зависимости от
взаимодействующего интерфейса).
PIC 4. API интерфейс
2.Интерфейсы системы
7. 3.Управление сайтом
Управлять содержимым вашего сайта вы можете с помощью
интерфейса администратора (см. п. 2.3).
После установки системы FFCMS на ваш сайт - авторизуйтесь и
перейдите в админ панель:
На главной странице админ панели вы увидите общую информацию о
состоянии вашего сайта и системы в целом.
8. Так же вам будет доступно 2 административных меню:
Данное меню позволяет управлять функциями быстрого доступа, просмотра
сайта и выхода из административной панели.
Данное меню является основным и позволяет управлять
системой и ее расширениями. Краткая характеристика:
1. Система: настройки, файлы, дампы, антивирус, обновления
2. Модули: управление модулями системы
3. Компоненты: управление компонентами системы
4. Хуки: управление хуками системы
Все функциональные особенности системы FFCMS предоставлены
в виде расширений - компонентов, модулей, хуков а так же
вспомогательных apicallback и crontask.
В совокупности они реализуют функции статических страниц,
новостей, обратной связи и другие возможности.
3. Управление сайтом
9. Системные настройки в административной панели сгруппированы по типу их
принадлежности к тем или иным настройкам:
3. Управление сайтом
➔ Основные: адрес сайта, шаблон, язык,
время, ЧПУ, мултиязычность, отладка
➔ SEO: заголовок, описания, ключевые слова
для главной страницы сайта
➔ Токены и кэш: время файлового
кэширования, время длительности сессии
➔ Файлы: допустимые форматы, размер,
размеры для изображений
➔ Почта: настройки отправки почты, smtp
➔ База данных: подключение к базе данных -
host, user, password, database, prefix
➔ API: в данный момент только ключ для
сервиса yandex.translate API
10. С помощью файлового менеджера вы можете управлять всеми файлами,
которые были загружены на ваш сайт:
В качестве файлового менеджера используется СПО elFinder, который в графическом режиме
позволяет удобно управлять вашими файлами - создавать, копировать, удалять или перемещать
между директориями, а так же управлять директориями сайта - создавать, копировать,
переименовывать и перемещать.
Работа с файловым менеджером возможна при условии наличия прав записи на /upload/.
3. Управление сайтом
11. Системный антивирус позволяет проверить директорию сайта на наличие
подозрительных объектов в системе, которые могут угрожать безопасности.
Однако следует помнить - что антивирус лишь проверяет соответствие хэш-сумм файлов
оригинальному образу и наличие в них потенциально небезопасных функций: shell_exec, exec, eval,
passthru, system, popen & curl_exec.
Однако вы всего можете добавить файлы или
директории в исключения антивируса.
3. Управление сайтом
12. С помощью функции “Резервирование” вы всегда сможете сделать резервную
копию файлов и базы данных вашего сайта.
Всего лишь одним нажатием на кнопку для вас будет создана резервная копия всех файлов и базы
данных вашего сайта, после чего резервная копия будет сохранена в директорию /backup/ с
указателем даты созданной копии.
Мы рекомендуем вам делать резервные копии вашего проекта не реже раза в неделю и загружать
на ваш компьютер.
3. Управление сайтом
13. С помощи функции “Обновления” вы можете следить за актуальностью версии
FFCMS на вашем сайте а так же за актуальностью установленных расширений.
При выходе новых версий системы вы всегда сможете обновить ваш сайт при помощи удаленной
загрузки обновленного дистрибутива. Вы так же сможете обновлять расширения от сторонних
разработчиков, в случае если данные расширения будут поддерживать алгоритм обновления,
предусмотренный в системе FFCMS.
Вы как и ранее сможете обновлять систему и загрузкой нового дистрибутива поверх, если вдруг
автоматическое обновление будет неудачным.
3. Управление сайтом
14. При помощи меню “Модули”, “Компоненты”, “Хуки” вы можете управлять
расширениями на вашем сайте.
При помощи данных функций вы можете управлять расширениями - просматривать их возможности,
функции управления, включать, отключать и устанавливать новые расширения в системе.
Интерфейс управления каждым расширением реализует его разработчик, поэтому некоторые
расширения могут не обладать таковыми функциями.
3. Управление сайтом
15. 4.Расширения системы
В системе FFCMS предусмотрено 5 типов расширений:
➢ Компоненты - генерация содержимого сайта в зависимости от
внутреннего URI запроса.
➢ Модули - работа с шаблонными позициями
➢ Хуки - реализация методов взаимодействия между расширениями
системы, сторонним кодом и сервисами.
➢ ApiCallback - реализация простых REST API для взаимодействия
внутри и вне системы.
➢ Cron - реализация дополнений к расширениям, которые позволяют
выполнять задания по расписанию (Cron task).
16. Основные различия между модулями и компонентами в системе FFCMS продемонстрированы на
изображении ниже:
В данном случае при обращении по URI
/feedback/ был вызван компонент
feedback(обратная связь), содержимое
которого расположено в блоке
{{ content.body }}.
Но на данной странице так же работает
и модуль - tag_cloud(облако тегов) -
который контролирует шаблонную
позицию, если его работа не исключена
на данном URI.
Таким образом на странице может быть
сколько угодно модулей и лишь один
компонент, контролирующий ту или
иную позицию, чаще всего - {{
content.body }}.
Важно запомнить - что системный роутер инициирует вызов компонента в зависимости от заданного URI, а модуль
вызывается повсеместно(или по правилу роутинга для модуля).
В данном случае системный роутер обратился к классу com_feedback_front (com_feedback_front::getInstance()->make())
при обработке URI страницы.
4. Расширения системы
17. В свою очередь в отличии от модулей и компонентов системные хуки не имеют явного метода вызова
- они лишь реализуют возможности взаимодействия. Наглядным примером такого взаимодействия
есть вызов хука “captcha” для отображения защитного изображения и валидации введенных данных.
Это локальный пример для ранее рассмотренного компонента “feedback” - компонент
взаимодействует с хуком “captcha” для отображения защитного изображения(->show()) и проверки
валидности ответа пользователя(->validate(response)).
4. Расширения системы
18. Как мы уже ранее говорили ApiCallback позволяют создавать подобия REST API взаимодействия без
использования представлений(шаблонов html разметки, в данном случае). Apicallback расширение
реализует отображение данных по своему усмотрению, без использования стандартного
шаблонизатора и синтаксиса TWIG.
Ярким примером взаимодействия с ApiCallback является добавление комментария на сайте - по логике AJAX идет
отправка текста на Apicallback взаимодействия и возвращается результат обработки - текст добавленного
комментария.
4. Расширения системы
19. В свою очередь “cron” расширения могут выступать в качестве дополнений к модулям, компонентам
или хукам и выполнять особенности “тяжелых” запросов удаленного или локального взаимодействия.
Все cron запросы инициируются любым пользователем сайта, который загружает те или иные
страницы сайта.
При загрузке каждой странице выполняется “звонок” по средствам фонового GET запроса на инициализирующий
алгоритм Cron расширений, который выполняет необходимые задания, в случае если время их повторения истекло.
Таким образом мы “убиваем” сразу 2 зайца:
● Нет необходимости добавлять cron-задачу в вашу операционную систему
● Сайт, который не посещают пользователи не нуждается в обновлении данных в текущий момент и ресурсы
4. Расширения системы
системы не будут израсходованы напрасно
Вы конечно можете добавить вызов /api.php?cron=1 в системный вызов cron-задач (путем wget) однако для этого нет
крайней необходимости.
Cron расширения рекомендуется реализовывать для долгих по времени выполнения алгоритмов - к примеру, загрузке
или взаимодействия с удаленными хранилищами данных, обновление которых не обязательно в режиме реального
времени.
20. 5.Заключение
Если вас заинтересовала информация о системе мы рекомендуем вам
ознакомиться со следующими материалами:
1. Официальный сайт
2. Документация
3. Форум поддержки
4. Каталог расширений
Благодарю вас за внимание!
11.10.2014 Пятинский Михаил, zenn1989@gmail.com