A presentation about the Moodle E Learning Platform of the project "Key To Nature", installed on a server of the company BIKAM Ltd., Bulgaria. In Bulgarian language.
Links:
http://k2n.bikam.com/moodle-new
http://k2n.bikam.com
http://http://www.keytonature.eu/wiki/Bulgaria
Тезисы:
1. Как работать с большим количеством запросов
2. Ловим тренд: событийный и ситуационный спрос на новостных и UGC сайтах
3. Анализ трафика, бренда, индексации и т.д.
4. От точечных к массовым действиям
Видео https://youtu.be/HK1U5BKtNwY
Создать интерактивный терминал просто, используя в качестве языка программирования - Perl, база данных - XML и клиентское приложение - Firefox. Преимущества и недостатки такого подхода.
A presentation about the Moodle E Learning Platform of the project "Key To Nature", installed on a server of the company BIKAM Ltd., Bulgaria. In Bulgarian language.
Links:
http://k2n.bikam.com/moodle-new
http://k2n.bikam.com
http://http://www.keytonature.eu/wiki/Bulgaria
Тезисы:
1. Как работать с большим количеством запросов
2. Ловим тренд: событийный и ситуационный спрос на новостных и UGC сайтах
3. Анализ трафика, бренда, индексации и т.д.
4. От точечных к массовым действиям
Видео https://youtu.be/HK1U5BKtNwY
Создать интерактивный терминал просто, используя в качестве языка программирования - Perl, база данных - XML и клиентское приложение - Firefox. Преимущества и недостатки такого подхода.
This document is a presentation in Russian on Drupal given at Drupal Camp Kyiv 2009. It discusses what Drupal is, highlights that it is the most active and collaborative CMS, explores modules, themes, and other features. It notes challenges like the learning curve and need for alternative administration interfaces. Tips are provided on how to better solve problems like using installation profiles, sample code, and command line tools like Drush. The presentation encourages attendees to embrace Drupal and contact the speaker for free resources.
The document discusses creating a gallery API for Drupal. It analyzes existing gallery modules, identifies problems with current approaches, and proposes a new gallery API solution with reusable methods for retrieving data and displaying images across modules.
This document summarizes some of the key differences in Drupal 7 development compared to earlier versions, including changes to hook functions, the introduction of a registry database, moving to object-oriented database queries using PDO, and recommendations for best practices when working with the database and documentation.
Drupal can be used on the .NET framework by leveraging tools like Phalanger, which allows PHP code to run on .NET. Phalanger has issues being outdated, buggy, and lacking features. However, Drupal could potentially become fully integrated as a .NET citizen if these issues were addressed. The document discusses .NET technologies and frameworks and how they relate to using Drupal within .NET applications and environments.
The document discusses the theming of a website using a Zen-based theme. It includes the CSS stylesheet definitions and HTML markup for elements like the header, navigation menu, main content area, and footer. Code snippets show how to output dynamic content and links.
1. Слайд.
Добрый день, меня зовут Роман Архаров, в этом докладе я расскажу о том, как
разработать модуль для Друпала, на примере разработки плагина к модулю ССК.
Доклад будет разбит на три части: сначала я расскажу об основнах модульной
системы Друпала, потом в двух словах расскажу о структуре модуля ССК и в конце
Слайд.
Друпал построен по модульному принципу: ядро — компактный набор служебных
функций для работы с БД, документами, пользователями и их правами доступа, и
расширяется функциональность Друпала при помощи модулей. Система модулей в
Друпале базируется на понятии "хук". Слайд. Хуки — это особым образом
именованные функции, которые вызываются ядром Друпала при возникновении
тех или иных событий. Каждый модуль имеет системное имя, которое должно
состоять из латинских букв, цифр, знаков подчеркивания и должно начинаться с
буквы. Имя каждого хука состоит из двух частей: имени модуля и названия
события. При возникновении любого события ядро Друпала в каждом из
установленных модулей ищет и выполняет реализацию соответствующего хука, то
есть функцию с именем навзвние_модуля_название_события. Например, при
возникновении событий связанных с учетной записью пользователя (регистрация,
авторизация, изменение роли пользователя и тому подобных) ядро Друпала
выполняет все функции реализующие хук hook_user, по этому, для того чтобы
модуль с именем example мог среагировать на это событие в нем необходимо
объявить функцию с именем example_user. Список передаваемых в эту функцию
аргументов и пример ее использования, а также информацию обо всех функциях и
хуках доступных в Друпале можно найти на странице официальной документации
http://api.drupal.org или на её русской версии: http://api.drupal.ru.
Все модули Друпала можно разделить на три группы:
• Модули ядра (core), являющиеся основой системы.
• Contributed modules — модули разработанные сообществом Друпал и
распространяемые по лицензии GNU GPL.
• Custom modules — модули разрабатываемые под конкретный проект.
Слайд.
Для программиста Друпал представляет мощный API, решающий большое
количество стандартных задач. АПИ разделен на несколько крупных блоков:
• Schema API — интерфейс абстракции от базы данных. Набор функций для
2. создания, изменения, удаления таблиц, полей и индексов (то есть только
запросы типа CREATE и ALTER TABLE, никаких инсертов и делитов).
Благодаря Схема АПИ программисту не нужно задумывться о том, как
составить запрос к той или иной базе. Программисту вообще не нужно
задумываться о том, с какой базой данных в данный момент работает
Друпал, ему достаточно сформировать массив специального вида, передать
его функциям из Схема АПИ и те сами преобразуют его в запрос к нужно
БД.
• Database API — набор функций, также как и в случае со Схема АПИ,
позволяющий обращаться к базе данных не задумываясь о том, с какой
базой Друпал работает в данный момент. Выборка данных, автоматическое
разбиение на страницы и т.д.
• Localization API — инструменты для создания многоязычных сайтов.
• Node API — Набор функций для определения собственных типов контента.
• Forms API — инструмент для разработки форм. Форма в Друпале
представляет из себя массив, в котором определены тип поля, его параметры
и функции темизации. Любой программист в своем модуле может изменить
любую форму, например, изменить внешний вид поля, удалить его или
добавить свои поля, функции валидации (проверки введенных данных) и т.д.
Кроме того через специальный хук hook_element программист может
объявить новые типы полей, которые в будущем могут использоваться
другими программистами в своих формах. Дальше я буду рассказывать о
разработке плагина для модуля ССК и мы как раз будем создавать поле
нового типа при помощи этого хука.
• Cache API
• Contributed API — кроме программных интерфесов, которые разработали
создатели Друпал, также есть несколько интерфейсов от сторонних
разработчиков. Разработчики модулей Views, CCK, Panels и некоторых
других предоставляют интерфейсы для работы со своими модулями,
причем эти модули настолько удобны и востребованы, что сейчас
невозможно представить Друпал без них.
Слайд.
CCK (Content Construction Kit) — набор инструментов для добавления в
визуальном режиме к существующим типам контента дополнительных полей.
Ядром ССК является модуль Content, реализующий API, с помощью которого
программисты могут разрабатывать свои плагины для этого модуля.
Давайте посмотрим на то как выглядит процесс добавления поля. Тут я на демо-
сайте показываю то как, после того как включен модуль CCK добавить поле к
типу контента, объясняю что такое field и widget. Теперь давайте
3. повнимательнее посмотрим на формы, которые заполняются при добавлении
нового поля. Сначала в первом комбобоксе мы выбираем тип поля (текст, файл,
число), затем мы выбираем то, как это поле будет отображаться в форме
редактирования документа (текстовое поле, комобобокс или чекбоксы) и на
последнем этапе мы определяем то, как введенные данные будут отображаться на
экране при просмотре документа. Эти три формы связаны с тремя понятиями: field,
widget И formatter.
Слайд.
Итак, каждая создаваемая модулем ССК сущность состоит из трех основных
часией:
• поля (field) — это набор служебной информации о создаваемом поле:
колонка или таблица в базе данных, в которой будут храниться вводимые в
поле данные, а также функции валидаторы и сабмиттеры.
• виджета (widget) — интерфейса, который будет выводиться пользователю в
форме создания докумета.
• форматтера (formatter) — набора функций, для вывода данных на экран.
Например, (тут нужно вернуться к демо-сайту) стандартное для модуля CCK
поле Text характеризуется колонкой в базе, виджетами textfield, combobox,
checkbox и форматерром plain text. То есть, фактически, варианты чекбокс,
комбобокс, текстфилд отличаются друг от друга только тем как будет выглядеть
для пользователя форма, в которую вводятся данные, функции проверки введенных
данных и колонка в таблице БД будет одной и той же.
Когда мы разрабатываем свое поле для ССК мы можем сделать всю работу сами, то
есть определить свой филд, свой виджет ти свои форматтеры, но, зачастую, это не
нужно, так как вокруг модуля ССК уже разработано много плагином и зачастую
работа сводится к разработке собственного виджета или форматтера, а филд
берется существующий. Ярким примером может служить модуль ФайлФилд,
который создает поле, с помощью которого можно на сервер закачть файл любого
типа. Кроме того есть модуль ИмаджФилд, который не реализует собственное поле
(field), а только реализует собственные виджеты и форматтеры.
Слайд.
Кажде поле может иметь неограниченное количество виджетов и форматтеров.
Разрабатывая свой плагин для ССК мы можем выполнить всю работу: то есть
разработать свой филд, виджет и форматтер, а можем взять существующий филд и
разработать для него свои виджет и форматтер. Примером такого симбиоза могут
4. служить модули ФайлФилд и ИмаджФилд. Файлфилд реализует инструменты для
закачки файлов на сервер и хранения информации о них в базе данных, а
ИмаджФилд добавляет к этому функционалу дополнительные проверки
закачиваемого файла (разрешение и тип изображения) и выводит в виджете
превьюшку картинки. Точно также, иногда бывает достаточно использовать филд и
виджет реализованные в других модулях и разработать только свой форматтер.
Слайд.
Для примера я покажу как создать простое текстовое поле. Мы здесь проделаем
полные цикл работ: создадам свои поле, видже, форматтер и элемент для Forms
API.
Тут описание каждого хука, которые используются для создания филда, виджета,
элесента и форматтера.