Рубрика "Новости"

Новые федеральные семинары «1С-Битрикс»: эффективное применение веб-технологий для бизнеса

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

Источник: http://www.1c-bitrix.ru/about/life/news/441128/

Обновление WYSIWYG редактора для версии 9.6

Дорогие друзья,

Представляем вам патч для нового WYSIWYG редактора, представленного в версии 9.6. В данном патче исправляются некоторые проблемы, обнаруженные в редакторе, связанные с форматированием текста, исправлены проблемы с удалением части контента при определенном форматировании текста. Обновленная версия редактора не вносит никаких новых функций, и исправляет только различные обнаруженные ранее проблемы. Установка обновленной версии WYSIWYG редактора необходима только пользователям версии DataLife Engine 9.6, и только тем кто использует в своей работе WYSIWYG редактор.

Источник: http://dle-news.ru/bags/1506-obnovlenie-wysiwyg-redaktora-dlya-versii-96.html

Предложения этой недели в каталоге «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/439802/

Сайт Diletant.ru – занимательная история на платформе «1С-Битрикс»

Diletant.ru – это познавательный проект, посвященный истории. Создание современного интерактивного ресурса веб 2.0, посвященного «популярной истории», задумывалось авторами проекта, прежде всего, чтобы привлечь внимание к печатной версии журнала «Дилетант». И чтобы создать на основе сайта сообщество людей, которым интересна мировая история.

Источник: http://www.1c-bitrix.ru/about/life/news/438665/

Новая версия «1С-Битрикс: Управление сайтом 11.5» – CRM в каждом интернет-магазине

В новой версии системы управления веб-проектами «1С-Битрикс: Управление сайтом 11.5» впервые для тиражных CMS интернет-магазин полностью интегрирован с CRM (Customers Relationship Management). Теперь у каждого владельца интернет-магазина на платформе «1С-Битрикс» есть возможность вести единую клиентскую базу, конвертировать каждый заказ в продажу, а также увеличивать объем повторных продаж за счет эффективного учета и анализа информации о клиентах.

Источник: http://www.1c-bitrix.ru/about/life/news/438595/

«Битрикс24» получил награду Cloud Award 2012 в номинации «Облачный старт года»

15 мая 2012 года оргкомитет конференции Cloudconf 2012 объявил победителей в номинациях Cloud Award 2012 – первой профессиональной награды в сфере облачных вычислений компаниям за наибольший вклад в развитие облачных вычислений в России и мире. В номинации «Облачный старт года» победил «облачный» сервис «Битрикс24».

Источник: http://www.1c-bitrix.ru/about/life/news/438389/

DrupalCafé №5 в Харькове – 24.05.2012

Опять четверг, опять кафе.

В четверг, 24 мая, в 19:00, в Харькове пройдет пятое DrupalCafe.
На этот раз мы сменили место проведения, мероприятие пройдет по адресу ул. Маломясницкая, д 9/11, Академия “Шаг”. (станция метро “Проспект Гагарина”).
Карта

Темы докладов:

1. “Знакомство с модулем Views” (Алексей Гайдабура, WDG)
- Архитектура Views.
- Основы работы с Views.
- Для чего нужны CONTEXTUAL FILTERS и RELATIONSHIPS.
- Разное, непонятное.

2. “Form API в Drupal 7. “Вкусности” и “красоты” (Дмитрий Олареско, WDG)
Данная тема познакомит Вас с особенностями Form API в Drupal 7. Расскажет о нововведениях и интересных приемах, которые могут пригодится как начинающему так и опытному программисту.

3. “Секция-Вопросы&Ответы.”
В этот раз третий слот посвящен любым вопросам от посетителей. Вопросы можно прикреплять в комментариях, либо присылать на контактный e-mail.

Участие бесплатное, в программе как обычно, вкусные угощения – кофе, чай, блекджек, cookies.
Желательно предварительная регистрация, всем желающим – отпишите в комментарии или в контакты ниже.
Регистрация по ссылке

По всем вопросам можно обращаться:
+38(099)35-25-316 – Алексей Гайдабура, gaydabura@gmail.com skype: alexey.gaydabura
Спонсор по прежнему – WDG (http://wdg-company.com/)

Attached poll “Как Вы оцените свой уровень знания Drupal?”.
Register or login to poll
Results:
Новичек: 4 голоса
Уверенный пользователь: 6 голосов
Пишу модули: 6 голосов
Гуру: 2 голоса
Ниндзя: 2 голоса

Источник: http://www.drupal.ru/node/81588

«1C-Битрикс: Сайт школы, базовый» – новое готовое решение для образовательных учреждений

Компания «1С-Битрикс» расширяет линейку готовых решений для образования и выводит на рынок новый типовой сайт – «1C-Битрикс: Сайт школы (Базовый)», который включает в себя все основные разделы расширенной версии продукта и является бюджетным решением, что делает создание собственных сайтов для школ еще более доступным.

Источник: http://www.1c-bitrix.ru/about/life/news/437835/

«1C-Битрикс» выпускает новое готовое решение для школ

Компания «1С-Битрикс» расширяет линейку готовых решений для образования и выводит на рынок новый типовой сайт – «1C-Битрикс: Сайт школы (Базовый)», который включает в себя все основные разделы расширенной версии продукта и является бюджетным решением, что делает создание собственных сайтов для школ еще более доступным.

Источник: http://www.1c-bitrix.ru/about/life/news/437835/

Процесс создания темы для D7 адаптируемой к разным разрешениям


На сайте CMS Magazine перевод статьи “Create a responsive Drupal theme” о создании темы оформления для D7 адаптируемой к разным разрешениям экрана. По-моему полезная статья. Отдельное спасибо сотрудникам CMS Magazine за адекватный перевод.

Ссылка на перевод статьи: http://www.cmsmagazine.ru/library/items/cms/create-responsive-drupal-theme/

Источник: http://www.drupal.ru/node/81409

Новинки в каталоге «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/436820/

Третье DrupalCafe в Новосибирске

В Новосибирске планируется третье долгожданное DrupalCafe 26 мая.
Ждем всех желающих!
Можете участвовать в активном обсуждении выступлений и предложений дальнейшего развития Drupal-сообщества, разработок и новостей.
Можете выступить сами со своей темой подготовив презентацию.

Предварительные темы докладов:

1.Павел Прищепа выступит с докладом о DrupalSib at Kharkov Drupal {code} sprint
2.Чингис Санданов расскажет о mongoDB
3.Вадим Валуев выступит с темой “Мой первый проект на Друпал 7.(отличие от Drupal6 по критериям:(Responsive) design with Omega, CSS3 and LessCSS, Entities and Entity API. Media module.)”
4.Михаил Крайнюк расскажет о “Batch. Использование batch для продолжительных операций. Применение его для реализации долгих hook_update()”

Предварительная обязательная регистрация
г.Новосибирск, Академгородок, ул. Инженерная 20, Технопарк, конференцзал на 3 этаже
Начало: 26 мая в 12:00
Окончание:26 мая в 16:00
Помощь в подготовке докладов Роман Чижиков: skype: roman.chizhikov

Организационные вопросы: Павел Прищепа: skype: prischepa.p, Анна Шевцова: skype: anna.newsib
info@drupalsib.ru
тел.офиса (383) 233-27-00
+7-913-395-44-05

Прикрепленный файл Размер drupalcafe3rsrt100h100.jpg 9.04 кб

Attached poll “Пойду на 3-e DrupalCafe”.
Register or login to poll
Results:
да: 1 голос
нет: 5 голосов

Источник: http://www.drupal.ru/node/81167

Перспективы развития рынка готовых веб-приложений: оценка партнеров «1С-Битрикс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/433579/

Drupal Cafe’2012 в Москве. Май, вторая встреча

Итак, настала пора планировать следующее мероприятие.

Ориентировочно пройдет оно в том же помещении, что и первая встреча – антикафе Бабочки.
По датам предварительно ориентируюсь – 16, 17, 23 или 24 мая (дату еще корректирую в зависимости в том числе и от ваших замечаний).
По времени с 19 до 23.

Темы для обсуждения выложу чуть позже, если предложите что-то интересное – велкам!

Источник: http://www.drupal.ru/node/80987

Лаборатория социальных инноваций Cloudwatcher выбрала «1С-Битрикс: Корпоративный портал» для коммуникаций внутри и вовне компании

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

Источник: http://www.1c-bitrix.ru/about/life/news/433340/

Acar – ajax cart for ubercart

http://u6167.moko.vps-private.net

Введение.

Модуль Acar позволяет манипулировать содержимым корзины ubercart. Это всевозможные поля и кнопки, для отображения и изменения параметров, помещенных в корзину продуктов.

Все манипуляции, над содержимым корзины осуществляются мгновенно, согласованно с сервером через AJAX. Без перезагрузки страницы.

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

Acar корзину можно темизировать. Придавая ей, уникальный вид, по всем правилам html. Тем самым реализуя, любые дизайнерские задумки.

Использование.

Для работы модуля Acar, необходим модуль Mvca. Этот модуль является отдельным проектом, и реализует собой MVC паттерн. Скачать оба модуля можно с официального сайта Acar корзины.

Сразу после установки, форма корзины, доступна в двух местах. На своей собственной странице /acar. И на стандартной странице корзины ubercart, в виде дополнительной панели. Настроить панели, можно в настройках ubercart /admin/store/settings/cart/panes. Обе эти формы темизируется шаблоном из файла acar_pane.tpl.php.

Ещё одна форма корзины доступна как блок. Который необходимо предварительно активировать. А темизируется она, шаблоном из файла acar_bloc.tpl.php.

Для добавления продукта в корзину, со страницы продукта, а так же со страницы каталога имеются специальные field и views поля: “Acar – Form add product to cart”. Позволяющие создать форму добавления. Для этих полей в настройках, необходимо самостоятельно указывать используемый файл шаблона. Он может быть любым, но по идеи это должены быть файлы acar_adde.tpl.php для field поля, и acar_view.tpl.php для views поля. Для управления field полями в типе материала необходимо включить модуль Field UI.

Поиск файлов шаблонов, осуществляется в каталоге текущей темы оформления. Если какой либо из них, там отсутствует, то берётся файл шаблона с тем же именем из каталога модуля Acar.

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

Темизация.

Файл шаблона, темизирующий форму корзины или форму добавления, представляет из себя, самый обыкновенный javascript. Где инициализируется ряд переменных, в целом и отвечающих за темизацию.

Это текстовые переменные. А именно, так называемый шаблон список (Lis) и шаблон пункт (Ite). Оба этих шаблона содержат html код, на основе которого и конструируется форма корзины или форма добавления.

Шаблон список (Lis) – это шаблон своего рода ёмкости для продуктов, и необходим исключительно для формы корзины. В то время как шаблон пункт (Ite) – это шаблон отдельного продукта, и применяется как для формы добавления, так и для формы корзины.

При темизации формы корзины, что бы было понятно, в какой именно элемент корзины вставлять продукты, этот самый элемент, в шаблоне список, следует пометить классом $$Par. Однако если требуется вставлять продукты не внутрь элемента, а перед каким либо элементом, то такой элемент следует пометить классом $$Chi.

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

Оформляется подобное внедрение внутри атрибута class, следующим образом:

@fun(arg0,arg1,arg2,...)

В начале, символ ‘@’, далее идентификатор функции, после него, в скобках перечисляются аргументы. Избегайте использования пробелов, вместо них лучше использовать юникод пробел ‘\u0020′.

Например, следующий input элемент, размещённый в шаблоне пункта (Ite), при помощи функции qty, позволит отобразить или изменить количество продукта.

<input class="@qty(true)"/>

Эту функцию, как и любую другую, можно применить к любому элементу, например к div. Количество продукта будет так же отображаться, но изменить его, по понятным причинам уже не получится.

<div class="@qty(true)"></div>

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

Функционал.

Функция tot.

@img(exe) <span></span> Ite

Выводит изображение продукта.

exe – Условие использования*.

Функция tot.

@tit(exe) <a></a> Ite

Отображает название продукта как ссылку.

exe – Условие использования*.

Функция qty.

@qty(exe) <input type="text"/> Ite

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

exe – Условие использования*.

Для формы добавления, эта функции позволяет не просто изменить количество продукта, но и добавить или удалить продукт из корзины.

Функция qtc.

@qtc(exe, qtc) <input type="button"/> Ite

Изменяет количество продукта при щелчке, на определенную величину.

exe – Условие использования*.
qtc – Величина на которую следует менять количество продукта.

Применяется, как правило, к элементу кнопки. Для формы добавления, эта функция не просто изменяет количество, но и когда это имеет смысл, добавляет или удаляет продукт из корзины.

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

Функция pri.

@pri(exe, sig, frm) <input type="text" readonly/> Ite

Отображает стоимость одного экземпляра продукта.

exe – Условие использования*.
sig – Знак валюты*.
frm – Формат числа*.

Функция tot.

@tot(exe, sig, frm) <input type="text" readonly/> Ite

Отображает стоимость количества продукта.

exe – Условие использования*.
sig – Знак валюты*.
frm – Формат числа*.

Функция abs.

@abs(exe, sig, frm) <input type="text" readonly/> Ite Lis

Отображает общую стоимость всего содержимого корзины.

exe – Условие использования*.
sig – Знак валюты*.
frm – Формат числа*.

Функция tra.

@tra(exe, tra) <input type="button"/> Ite

Осуществляет переход при щелчке, на страницу продукта или по указанному адресу.

exe – Условие использования*.
tra – Адрес для перехода.

Функция atr.

@atr(exe, cla, sty) <span></span> Ite

Выводит атрибуты продукта.

exe – Условие использования*.
cla – Класс, определяет способ вывода атрибутов.
sty – Стиль*, применяемый к атрибутам.

Доступно два класса: Acar.Atri.Atri и Acar.Atri.Imge. Класс Acar.Atri.Atri позволяет отображать атрибуты, так же как и в стандартной форме добавления. Класс Acar.Atri.Imge выводит описание значений атрибутов в виде списка.

Стиль применяемый к атрибутам, устанавливает для элементов составляющих атрибуты стиль, класс, или значение атрибутов. Тем самым, позволяя темизировать атрибуты. Для обоих классов имеется соответствующий каждому стандартный стиль.

Стили для класса Acar.Atri.Atri:

Acar.Atri.Atri.Sty.Def – Используется по умолчанию.

Стиль для класса Acar.Atri.Imge:

Acar.Atri.Imge.Sty.Def – Используется по умолчанию.
Acar.Atri.Imge.Sty.Min – Красивый стиль с мелкими буквами.

Функция sty.

@sty(exe, sty) <div></div> Ite

Накладывает на элемент указанный стиль.

exe – Условие использования*.
sty – Стиль* применяемый к элементу.

Функция out.

@out(exe, exp) <span></span> Ite Lis

Выводит результат javascript выражения.

exe – Условие использования*.
exp – Выражение javascript, в виде строки.

Например, можно вывести результат выражения 2*(56*3+5):

<div class="@out(true,\'2*(56*3+5))\'"></div>

Или.

<input class="@out(true,\'2*(56*3+5))\'" type="text"/>

Разумеется, таким образом можно выполнить любой javascript код, вывести значение любой переменной. Так что, эта функция может быть весьма полезна. Не забывайте только что передаваемое выражение обязательно должно быть строкой, а уже в ней собственно javascript.

Продолжение покупок.

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

Acar.Reso.Prm.Csh.Tex

Текст, обозначающий продолжения покупок, по умолчанию “Continue shopping”.

Acar.Reso.Prm.Csh.Url

Адрес страницы, для продолжения покупок.

Для создания ссылки на страницу продолжения покупок, нужно воспользоваться функциями out и sty:

<a class="@out(true,\'Acar.Reso.Prm.Csh.Tex\') @sty(true,{href:Acar.Reso.Prm.Csh.Url})"></a>

Либо не совсем корректным, но надежным способом, “разорвав” шаблон и осуществив конкатенацию:

<a href="'+Acar.Reso.Prm.Csh.Url+'">'+Acar.Reso.Prm.Csh.Tex+'</a>

Для создания кнопки понадобятся функции out и tra:

<input class="@out(true,\'Acar.Reso.Prm.Csh.Tex\') @tra(true,Acar.Reso.Prm.Csh.Url)" type="button"/>

Переменная Acar.Reso.Prm.Csh.Url хранит ссылку, только если ранее продукт был добавлен. Поэтому рекомендуется настроить страницу для продолжения покупок, в настройках ubercart.

*Условие использования.

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

Это либо логическое значение, которое достаточно однозначно говорит, следует ли применять к элементу данную функцию. Либо строка содержащая в себе javascript выражение, из которого доступны следующие переменные булиевого типа:

vie.add – Истинно если это форма добавления.
vie.car – Истинно если это форма корзины.
inc – Подтверждает наличие продукта в корзине.
exc – Подтверждает отсутствие продукта в корзине.
atr – Подтверждает наличие у продукта атрибутов.

Например, имея дело с формой добавления, для того что бы элемент имел различную раскраску в зависимости, от наличия продукта в корзине, можно использовать следующий функционал:

<div class="@sty(\'inc\',\'background:#faa;\') @sty(\'exc\',\'background:#05f;\')">-=DIV=-</div>

*Знак валюты.

Аргумент знак валюты используется в функциях вывода стоимости.

Если это false знак валюты не выводится, если true выводится знак валюты настроенный в ubercart.

Если же, в качестве знака валюты передается массив. То первый аргумент определяет собственно знак валюты в виде строки, а второй аргумент его расположение, в виде логического значения, слева или справа, от цены.

Например, вывод общей стоимости всех продуктов.

Без знака валюты:

<input class="@abs(true,false,false)" readonly/>

Со знаком валюты настроенным в ubercart:

<input class="@abs(true,true,false)" readonly/>

Наш вариант, где знак валюты ‘Руб.’ и расположен он справа от цены:

<input class="@abs(true,[\'Руб.\',true],false)" readonly/>

Если вдруг возникнет необходимость просто вывести сам по себе знак валюты настроенный в ubercart, можно воспользоваться функцией out, и непосредственно переменной хранящей знак Acar.Reso.Prm.Cur.Sig:

<span class="@out(true,\'Acar.Reso.Prm.Cur.Sig\')"></span>

*Формат числа.

Аргумент формат числа, применяется в функциях вывода стоимости чего либо.

Если это false, выводится число как есть, без всякой обработки, если true, используется формат, установленный в настройках ubercart.

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

*Стиль

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

Способы передачи стиля: класс, стиль, атрибуты.

• Класс.

Строка содержащая название класса.

<div class="@sty(true,\'classname\')">...</div>

• Стиль.

Строка содержащая css стиль. Должна обязательно заканчиваться символом ‘;’.

<div class="@sty(true,\'background:#ffaa00;\')">...</div>

• Атрибуты.

Объект, каждое из свойств которого соответствует атрибуту.

<a class="@sty(true,{href:\'http://www.drupal.ru\'}>LINK</a>

Данным способом можно установить любой атрибут элемента. Атрибут передается в виде строки.

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

$Typ – Соответствует атрибуту type.
$Nam – Соответствует атрибуту name.
$Cla – Соответствует атрибуту class (className).
$Sty – Соответствует атрибуту style (style.cssText).

Для применения стиля к дочерним элементам, предназначено свойство $Chi. Представляющие собой массив стилей. Каждый из них применяется, в зависимости от его порядка, с периодичностью по кругу, к соответствующему дочернему элементу.

Благодаря тому что стили применяются с периодичностью по кругу. Дочерние элементы, можно раскрасить разными “цветами”, в зависимости от порядка элемента, например “четный/нечетный”.

<div class="@sty(true,{$Chi:[\'black\',\'white\']})"><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p><p>6</p></div>

Источник: http://www.drupal.ru/node/80901

Проект Knowledge Stream при поддержке компании «1С-Битрикс» организует цикл лекций о социальном интранете

В рамках международного некоммерческого просветительского проекта «Knowledge Stream – Конференция длиною в год» центра Digital October при участии компании «1С-Битрикс» стартует цикл лекций «Рабочее пространство будущего: коллаборативные системы, социальный интранет».

Источник: http://www.1c-bitrix.ru/about/life/news/432807/

Проект Knowledge Stream при поддержке компании «1С-Битрикс» организует цикл лекций «Рабочее пространство будущего: коллаборативные системы, социальный интранет»

В рамках международного некоммерческого просветительского проекта «Knowledge Stream – Конференция длиною в год» центра Digital October при участии компании «1С-Битрикс» стартует цикл лекций «Рабочее пространство будущего: коллаборативные системы, социальный интранет».

Источник: http://www.1c-bitrix.ru/about/life/news/432807/

DataLife Engine v.9.6 Final Release

Дорогие друзья,

Представляем вам новую версию нашего скрипта DataLife Engine v.9.6. В данном релизе вас ожидает новая система загрузки изображений и других файлов, новые улучшенные алгоритмы работы скрипта, направленные на снижение нагрузки, новые возможности по выводу и оформлению новостей, и многое другое, но обо всем подробнее …

Источник: http://dle-news.ru/release/1503-datalife-engine-v96-final-release.html

Модуль – сервис оповещения Яндекса о появлении новых страниц на сайте

27 апреля Яндекс выпустил модуль оповещения себя об обновлении/добавлении новых страниц на сайт:
http://site.yandex.ru/cms-plugins/?from=wmblog
Модуль подходит для всех популярных CMS, в т.ч. и для Drupal 5, 6, 7.

Требует установки яндекс-поиска на сайт и добавления сайта в панель Яндекс.Вебмастер. Вроде-бы штука полезная, но я почему-то не могу отправить запрос, модуль говорит: “Яндекс.ПДС: Невозможно отправить пинг. Причина:Сайт не подтвержден в сервисе Яндекс.Вебмастер для указанного имени пользователя”. Хотя в сервисе Яндекс.Вебмастер всё давно подтверждено.

Через несколько часов модуль заработал, видать, дошло, поиск Яндекса индексирует сразу новый материал. Чуть переделал CSS и получилось прикольно.

Источник: http://www.drupal.ru/node/80814

Пингеры от Яндекса для индексации страниц (офциальные модули)

Яндекс выпустил модули “пингеры” для облегчения индексации страниц.

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

Подробнее по ссылке + документация

Источник: http://www.drupal.ru/node/80761

DataLife Engine v.9.5 (демоверсия)

Уважаемые посетители,

Сегодня состоялся выход бесплатной демонстрационной версии DataLife Engine v.9.5. Вы можете бесплатно скачать новую версию по адресу http://dle-news.ru/demo.html. Напоминаем вам что данный релиз не имеет функциональных ограничений, но содержит следующие ограничения:

1. Закрытый исходный код
2. Максимальное количество новостей – 100
3. Максимальное количество комментариев – 200
4. Отсутствие возможности обновления с предыдущих версий.

Платная версия скрипта, в которой отсутствуют указанные выше ограничения http://dle-news.ru/release/1464-datalife-engine-v95-final-release.html. Приобрести лицензию на скрипт вы можете на нашем сайте. Переход с бесплатной версии на платную без потери данных также возможен без каких либо проблем.

Источник: http://dle-news.ru/release/1502-datalife-engine-v95-demoversiya.html

Обзор популярных веб-приложений для интернет-магазинов в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/431912/

Новые приложения в каталоге «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/432052/

Новая версия «1С-Битрикс: Корпоративный портал 11.5» – Социальный интранет из «коробки»

Компания «1С-Битрикс» выпустила новую версию продукта «1С-Битрикс: Корпоративный портал 11.5», в которой объединены классические рабочие инструменты и социальный формат коммуникаций. Теперь с помощью новой версии продукта можно быстро создать «социальный интранет» в своей компании.

Источник: http://www.1c-bitrix.ru/about/life/news/430668/

Подключение своих шаблонов для страниц 403 и 404

Есть несколько способов создать свои «красивые» страницы для ошибок 403 и 404.
Я расскажу как я это делал через переопределение шаблона.
1. В каталоге текущей темы создаем шаблон для вывода страницы с ошибкой

Я его назвал page–error.tpl.php

Содержимое файла самое простое:

<?php /** * @file * $error_code - Error num (403 or 404) * $error_content - HTML error content */ ?> <div class="page clearfix" id="page-<?php print $error_code;?>"> <div class="content-page-<?php print $error_code;?>"> <h2> <?php print l($site_name, '<front>', array('attributes' => array('title' => t('Home')), 'html' => TRUE)); ?> </h2> <h1><?php print $error_code;?></h1> <?php print render($error_content); ?> </div> </div>

2. В файле template.php создаем (или изменяем) две функции
Имя_Вашей_темы_preprocess_html(&$vars) и Имя_Вашей_темы_preprocess_page(&$vars)
Моя тема называется olkit, соответственно и функции будут:

<?php
function olkit_preprocess_html(&$vars) {
  $header = drupal_get_http_header();
  if (isset($header['status']) && ($header['status']=='403 Forbidden' || $header['status']=='404 Not Found')) {
          $vars['attributes_array']['class'][] = 'page-error';
  }
}
?>

В данной функции я просто добавляю к тэгу body – дополнительный класс page-error, он мне понадобился для дальнейшего оформления страницы посредством CSS, если вам этого не надо, то можно не переопределять данную функцию.

И наконец основная функция, где мы переопределяем шаблон и заполняем необходимые переменные для обработки в шаблоне.

<?php
function olkit_preprocess_page(&$vars) {
    $header = drupal_get_http_header();
    if (isset($header['status']) && $header['status']=='403 Forbidden') {
     $vars['theme_hook_suggestions'][0] = "page__error";
     $vars['error_code'] = 403;
     $error_content = "<h6> У вас нет доступа на страницу, которую вы запросили.";
     $error_content .= "Возможно, вы ошиблись при наборе адреса, перешли по неверной ссылке или для доступа к данной странице необходимо зарегистрироваться.</h6>";
     $error_content .= "<ul><li>проверьте правильность написания адреса</li>";
     $error_content .= "<li>воспользуйтесь главной страницей ";
     $error_content .= l('Отель «У старого программиста»', '<front>', array('attributes' => array('title' => t('Home')), 'html' => TRUE));
     $error_content .= "</li><li>Зарегистрируйтесь на нашем сайте ";
     $error_content .= l('Войти', 'user/login', array('attributes' => array('title' => t('Login')), 'html' => TRUE));
     $error_content .= " | ";
     $error_content .= l('Зарегистрироваться', 'user/register', array('attributes' => array('title' => t('Login')), 'html' => TRUE));
     $error_content .= "</li></ul>";
     $vars['error_content'] = $error_content;
    }
    if (isset($header['status']) && $header['status']=='404 Not Found') {
     $vars['theme_hook_suggestions'][0] = "page__error";
     $vars['error_code'] = 404;
     $error_content = "<h6> Страница, которую вы запросили, отсутствует на нашем сайте.";
     $error_content .= "Возможно, вы ошиблись при наборе адреса или перешли по неверной ссылке.</h6>";
     $error_content .= "<ul><li>проверьте правильность написания адреса</li>";
     $error_content .= "<li>воспользуйтесь главной страницей ";
     $error_content .= l('Отель «У старого программиста»', '<front>', array('attributes' => array('title' => t('Home')), 'html' => TRUE));
     $error_content .= "</li></ul>";
     $vars['error_content'] = $error_content;
    }
}
?>

«Важный момент:»
строка $vars['theme_hook_suggestions'][0] = “page__error”;
определяет какой файл будет применен в качестве шаблона страницы, при этом имя файл шаблона строиться следующим образом, в значении page__error – подчеркивания заменяются на дифисы и добавляется расширение .tpl.php, таким образом для значения page__error файл должен иметь имя page–error.tpl.php

Далее посредством CSS настраиваем внешний вид страниц.
Вот и все, сбрасываем кэш и смотрим что у нас получилось.

Данный материал это репост с моего блога Подключение своих шаблонов для страниц 403 и 404

Ну и небольшой скриншотик

Источник: http://www.drupal.ru/node/80502

Работа с Facet API и Apache Solr. Часть 3

Привет.

Продолжаю свои заметки про работу с поисковиком Solr. В прошлых постах я писал о том, как добавлять в индекс дополнительные поля, как управлять процессом индексации определенного поля и как научить solr искать в этих полях. Сегодня расскажу о том, как можно договориться с solr’ом о том, что индексировать, а что нет. Оговорюсь, что нижеприведенный способ работает адекватно только начиная с версии apachesolr-1.x-beta19, раньше этого не было. Итак, рассказываю.

На самом деле рассказывать то особо и нечего, всё потрясающе просто. Представим, что по определенным признакам мы не хотим индексировать ноду, для этого у apachesolr есть status callback. В моем случае у типа материалов “публикация” есть чекбокс “Индексируемая”, по умолчанию отмеченный, но если галочку снимут, то публикация не будет ни индексироваться, ни, само собой, выводиться в результатах поиска. Сделано это следующим образом:

<?php
// Для начала мы должны сообщить модулю apachesolr о использовании кастомного коллбэка. Делается это с помощью
// реализации хука <strong>hook_apachesolr_entity_info_alter()</strong>, описанного в файле apachesolr.api.php.
// Таких коллбэков может быть несколько.
function inti_apachesolr_entity_info_alter(&$entity_info) {
  // Способ, как видите, работает не только для нод, а для любых сущностей.
  $entity_info['node']['status callback'][] = 'inti_index_node_status_callback';
}

// Эта функция должна возвращать TRUE, если публикация индексируемая, иначе FALSE.
// Коллбэк по умолчанию проверяет, опубликована ли нода. Учитывая, что коллбэков может быть
// несколько, как я написал выше, здесь мне это проверять нет нужды. 
function inti_index_node_status_callback($entity_id, $entity_type) {
  $node = node_load($entity_id, NULL, TRUE);
  $status = TRUE;
  if (($node->type == 'publication') && !empty($node->field_do_search)) {
    $status = ($node->field_do_search['und'][0]['value']) ? TRUE : FALSE;
  }
  return $status;
}
?>

Вот и всё. Важное примечание: как я понял, после изменения функции, реализующей hook_apachesolr_entity_info_alter(), нужно очистить кэш.

В следующий раз будет пост (тоже небольшой) о том, как научить Apache Solr искать с использованием wildcard(*). Как ни странно, но по умолчанию, поддержки поиска по частям слов нет.

Ссылки:
Часть 1. О добавлении полей в индекс и фасетах.
Часть 2. О подмене коллбэка для индексации определенного полям и о том, как искать по дополнительным полям.
Часть 4. Установка Solr 3.x и поиск с использованием *

Источник: http://www.drupal.ru/node/80497

WordPress 3.3.2 на русском

Доступен WordPress 3.3.2 — обновление безопасности для всех предыдущих версий.

Для повышения безопасности были обновлены три внешние библиотеки, входящие в дистрибутив WordPress:

Plupload (версии 1.5.4), которая используется в WordPress для загрузки файлов. SWFUpload, которая ранее использовалась в WordPress для загрузки файлов и до сих пор может использоваться плагинами. SWFObject, которая ранее использовалась в WordPress для вставки Flash-содержимого и до сих пор может использоваться плагинами и темами.

Благодарим Нила Пула и Нэйтана Партлана за ответственное раскрытие ошибок в Plupload и SWFUpload, а также Шимона Грушецки за сообщение о другой ошибке в SWFUpload.

WordPress 3.3.2 также содержит:

Исправление ограниченного повышения привилегий, позволявшего администратору сайта при определённых обстоятельствах отключить плагины, активированные для всей сети. Уязвимость обнаружили Джон Кейв из команды безопасности WordPress и Адам Бэкстром. Исправление XSS-уязвимости при превращении URL-адресов в ссылки, обнаруженной Джоном Кейвом. Исправление XSS-уязвимостей в перенаправлениях после отправки комментариев в старых браузерах, а также при фильтрации URL-адресов. Спасибо Мауро Джентиле за ответственное раскрытие данных уязвимостей.

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

Скачайте версию 3.3.2 или воспользуйтесь автоматическим обновлением в меню «Консоль» → «Обновления».

Источник: http://ru.wordpress.org/2012/04/wordpress-3-3-2/

Обзор новинок недели каталога «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/428698/

Корпоративный портал для сети супермаркетов «Фуршет» в Украине создан на платформе «1С-Битрикс»

Сотрудники и поставщики первой национальной сети супермаркетов «Фуршет» в Украине в 2012 году начали использовать интранет-ресурс, созданный на платформе «1С-Битрикс: Корпоративный портал». Компания входит в число крупнейших в Украине предприятий розничной торговли и насчитывает 117 магазинов – 108 магазинов во всех регионах Украины и 9 магазинов в Республике Молдова.

Источник: http://www.1c-bitrix.ru/about/life/news/428250/

Корпоративный портал для сети супермаркетов «Фуршет» в Украине создан на платформе «1С-Битрикс»

Сотрудники и поставщики первой национальной сети супермаркетов «Фуршет» в Украине в 2012 году начали использовать интранет-ресурс, созданный на платформе «1С-Битрикс: Корпоративный портал». Компания входит в число крупнейших в Украине предприятий розничной торговли и насчитывает 117 магазинов – 108 магазинов во всех регионах Украины и 9 магазинов в Республике Молдова.

Источник: http://www.1c-bitrix.ru/about/life/news/428250/

Социальный интранет в «облаке» и другие актуальные тренды от «1С-Битрикс» на РИФ+КИБ 2012

Все наши промо-активности будут посвящены новому облачному сервису «Битрикс24». На стенде компании – стенде №4 – вы сможете больше узнать о преимуществах и особенностях нового сервиса. Для участников РИФ+КИБ будет организован интерактивный квест «Собери свою команду», по итогам которого успешные игроки получат оригинальные призы, которых будет немало. Все три дня мероприятия на стенде «1С-Битрикс» будет проходить розыгрыш призов для тех, кто соберет свою команду.

Источник: http://www.1c-bitrix.ru/about/life/news/427098/

Интернет-магазин за 100 рублей на сайте «1С-Битрикс: Маркетплейс»

Компания «1С-Битрикс» объявляет о начале акции «Интернет-магазин за 100 рублей», которая стартует 17 апреля. Покупая готовый интернет-магазин из каталога «1С-Битрикс: Маркетплейс» вместе с редакцией «1С-Битрикс: Управление сайтом», вы платите за него  всего 100 рублей! Все магазины разработаны нашими партнерами, призерами конкурса на лучшее решение в «1С-Битрикс: Маркетплейс», и полностью готовы к установке и запуску.

Источник: http://www.1c-bitrix.ru/about/life/news/427214/

DataLife Engine v.9.6 Press Release


Дорогие друзья,

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

Источник: http://dle-news.ru/pressrelease/1499-datalife-engine-v96-press-release.html

Совместный отпуск друпалеров и три-четыре DrupalCamp`а подряд!

Приветствую уважаемое сообщество друпалеров, друпалерш, друпалистов и всех сочувствующих!

Как известно, 12 июня в России празднуется День Независимости. А что еще делать в день независимости родной страны, как не уехать из нее в круиз по Балтийскому морю, по столицам Балтики: Санкт-Петербургу, Хельсинки, Таллину, Стокгольму. Можно еще посетить норвежский Осло и знаменитые фиорды, а также Копенгаген…

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

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

Этот пост написан для того, чтобы собрать всех заинтересованных в подобном мероприятии людей, сколотить из них чат в скайпе, совместно выбрать тур, собрать со всех деньги и организованно заказать этот тур. Как только будет ясно, что набирается достаточное количество людей (не меньше четырех; поскольку я еду точно, то нужно еще минимум троих), будет написан пост-объявление на groups.drupal.org с предложением о проведении друпал-кафе в честь русскоязычных гостей и вообще, сделать эту традицию регулярной. Мне кажется, что это будет одним из связующих звеньев между пока что слишком обособленным русскоязычным друпал-сообществом и европейским.

Да что это мы, в самом деле, о сообществе да о сообществе. Основная цель этого мероприятия – хорошо провести время, спланировать свой отпуск с пользой для своего профессионального роста. Отдых среди единомышленников – это отдых вдвойне. Море фана и хорошего настроения. Просто, отдыхая, мы, русские, не забываем о высоких идеалах байтайерт-друпализма и т.д.

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

Маршрут может выглядеть так: Петербург-Хельсинки-Стокгольм-Таллин-Петербург. Возможны вариации: поезд из Москвы до Питера, потом до Хельсинки, оттуда паром до Стокгольма, потом автобус до Осло, автобус до Копенгагена и паром до Питера. В общем, вариантов масса, есть из чего выбрать.

Резюмирую.

1. Вам предлагается взять отпуск на неделю с 11.06 по 17.06 включительно, таким образом получив непрерывный кусок свободного времени с 10.06 по 17.06 включительно (8 календарных дней)
2. В этот период совершить вышеописанный круиз по Балтийскому морю. (не обязательно на все 8 дней)

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

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

Вкратце сориентирую вас по деньгам и немного расскажу о своих впечатлениях.

В 2010 году в майские праздники я с друзьями совершил круиз на пароме по маршруту Питер-Хельсинки-Стокгольм-Таллин-Питер, длительностью 4 дня и 3 ночи. Каюту мы заказывали 4-хместную, самую дешевую, под ватерлинией (иллюминаторов нет), т.к. все свое свободное время (а это вечер и ночь) мы проводили либо в клубе на самой верхней обзорной палубе, танцуя и распивая напитки, либо в своей каюте, отсыпаясь и приводя себя в порядок перед выходом в город. В программу тура входила бесплатная пешая экскурсия по каждому городу, и можно было заказать много других: музей Карлсона в Стокгольме, Церковь в скале в Хельсинки и много-много другого. Понравилось очень, особенно девушки в Таллине. Стокгольм – город-мечта, везде велосипеды. Хельсинки – очень холодный город, достопримечательностей почти нет, а те что есть – построены русскими во времена царизма. Конечно, айтишникам будет этот город интересен из-за личности Линуса Торвальдса. Старый Таллин похож на сказку, удалось даже позвенеть в колокол на старой главной ратуше города. Поездка была весьма позитивной. В мае в Балтийском море довольно холодно и дико ветренно, поэтому, учитывая свой предыдущий опыт, я предлагаю вам поездку в июне.

Мой бюджет на прошлую поездку составил: 244 евро, (в т.ч. тур: 174 евро +70 евро – топливный сбор), или 9800 рублей (курс евро на дату бронирования +2%).

Из каждодневных расходов, нужно на еду (мой расход был заложен 20 евро в день, включая бары, рестораны и Макдональдс), транспорт (обычно универсальный проездной за ~10 евро на любой вид транспорта – метро, автобус, паром, действующий целый день), прочие расходы (сувениры, это прикидывайте сами – от 1 до 100 евро и выше).

Когда я просматривал цены на туры в этот год, 6 дней стоят 320 евро + виза 80 евро (автобусно-паромный тур). Конечно, туры очень разные, и я тут просто привел прикидочную цену для сравнения.

Для оформления документов вам потребуется (список не точный, точный скажет наш оператор. имейте в виду, что этот список ТОЛЬКО для справки):

1. Заграничный паспорт, действительный в течение 3 месяцев со дня возвращения из поездки: в паспорте обязательно должна быть подпись владельца и достаточное количество страниц для визовой наклейки на ребенка, который вписан в паспорт родителя и следует вместе с ним.
2. Полные анкетные данные (заполнить опросник). [прим.: он небольшой одна страница A4, примерно 7 стандартных вопросов]
3. Копия первой страницы заграничного паспорта.
4. Старый заграничный паспорт, если в нем есть Шенгенские визы, выданные за последние 3 года.
5. 2 цветных фотографии 3,5 х 4,5 на белом фоне в анфас без углов и овалов, сделаны не ранее 3 месяцев до подачи документов. Нельзя подавать фотографии, ранее использовавшиеся для получения визы. Не допускаются головные уборы, темные очки и ретушь; голова должна занимать 60-70 % фотографии.
6. Ксерокопия всех страниц внутреннего паспорта (даже чистых!!!) для туристов старше 14 лет.
7. Ксерокопия свидетельства о рождении для туристов младше 14 лет.
8. Справка с места работы с указанием должности, оклада/заработной платы за три последних месяца. Справка предоставляется на фирменном бланке организации, заверенном подписью руководителя/гл. бухгалтера и печатью.

Да-да, для получения Шенгенской визы все это нужно.

Думайте, решайте, планируйте, задавайте вопросы и соглашайтесь!

Attached poll “Нравится идея Балтийских отпускных Drupal-кемпов?”.
Register or login to poll
Results:
Да, настолько, что приму участие – если не в этом году, то в следующем – точно!: 13 голосов
Да, нормально, сойдет. Ничем не отличается от других отпусков, Друпал тут ни к месту…: 4 голоса
Не взлетит. Идея не нравится.: 2 голоса

Источник: http://www.drupal.ru/node/80001

Работа с Facet API и Apache Solr. Часть 2

Всем привет. В предыдущем посте я рассказал, как можно “повлиять” на процесс индексации, добавляя дополнительные поля в индекс, и создавать свои фасеты (фильтры) с помощью Facet API. Сегодня я хочу рассказать об альтернативном способе индексирования полей и возможности поиска по дополнительным полям. Дело в том, что Solr не ищет по всем полям, а только по тем, о которых его просят. Итак, поехали.

Представим задачу, когда нам нужно не добавить какое-то поле из связанных материалов, а изменить способ индексации какого-то текущего поля. Например, есть такой модуль Field Collection, позволяющий сделать поле-контейнер, содержащее в себе несколько полей. В моей структуре с помощью него у публикации указывается автор, а к автору – организация, в которой он работает:

В базе данных у меня есть таблица field_data_field_author_org, в которой есть поле value, которое указывает на entity_id поле таблиц field_data_field_author и field_data_field_jobs. Таким образом в индексированном документе публикации я получаю поле im_field_author_org, значение которого мне абсолютно не нужно. Вот для того, чтобы указать, как будет индексироваться поле, мне нужно определить indexing_callback для этого поля в функции, реализующей хук hook_apachesolr_field_mappings(), находящийся в файле apachesolr.api.inc:

<?php

function inti_apachesolr_field_mappings() {
  // Функция должна вернуть массив, в котором ключем может быть либо тип поля, либо значение 'per_field'. 
  // В первом случае мы указываем, как будут индексироваться поля этого типа, во втором - значением будет массив,
  // у которого ключем будет имя поля. Настоятельно рекомендую ознакомиться с документацией ко всем хукам, которые
  // я указываю в заметках, для этого я пишу, в каких файлах они находятся. Дело в том, что в документации
  // это описано довольно подробно, а я лишь хочу описать сам принцип.
  $mappings = array();
  $mappings['per-field']['field_author_org'] = array(
    'indexing_callback' => 'inti_field_author_org_indexing_callback',
    // В это поле я хочу записать имена авторов и организаций, поэтому меняю тип с int на text,
    // это повлияет на имя поля (см. мой предыдущий пост), которое в данном случае генерируется 
    // автоматически
    'index_type' => 'text',
    // Фасеты по этому полю мне не нужны, потому что их я формирую вручную (описано также в предыдщем посте)
    'facets' => FALSE,  
  );
  return $mappings;
}

function inti_field_author_org_indexing_callback($entity, $field_name, $index_key, $field_info) {
  $fields = array();

  // Получаем все значения нашего поля
  $field_values = array_map(function($n) { return $n['value']; }, $entity->{$field_name}['und']);  

  // По этим значениям достаем всех авторов и организации прямо из базы данных
  // В момент написания заметки я предположил, что можно было бы воспользоваться функционалом
  // самого модуля Field Collection, но это предположение я проверю позже. :)
  $select = db_select('node', 'n');
  $select->join('field_data_field_author', 'fdfa', 'fdfa.field_author_nid = n.nid');
  $select->condition('fdfa.entity_id', $field_values, 'IN');
  $select->fields('n', array('title'));
  $authors = $select->execute()->fetchCol();
  
  $select = db_select('node', 'n');
  $select->join('field_data_field_jobs', 'fdfj', 'fdfj.field_jobs_nid = n.nid');
  $select->condition('fdfj.entity_id', $field_values, 'IN');
  $select->fields('n', array('title'));
  $orgs = $select->execute()->fetchCol();

  // Формируем массив с $index_key в кач-ве ключей, и 
  // именами авторов и названиями всех организаций в кач-ве значений.
  $fields[] = array(
    'key' => $index_key,
    'value' => implode(' ', $authors),
  );
  $fields[] = array(
      'key' => $index_key,
      'value' => implode(' ', $orgs),
  );
  return $fields;
}

?>

Таким образом в результате индексирования поле у меня выглядит следующим образом:

[tm_field_author_org] => Array ( [0] => Иванов Е. С. Петрова Р. Ш. // Авторы [1] => Рога и копыта Министерство образования и науки // Организации )

Теперь мне нужно сообщить Solr’у, что по этому полю тоже необходимо производить поиск. Делается это с помощью реализации хука hook_apachesolr_query_alter(), описанном всё в том же чудесном файле apachesolr.api.php:

<?php

function inti_apachesolr_query_alter($query) {
  // Поля, в которых нужно искать, должны быть добавлены в параметр 'qf' поискового запроса.
  // Формат параметров - обычный массив, значения которого выглядят как fieldname^boost, т.е. тут же поисковик
  // будет уведомлен о приоритетах. В моём случае поле достаточно важное, поэтому приоритет делаю 
  // высоким. Напомню, что имя поля должно быть указано не то, которое в Drupal'е, а то, которое
  // в индексированном документе.
  
  $params = array('tm_field_author_org^25.0');
  $query->addParam('qf', $params);
}

?>

Кстати, $query – это интерфейс DrupalSolrQueryInterface, описанный в файле apachesolr.interface.inc, с которым рекомендую ознакомиться, если вы хотите узнать, как еще можно работать с запросом перед его отправкой.

Собственно, вот и всё. В следующем посте расскажу о status_callback и индексировании определенных нод.

Примечание: вышенаписанное актуально для текущих версий модулей apachesolr (7.x-1.0-beta19) и facetapi (7.x-1.0-rc4). Они активно развиваются, поэтому если у вас другая версия и что-то не работает, читайте release notes.

Ссылки:
Часть 1. О добавлении полей в индекс и фасетах.
Часть 3. О том, как не индексировать, если не хочется.
Часть 4. Установка Solr 3.x и поиск с использованием *

Источник: http://www.drupal.ru/node/79948

Новые приложения в каталоге «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/426114/

Новый сервис «Битрикс24» – первый социальный интранет в «облаке»

Компания «1С-Битрикс» начинает открытое тестирование нового облачного сервиса для совместной работы «Битрикс24», в основе которого лежит концепция социального интранета. Это первый российский SaaS-сервис, в котором объединены классические рабочие инструменты и социальный формат коммуникаций.

Источник: http://www.1c-bitrix.ru/about/life/news/425080/

Обновление ОС на сервере

Уважаемые посетители Drupal.ru

Завтра, 11 Апреля 2012 г, запланировано обновление ПО с последующей перезагрузкой сервера, где находится drupal.ru.
Соответственно с 23:00 до 23:59 по Московскому времени возможны перебои в работе сайта.

Просим проявить понимание и терпение.

С Уважением,
Команда IT Patrol inc.

Источник: http://www.drupal.ru/node/79787

DrupalConf 2012 – приглашаем докладчиков!

Конференция DrupalConf 2012 состоится 2 июня 2012 года в Москве!

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

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

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

До встречи на DrupalConf!

Источник: http://www.drupal.ru/node/79740

Монитор качества для веб-приложений в каталоге «1С-Битрикс: Маркетплейс»

Главное требование заказчиков к любым продуктам и услугам – это высокое качество, поэтому эксперты «1С-Битрикс» разработали «Монитор качества» с учетом наиболее часто встречающихся ошибок по результатам аналитики обращений и комментариев посетителей сайта «1С-Битрикс: Маркетплейс».

Источник: http://www.1c-bitrix.ru/about/life/news/424066/

Новинки недели в каталоге «1С-Битрикс: Маркетплейс»

На этой неделе в каталоге готовых приложений для сайтов и корпоративных порталов «1С-Битрикс: Маркетплейс» появилось много интересных новинок: интернет-магазины различной тематики для быстрого запуска собственного бизнеса в Интернете и приложения для сайтов, расширяющие их возможности без дополнительных временных затрат.

Источник: http://www.1c-bitrix.ru/about/life/news/423773/

Новинки недели в каталоге «1С-Битрикс: Маркетплейс»

На этой неделе в каталоге готовых приложений для сайтов и корпоративных порталов «1С-Битрикс: Маркетплейс» появилось много интересных новинок: интернет-магазины различной тематики для быстрого запуска собственного бизнеса в Интернете и приложения для сайтов, расширяющие их возможности без дополнительных временных затрат.

Источник: http://www.1c-bitrix-ua.com/about/life/news/423773/

«Битрикс24» – социальный интранет в «облаке». Онлайн-трансляция презентации нового облачного сервиса «1С-Битрикс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/422203/

«Битрикс24» – социальный интранет в «облаке». Онлайн-трансляция презентации нового облачного сервиса «1С-Битрикс»

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/422203/

Апрельский бум в «1С-Битрикс: Маркетплейс»

Объявляем апрель месяцем «1С-Битрикс: Маркетплейс». Что такое «1С-Битрикс: Маркетплейс»? Это каталог приложений, разработанных нашими партнерами. В него входят готовые типовые сайты (корпоративные или персональные сайты, интернет-магазины различных тематик) с продуманной структурой, настроенными разделами и фильтрами, несколькими шаблонами дизайна. А также модули и компоненты.

Источник: http://www.1c-bitrix.ru/about/life/news/421123/

Апрельский бум в «1С-Битрикс: Маркетплейс»

Объявляем апрель месяцем «1С-Битрикс: Маркетплейс». Что такое «1С-Битрикс: Маркетплейс»? Это каталог приложений, разработанных нашими партнерами. В него входят готовые типовые сайты (корпоративные или персональные сайты, интернет-магазины различных тематик) с продуманной структурой, настроенными разделами и фильтрами, несколькими шаблонами дизайна. А также модули и компоненты.

Источник: http://www.1c-bitrix-ua.com/about/life/news/421123/

Новинки каталога «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/420028/

Новинки каталога «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/420028/

DrupalCafé №4 в Харькове – 05.04.2012


В четверг, 5 апреля, в 19:00, в Харькове пройдет уже четвертое DrupalCafe.
Место проведения – все так же – Выставочный центр «РАДМИР ЭКСПОХОЛЛ», по адресу ул. Академика Павлова 271 (м. Академика Павлова).

Темы докладов:
1. “Архитектура Drupal Commerce. Основы работы с Drupal Commerce” (Александр Мильковский, WDG)
- Архитектура Drupal Commerce.
- Основы работы с Drupal Commerce.
- Краткий обзор полезных модулей.

2. “Drupal 7 Deploy” (Антон Иванов, WDG)
Обзор существующих методов переноса функционала с Dev сайта на Production, а также рассмотрение подхода к разработке который позволяет упростить и автоматизировать Deploy.

3. “Разработка адаптивных шаблонов на базе Omega.” (Тарас Омельяненко)
Доклад рассказывает об отличной теме Omega и возможности на полную силу использовать весь ее функционал. Ожидается холивар поклонников темы Fusion.

Участие бесплатное, в программе кофе, чай, блекджек, cookies.
Желательно предварительная регистрация, всем желающим – отпишите в комментарии или в контакты ниже.
https://docs.google.com/spreadsheet/viewform?formkey=dERVTEhMVEdZMVdIVlk…

По всем вопросам можно обращаться:
+38(099)3525316 – Алексей Гайдабура, gaydabura@gmail.com skype: alexey.gaydabura
Спонсор по прежнему – WDG (http://wdg-company.com/)

Источник: http://www.drupal.ru/node/79063

Студенческий портал МФЮА работает на платформе «1С-Битрикс»

Команда разработчиков «Группы Махаон» создала уникальный внутренний портал для студентов, преподавателей и сотрудников МФЮА. Возможности платформы «1С-Битрикс» позволили разработчикам достичь главных целей проекта – наладить продуктивное взаимодействие всех тех, кто участвует в образовательном процессе и поддержать высокое качество образования, предлагаемое ВУЗом.

Источник: http://www.1c-bitrix.ru/about/life/news/419246/

Студенческий портал МФЮА работает на платформе «1С-Битрикс»

Команда разработчиков «Группы Махаон» создала уникальный внутренний портал для студентов, преподавателей и сотрудников МФЮА. Возможности платформы «1С-Битрикс» позволили разработчикам достичь главных целей проекта – наладить продуктивное взаимодействие всех тех, кто участвует в образовательном процессе и поддержать высокое качество образования, предлагаемое ВУЗом.

Источник: http://www.1c-bitrix-ua.com/about/life/news/419246/

Drupal Cafe’2012 в Москве. Быть!

11 апреля 2012 года с 19:00 по 23:00 пройдет великое событие – первое DrupaCafe в 2012 году в городе Москва!
Для проведения мероприятия зарезервирована комната в антикафе Бабочки – по ссылке адрес и карта, по которой проходить. Место находятся рядом с м. Павелецкая (выход с кольцевой ветки), буквально несколько минут пешком.
Главное не теряться и заходить именно со двора, а не с улицы. Само антикафе находится на 5 этаже здания.

Для участников будут выдаваться магнитные карты, поэтому важно – девушке на входе обязательно говорите, что вы по брони на имя Колосов Алексей или ДрупалКафе. Вам укажут куда заходить, где мы находимся.
В случае если вы такого не скажете – вам выдадут персональную карту с отдельно оплачиваемым временем. По брони время уже оплачено, вам дополнительно ничего не надо платить.

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

Напомню, что последняя встреча проводилась в декабре 2011, а на дворе уже практически апрель 2012!
На мой взгляд, это недопустимое упущение для русского сообщества в столице России. Формат встреч такого плана предполагает их регулярное проведение и перерыв в несколько месяцев очень губителен для атмосферы сообщества.

Резиденты DrupalCafe:
Алексей aka Softovick (моб. +7 (919) 104-98-73)
Виктор aka RxB

Гости мероприятия:
технический специалист от Яндекс (виртуальное общение по Skype)
владелец hr-portal.ru Валерий aka valeratal.
гуру СЭД на Drupal – Антон aka NaZg
представитель женской части русскоязычного сообщества – Мария (gagaga)

Предварительный список тем для обсуждения:

Темы обсуждения. Социальные сети на Drupal. Вкратце о том, какие элементы социальных сетей можно делать на Drupal (предварительно, от RxB). Обсуждение API Яндекс.Денег от технического специалиста! (приглашен разработчик от Яндекс) Практический опыт заработка на сайте, блоки контекстной рекламы. Валерий, hr-portal.ru Коротко об анализе узких мест в плане нагрузки на сервер сайтов на Drupal, некоторые наблюдения за очевидными ошибками после завершения разработки сайта и за особо тяжелыми модулями. (от Softovick & IT-Patrol inc) Друпал-лулзы, или примеры особо неправильных и опасных приемов разработки сайтов на Drupal (от RxB). Построение фото-магазина на Drupal. Обсуждение основ и вариантов реализации с использованием модуля Maestro (Drupal 7) (Антон NaZg). Обсуждение смежных вопросов и вопроса организации DrupalCafe в перспективе

На всякий случай хочу уточнить свое видение насчет места и формата проведения мероприятия. Я бы хотел, чтобы это было тихое и светлое место, важно наличие большого телевизора или возможность использования проектора для проведения презентаций. Также считаю немаловажным возможность закусить – в вечернее время любой человек не откажется от чашечки кофе с десертом, а многие я думаю и от легкого ужина. Жду ваших предложений и замечаний!

UPD:
сообщество ДрупалКафе ВКонтакте
страница ДрупалКафе на Facebook
UPD2:
тема на DrupalSN.Ru

Источник: http://www.drupal.ru/node/78994

Дмитрий Сатин, известный гуру юзабилити, проведет бесплатный онлайн-семинар «Популярный» Интранет. Как не надо заставлять сотрудников пользоваться корпоративным порталом»

Дмитрий Сатин, известный гуру юзабилити, проведет бесплатный онлайн-семинар «Популярный» Интранет. Как не надо заставлять сотрудников пользоваться корпоративным порталом», на котором поделится своим мнением, почему сотрудников не надо заставлять пользоваться интранет-порталом. И расскажет – как сделать так, чтобы сотрудники делали это добровольно, ежедневно, с удовольствием и пользой для работы.

Источник: http://www.1c-bitrix.ru/about/life/news/417202/

Drupal Camp Minsk уже совсем скоро, 14 апреля

В этом году ожидается около 100 участников. Соберутся разработчики из Беларуси, России и Украины. Обязательно будет десант из Германии.

На Drupal Camp Minsk 2012 ожидается некоторый уклон программы в сторону интересов профессиональных веб-разработчиков.
Но начинающие знакомство с Drupal тоже найдут много поучительного.
Конференция также может стать местом общения программистов и руководителей интернет-проектов, которым интересна возможность использования Drupal в своем бизнесе.
Вы так же можете предложить свой доклад, либо сообщить интересующую Вас тему.

Источник: http://www.drupal.ru/node/78735

Что нового в каталоге «1С-Битрикс: Маркетплейс»?

Новые веб-приложения в каталоге «1С-Битрикс: Маркетплейс» на этой неделе можно разделить на две категории: одни предназначены для кропотливой работы, другие, наоборот, – для включенности в праздник и создания хорошего настроения. Какое из них пригодится именно вам? А, может быть, вы будете использовать сразу все? Решайте сами.

Источник: http://www.1c-bitrix.ru/about/life/news/416115/

Что нового в каталоге «1С-Битрикс: Маркетплейс»?

Новые веб-приложения в каталоге «1С-Битрикс: Маркетплейс» на этой неделе можно разделить на две категории: одни предназначены для кропотливой работы, другие, наоборот, – для включенности в праздник и создания хорошего настроения. Какое из них пригодится именно вам? А, может быть, вы будете использовать сразу все? Решайте сами.

Источник: http://www.1c-bitrix-ua.com/about/life/news/416115/

Секреты максимальной производительности приложений от компании «1С-Битрикс» на CodeFest

Актуальные вопросы разработки и управления проектами станут главной темой предстоящей конференции разработчиков CodeFest, которая состоится 31 марта – 1 апреля 2012 года в Новосибирске. Сергей Рыжиков, генеральный директор «1С-Битрикс», выступит в секциях «Web», «QA» и «Enterprise», расскажет участникам о практическом опыте миграции .NET приложения в Windows Azure и способах решения проблем, как добиться максимальной производительности приложения, а также о разработке продукта «1С-Битрикс: Корпоративный портал» и трансформации концепции в облачный сервис «Битрикс24».

Источник: http://www.1c-bitrix.ru/about/life/news/415412/

Секреты максимальной производительности приложений от компании «1С-Битрикс» на CodeFest

Актуальные вопросы разработки и управления проектами станут главной темой предстоящей конференции разработчиков CodeFest, которая состоится 31 марта – 1 апреля 2012 года в Новосибирске. Сергей Рыжиков, генеральный директор «1С-Битрикс», выступит в секциях «Web», «QA» и «Enterprise», расскажет участникам о практическом опыте миграции .NET приложения в Windows Azure и способах решения проблем, как добиться максимальной производительности приложения, а также о разработке продукта «1С-Битрикс: Корпоративный портал» и трансформации концепции в облачный сервис «Битрикс24».

Источник: http://www.1c-bitrix-ua.com/about/life/news/415412/

Второе DrupalCafe в Новосибирске.

В Новосибирске планируется второе DrupalCafe 31 марта.
Ждем всех желающих!
Можете участвовать в активном обсуждении выступлений и предложений дальнейшего развития Drupal-сообщества, разработок и новостей.
Можете выступить сами со своей темой подготовив презентацию.

Предварительные темы докладов:

Иванкин Антон: Вывод изображений в CMS Drupal
Евгений Ильи: Автоматизация контроля соблюдения стандартов кодирования при разработке на Drupal с использованием системы контроля версий git
Виктор Чуханцев: Drupal7+gmap+location+views
Константин Беленький: Open Atrium
Тимофей Прохоров: Мобильные версии сайтов
Константин Осипенко : Использование поискового движка Solr в drupal 7

Предварительная обязательная регистрация
г.Новосибирск, Академгородок, ул. Инженерная 20, Технопарк, конференцзал на 3 этаже
Начало: 31 марта в 12:00
Окончание: 31 марта в 16:00
Помощь в подготовке докладов Роман Чижиков: skype: roman.chizhikov

Презентации докладов с 1-го DrupalCafe можно посмотреть здесь
Организационные вопросы: Павел Прищепа: skype: prischepa.p
info@drupalsib.ru
тел.офиса (383) 233-27-00

Прикрепленный файл Размер drupalcafe2.jpg 48.51 кб

Источник: http://www.drupal.ru/node/78530

«1С-Битрикс» выпускает новые версии готовых сайтов и интернет-магазинов для «1С:Франчайзи»

Компания «1С-Битрикс» расширяет функционал специализированных готовых решений для создания сайтов и интернет-магазинов «1С:Франчайзи». Разработчики учли рекомендации фирмы «1С» и пожелания компаний «1С:Франчайзи» и добавили в готовые решения новые разделы и сервисы.

Источник: http://www.1c-bitrix.ru/about/life/news/413592/

«1С-Битрикс» выпускает новые версии готовых сайтов и интернет-магазинов для «1С:Франчайзи»

Компания «1С-Битрикс» расширяет функционал специализированных готовых решений для создания сайтов и интернет-магазинов «1С:Франчайзи». Разработчики учли рекомендации фирмы «1С» и пожелания компаний «1С:Франчайзи» и добавили в готовые решения новые разделы и сервисы.

Источник: http://www.1c-bitrix-ua.com/about/life/news/413592/

Модуль “Популярные новости категории”

TopNews Category

В Datalife Engine уже есть встроенный модуль, который выводит популярные новости со всего сайта ( {topnews} – http://dle-news.ru/extras/online/topnews.html ). Но иногда возникает необходимость вывести не только популярные новости со всего сайта, но и популярные новости просматриваемой категории.

Источник: http://dle-news.ru/modules/1491-modul-populyarnye-novosti-kategorii.html

Работа с Facet API и Apache Solr. Часть 1

Всем привет.

Так сложилось, что передо мной встала задача создать библиографическую систему для хранения научных публикаций в большом количестве. Ну и как в любой нормальной библиографической системе, мне нужен поиск. На момент начала работы я уже был знаком с модулями Apachesolr search integration и Facet API, работающими в связке, и у которых довольно много возможностей из коробки, а помимо них есть ведь и API. Так вот некоторые мои задачи из коробки не решались, пришлось пообщаться и с разработчиками, и поковыряться в коде, поэтому я таки решил написать о решении некоторых задачек здесь. Возможно, кому-то будет полезно, возможно кто-то предложит, как сделать лучше.

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

Дело в том, что в моём проекте достаточно непростая структура. Так, например, у меня есть тип материала “Публикация”, у которого есть поле – ссылка на материал типа “Издание”. В свою очередь, у издания есть поле – ссылка на материал “Издательство”. Таким образом, когда я ищу публикации, в списке доступных фильтров я вижу “Издания”, но, что если я хочу фильтровать результаты поиска по издательствам, когда они привязаны к публикациям не напрямую?

Один из предложенных вариантов решения этой задачки было ручное индексирование публикаций. Добавив в индексированную публикацию поле издательства мы легко получим нужный фильтр. Добавить поле можно с помощью реализации хука hook_apachesolr_index_document_build() (если вы такого хука не нашли, значит у вас старая версия модуля apachesolr, где он называется hook_apachesolr_update_index()), описанного в файле apachesolr.api.php:

<?php
function mymodule_apachesolr_index_document_build($document, $node, $namespace) {
  if ($node->type == 'publication') {
    if (!empty($node->field_edition)) {

      // Примечание: $node->field_edition - это ассоциативный массив, в котором ключами являются языки, это важно понимать при индексировании. 
      // В данном случае у меня материалы не привязаны к языку, поэтому ключ массива я захардкодил.
      foreach ($node->field_edition['und'] as $edition) {
        if (!empty($edition['node']->field_publishing_house))    {
          foreach ($edition['node']->field_publishing_house['und'] as $pubhouse) {

            // Ну а таким образом я добавляю новое поле в наш документ. Здесь хочу добавить два примечания.
            // Первое: В качестве значения не надо пихать весь термин, или всю ноду, а достаточно проиндексировать идентификатор.
            // Второе: У Apachesolr есть правила именования поля. Название всегда должно быть формата xy_fieldname, где
            // x - тип поля (s - строка, t - текст, i - тип long, а f - float), а y - количество значений (s - одно, m - несколько).
            // В моем примере в поле хранится идентификатор, а издательство у издания может быть только одно.
            // fieldname может быть любым, но для себя я решил, что разделяю его на две части, где первая хранит информацию о том, чье это поле,
            // а вторая - о том, что это поле содержит. pub - публикация, pubhouse - издательство.
            $document->addField('is_pub_pubhouse', $pubhouse['nid']);          
          }
        }
      }
    }
  }
}
?>

Таким образом в самом друпале у нас публикация не хранит информацию о своём издательстве, а в индексе хранит. И помимо этого, может хранить любую другую информацию, какую разработчик пожелает туда “запихнуть”.
Но этого недостаточно. Теперь мы должны рассказать модулю Facet API, что мы хотим по этому полю получить фильтр. Это, в свою очередь, решается с помощью реализации хука hook_facetapi_facet_info(), описанного в файле facetapi.api.php:

<?php
function mymodule_facetapi_facet_info($searcher_info) {
  // Данная функция должна возвращать ассоциативный массив с описаниями полей, где
  // ключом является само название поля.
  $facets = array();
  $facets['is_pub_pubhouse'] = array(

    // Название фильтра на странице настройки.
    // Учитывая, что каждый фильтр отображается в блоке, а заголовок блока я всегда успею переопределить,
    // метку я тоже решил делать понятной
    'label' => t('Publication->Pubhouse'),
    'description' => t('Pubhouse facet for publications'),

    // Здесь я должен указать название коллбэка, который будет вместо идентификаторов подставлять нормальные 
    // значения. Для полей - ссылок на таксономию рекомендую использовать уже готовый коллбэк
    // facetapi_map_taxonomy_terms, для ссылок на ноды я создал свой коллбэк, для полей со списком значений
    // я создавал отдельные коллбэки, хотя возможно, можно это сделать изящнее.
    // Помимо этого, здесь можно указать параметры фильтра такие, как, например, древовидность (hierarchy_callback).
    // Подробнее можно посмотреть в вышеуказанном файле facetapi.api.php в коде описания хука.
    'map callback' => 'mymodule_map_node_references',
  );
}

function mymodule_map_node_references(array $values) {
  // Здесь все очень просто, коллбэк возвращает ассоциативный массив, где ключ массива - это значение, хранимое в поле,
  // а значение в массиве - это то, что должен увидеть пользователь.
  $map = array();
  if ($values) {
    $map = db_select('node', 'n')->fields('n', array('nid', 'title'))->condition('n.nid', $values, 'IN')->execute()->fetchAllKeyed();
  }
  return $map;
}
?>

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

Примечание: вышенаписанное актуально для текущих версий модулей apachesolr (7.x-1.0-beta16) и facetapi (7.x-1.0-rc4). Они активно развиваются, поэтому если у вас другая версия и что-то не работает, читайте release notes.

Ссылки:
Часть 2. О подмене коллбэка для индексации определенного полям и о том, как искать по дополнительным полям.
Часть 3. О том, как не индексировать, если не хочется.
Часть 4. Установка Solr 3.x и поиск с использованием *

Источник: http://www.drupal.ru/node/78426

OG Features – добавляем гибкости в OG


OG Features – модуль позволяющий администратору сайта определять, какой функционал в группе может включаться и отключаться владельцем группы.
Например, это могут быть произвольные типы контента, вьюхи, панели. Яркий пример использования этого модуля, это сборка Drupal Commons, где через og_features сделаны такие фичи для групп как:

Blog Discussions Documents Events Group Aggregator Polling Wiki Q&A

Сам процесс создания фичи для OG Features нетривиален.
Для этого вам нужно создать свой модуль, где нужно реализовать хук hook_og_features_registry().
Например, у нас модуль называется modulename и мы хотим определить фичу my_feature, код будет следующий, код взяд из модуля, комментарии оставлены оригинальные и строкой ниже добавлены мои:

function modulename_og_features_registry() { $registry = array();   // Feature: my_feature. // Создание объекта фичи. $feature = new stdClass;   // The feature id //Указываем id фичи, оно должно быть уникальным в пределах сайта $feature->id = 'my_feature';   // The name that will show up on the feature toggle form //Название фичи, которое будет показываться в группе на странице управления фичами $feature->name = t('Blog');   // The description that will show up on the feature toggle form //Описание, показываемое на странице управления фичами $feature->description = t('Provide a simple blog for your group');   // The components of the feature that will be enabled/disabled //Компоненты которые включает фича $feature->components = array( 'views' => array( 'og_tab_blogs', ), 'node' => array( 'blog', ), 'context' => array( 'group_blogs', ), 'path' => array( 'node/%node/aggregator', ), 'pane' => array( 'og_content_tracker-panel_pane_1', ), 'og link' => array( 'og_invite', // The key of the link in the group details block ), ); // It's recommended that you key the feature with the name of the // module/feature that is supplying this, so that any custom page // callbacks provided by this module/feature become disabled within // the group //помещаем фичу в "контейнер", это позволит нам в модуле определить несколько фич, если требуется $registry[$feature->id] = $feature;   // Feature: my_second_feature //объявляем вторую фичу $feature = new stdClass; // You can continue to add as many as you'd like //в дальнейшем процесс никак не отличается от первой фичи, в конце делаем так же $registry[$feature->id] = $feature; return $registry; }

Источник: http://www.drupal.ru/node/78408

Конвертирование кодировки базы данных DLE средствами сервера по SSH

Иногда при использовании больших баз данных, например при размерах более одного гигабайта, конвертирование БД в ту или иную кодировку становится не возможным при использовании текстовых редакторов или PHP скриптов, в связи с их ограниченными возможностями. Для таких случаев прекрасно подходят достаточно быстрые операции с использованием SSH, о чем собственно и пойдет речь в данной статье.

Источник: http://dle-news.ru/tips/1490-konvertirovanie-bazy-dannyh-dle-sredstvami-servera-po-ssh.html

DrupalCodeSprint 19-21 апреля 2012 в Харькове!

Приглашаем всех желающих принять участие в Drupal Code Sprint!

С 19-го по 21-е апреля в Харькове чистый кодинг без границ в команде профессионалов под руководством ведущих украинских контрибьюторов.

Принять участие в мероприятие абсолютно БЕСПЛАТНО может любой желающий, но количество мест ограничено. Спешите!

Подробности на сайте мероприятия – http://drupalcodesprint.com/

Контакты организаторов:
Тел.: +38 (067) 5777-369
E-mail: info@drupalcodesprint.com

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

Тимлиды проектов код-спринта: Александр Швец Андрей Поданенко Вадим Миргород Дмитрий Олареско Андрей Постников Юрий Герасимов Юрий Глушков Влад Савицкий Дмитрий Кресин Егор Талдыкин Павел Прищепа Чингис Санданов Ярослав Дорощук Партнеры: Drupal.ua Итл DrupalCafe.com.ua Радмир Экспохолл Прикрепленный файл Размер banner_drupal_ua_final.jpg 118.61 кб

Источник: http://www.drupal.ru/node/78377

Приложения недели в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/411475/

Приложения недели в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/411475/

Модуль от Smscoin – “Тег [sms-hide] – смс оплата скрытого текста”

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

Источник: http://dle-news.ru/modules/1488-modul-ot-smscoin-teg-sms-hide-sms-oplata-skrytogo-teksta.html

Модуль от Smscoin – “Платная смс – регистрация”

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

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

Настройки модуля вынесены в Админ-панель, где при конфигурации модуля требуется указать ID услуги смс:ключ и e-mail, на который будут поступать данные о новых регистрациях (опционально).

Источник: http://dle-news.ru/modules/1487-modul-ot-smscoin-platnaya-sms-registraciya.html

Модуль от Smscoin – “Модуль на основе пополнения баланса”

Модуль позволяет пополнять баланс кредитами посредством отправки смс сообщения. Кредиты могут быть расходованы на переход в VIP группу на срок который вы укажите. А также на открытие скрытого вами контента. Стоимость перехода в группу VIP и стоимость открытия контента вы определяете сами. Вы можете так же реализовать расход баланса для других сервисов вашего сайта.

Источник: http://dle-news.ru/modules/1486-modul-ot-smscoin-modul-na-osnove-popolneniya-balansa.html

Модуль оплаты для перехода в группу VIP (Локальная версия)

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

Источник: http://dle-news.ru/modules/1485-modul-oplaty-dlya-perehoda-v-gruppu-vip-lokalnaya-versiya.html

Участвуем в конкурсе «Рейтинг Рунета»

С любезного приглашения Анатолия Денисова, главного редактора CMS Magazine, мы теперь участвуем в конкурсе «Рейтинг Рунета» в категории CMS. Претендентов не особо много и всё какие-то проприетарщики, окромя ModX, за который и предлагаю голосовать — собратья по опенсорсу однако.

Хотя, если не вчитываться в содержимое, то на скриншотах drupal.ru выглядит очень даже ничего (:

Источник: http://www.drupal.ru/node/78233

uLogin – новый модуль авторизации через Facebook, Vkontakte, odnoklassniki, twitter…

Добрый день,

Для друпала 7 написал модуль авторизации для сервиса uLogin. Функционально очень схож с Loginza.

Реализованные возможности по состоянию beta5 (12 марта 2012), учитывались замечания и пожелания отсюда:

Виджет сделан в виде нового элемента – поэтому его можно использовать в любой форме:
<?php $form['widget'] = array('#type' => 'ulogin_widget');</li> ?> Его настройки по умолчанию конфигурируются через админку. Разработчики могут их переопределять, задавая эти настройки в своих формах при добавлении виджета (разработчики найдут, какие именно настройки они могут переопределять). Несколько виджетов на одной странице работают корректно и не глючат. Пользователи могут подключить к одному своему аккаунту несколько различных айдентити (зайкладка uLogin identitites в профиле пользователя) – и смогут логиниться в свой аккаунт используя любую из них. Так же смогут и удалить привязанные к аккаунту айдентити (при удалении айдентити, которая использовалась для создания аккаунта, требуется указать айдентити, на которую её заменить). Модуль определяет токены для аккаунтов, которые были созданы с помощью айдентити – эти токены можно использовать в модулях Rules, Realname, и в других, где используются токены пользователя. Также есть настройка, которая позволяет запретить регистрацию пользователей с одинаковыми мылами – в этом случае пользователю выдается ошибка и предлагается залогиниться с помощью другой айдентити либо с помощью логина и пароля. В админке можно проставить, на какие их трех форм (форма логина, форма логина в блоке, форма регистрации) добавить дефолтный виджет.

Разработка модуля проспонсирована Forbes.ru, будет использоваться в новом проекте на друпале 7.

Источник: http://www.drupal.ru/node/78145

Конвертирование базы данных DLE из utf-8 в windows-1251

О том, как перевести сайт и базу данных из кодировки windows-1251 в кодировку utf-8, уже рассказывалось неоднократно. Это можно сделать средствами самой DLE. Данная статья предназначена для тех, кто хочет перевести сайт из кодировки utf-8 в кодировку windows–1251. Cделать это сравнительно легко в “домашних” условиях без обращений к техподдержке хостинга или без самостоятельных дополнительных манипуляций на своем сервере. Надеюсь, она поможет тем, кто по каким-то причинам разочаровался в кодировке utf-8 и решил вернуться к windows-1251.

Источник: http://dle-news.ru/tips/1483-konvertirovanie-bazy-dannyh-dle-iz-utf-8-v-windows-1251.html

С наступающим 8 марта

Да не буду строго осужден прекрасной половиной drupal сообщества, примите мои поздравления
какие есть зато от чистого сердца с наступающим 8 марта

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

Дамы не судите строго меня.
Открываю тему для поздравлений для наших всеми любимых, любящих Drupal дам, сеньорит, мадемуазель (какое трудное слово), мадам, да как вас не назови, вы самые прекрасные и желанные.

Источник: http://www.drupal.ru/node/77861

С наступающим 8 марта

Да не буду строго осужден прекрасной половиной drupal сообщества, примите мои поздравления
какие есть зато от чистого сердца с наступающим 8 марта

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

Дамы не судите строго меня.
Открываю тему для поздравлений для наших всеми любимых, любящих Drupal дам, сеньорит, мадемуазель (какое трудное слово), мадам, да как вас не назови, вы самые прекрасные и желанные.

Источник: http://www.drupal.ru/node/77861

С праздником 8 Марта!

Компания «1С-Битрикс» сердечно поздравляет прекрасную половину человечества с весенним праздником – 8 Марта! Пусть бизнес-успехи дополняют личное счастье и семейное благополучие! Удачи вам во всем и хорошего настроения, пусть улыбки украшают вас сегодня и всегда!

Источник: http://www.1c-bitrix.ru/about/life/news/406988/

«1С-Битрикс» расскажет об эффективности социального интранета на i-Comference 2012

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

Источник: http://www.1c-bitrix.ru/about/life/news/407102/

«1С-Битрикс» расскажет об эффективности социального интранета на i-Comference 2012

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/407102/

С праздником 8 Марта!

Компания «1С-Битрикс» сердечно поздравляет прекрасную половину человечества с весенним праздником – 8 Марта! Пусть бизнес-успехи дополняют личное счастье и семейное благополучие! Удачи вам во всем и хорошего настроения, пусть улыбки украшают вас сегодня и всегда!

Источник: http://www.1c-bitrix-ua.com/about/life/news/406988/

Делаем добро. Друпал-кафе в Ростове

Всем привет, сначала общей информации (без нее будет непонятно о чем это я вообще).

1 марта открылся первый в Ростове коворкинг-центр. DobroCowork – http://dobrocowork.ru . Находится он в известном местным творческим людям центре CreativeSpace.pro. Мы подружились с руководством этого прекрасного места и планируем там проводить IT-мероприятия. В идеале – друпал-кафе. Сейчас, когда снег потихоньку тает и возникают первые мысли о весне и весенних мероприятиях (да, скоро же будет много кэмпов!), мы пытаемся для себя определиться с форматом.

Собственно мне нужны отзывы. От людей которым интересно друпал-кафе в Ростове или кто может приехать из соседних городов. Мне примерно нужно знать количество заинтересованных людей. Если нас будет мало – друпал-кафе не будет, а будет более общая IT тусовка (что тоже интересно). Если будет достаточно – будет собираться и трепаться о багах в коммерце, устраивать код-спринты (там есть удобные пуфы и wi-fi, а также бесплатный кофе – что может быть лучше?) и вообще предаваться свободному кодингу. Так что жду ваших комментариев – кто из Ростова, кому интересно встречаться.

p.s. Кстати там еще есть свободные места под аренду – http://dobrocowork.ru/rent , друпал фрилансерам может быть интересно. Атмосфера там отличная.

p.p.s. Кстати еще раз. Вы знаете что есть скайп-чат где общаются друпалеры с югов (Ростов, Краснодар, Таганрог и др.)? Стучитесь мне (alexander.dubovskoy), Вите или Богдану, добавляйтесь. Кроме того в Краснодаре часто проходят встречи друпалеров (http://drupalyug.ru/), друпал-шашлыки и прочий отдых, Виктор (RxB) может много об этом рассказать.

Источник: http://www.drupal.ru/node/77831

Школа Drupal в Москве (от siteograf.com)

Уроки Друпал для начинающих в Москве – вступайте в группу http://vk.com/drupal_moscow

Каждый участник сделает собственный сайт, научится работать с CMS Drupal, освоит основы создания корпоративных порталов.

Важное условие: уверенный пользователь ПК.

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

Компания Siteograf.com проводит занятия по обучению Drupal с февраля 2011 года. За это время мы провели свыше 15 образовательных программ в Киеве и Москве для начинающих веб-разработчиков.

Свыше 5 лет Siteograf занимается разработкой сайтов на CMS Drupal для клиентов.

Лектор: Виктор Богуцкий, Siteograf.com

Стоимость участия во всем курсе Школы составляет 2599 рублей.

Для регистрации:
Отправь письмо на daredjana@gmail.com, напиши свои имя-фамилию, контактный мобильный телефона. В теме письма укажи «Школа Drupal в Москве».

Подробности программы и отзывы смотрите на siteograf.com
и в нашей группе вконтакте “Обучение Drupal” http://vk.com/drupal_education

Источник: http://www.drupal.ru/node/77701

18 и 31 марта Третья Школа Drupal в Москве (от siteograf.com)

Уроки Друпал для начинающих в Москве.
Каждый участник сделает собственный сайт, научится работать с CMS Drupal, освоит основы создания корпоративных порталов.

Важное условие: уверенный пользователь ПК.

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

Компания Siteograf.com проводит занятия по обучению Drupal с февраля 2011 года. За это время мы провели свыше 15 образовательных программ в Киеве и Москве для начинающих веб-разработчиков.

Свыше 5 лет Siteograf занимается разработкой сайтов на CMS Drupal для клиентов.

Программа

18 марта, воскресенье
Блок 1.
12.00-15.00
• Установка друпала
• Модули и темы.
• Меню и блоки.
• Методика изучения.
• Создание разделов и страниц подразделов, вставка картинок, оформление контента.
• Установить и включить модули menu block, colorbox, global redirect, XML sitemap, page title.
• Скачать и установить тему дизайна, которая наиболеее подходит под вид деятельности.

Блок 2.
15.00-17.00
• Типы материалов. Создание своих типов материалов.
• Таксономия.
• Создание полей в типе материала.
• Модуль Views. Вывод полей используя views.
• Работа с блоками.
• Использование CSS для изменения внешнего вида сайта и его элементов.

Домашнее задание: селекторы CSS, потренироваться в изменении основных свойств и значений.

31 марта, суббота
Блок 3.
12.00-15.00
• Работа с пользователями.
• Права доступа.
• Модули для работы с пользователями.
• Особенности регистрации и вывод полей из профиля пользователей.
• Взаимодействие пользователей.
• Интеграциия с социальными сетями.
• Умение добавить поля в регистрационную форму пользователей, создание и использование своих шаблонов.

Блок 4.
15.00 – 17.00
• Модуль Panels.
• Редактирование шаблона вывода.
• Модули для seo.

Лектор: Виктор Богуцкий, Siteograf.com
Место проведения: Шоколадная фабрика, ул.Рабочая, 38
м.Римская либо м.Площадь Ильича

Стоимость участия во всем курсе Школы составляет 2599 рублей.

Для регистрации:
Отправь письмо на daredjana@gmail.com, напиши свои имя-фамилию, контактный мобильный телефона. В теме письма укажи «Школа Drupal в Москве 18 и 25 марта». .

Хочешь получить скидку в 100 рублей?
Напиши на своей страничке вконтакте и фейсбуке «Иду учиться делать сайты Школа Drupal http://vk.com/drupal_moscow» (сообщите об этом нам, отправив ссылку на свой профиль на daredjana@gmail.com)

По всем вопросам звонить (925) 380 08 36 Даша.

Подробности программы и отзывы смотрите на siteograf.com и в нашей группе вконтакте “Обучение Drupal” http://vk.com/drupal_education

Источник: http://www.drupal.ru/node/77701

Ajax Form в Drupal7

По мотивам Как проще всего реализовать аякс с выдачей json” и Установка фокуса на элемент формы*.

В итоге, на память себе и может кому понадобится:

В hook_menu:

$items['path_to_page/%'] = array( 'type' => MENU_CALLBACK, 'page callback' => 'my_callback', 'delivery callback' => 'ajax_deliver', 'page arguments' => array(1), 'access arguments' => true, );

Непосредственно callback

function my_callback($fid) { $commands[] = ajax_command_replace('#ID_'.$fid, 'New value text'); $page = array('#type' => 'ajax', '#commands' => $commands); # если в форме у нас #type = submit ajax_deliver($page); # если у нас #type = link, то return $page; }

В форме у необходимого элемента прописываем:

'#ajax' => array( 'effect' => 'fade', # нижеперечисленное необходимо для #type = submit 'path' => 'path_to_page/'.$fid, 'event' => 'click', )

Если тип = link, необходимо ещё указать в аттрибутах класс use-ajax.

К чему все это написано:
не нашел нигде рабочего описания по работе с ajax['path'] вместо ajax['callback']
в случаях $form['element']['#type'] = ’submit’ или $form['element']['#type'] = ‘link’ – немного отличаются вывод и возврат callback.

P.S. сначала нашел решение, потом уже по delivery callback’y нашел эту статью и узнал про разницу в типах #type = submit|link.

Источник: http://www.drupal.ru/node/77567

Ajax Form в Drupal7

По мотивам Как проще всего реализовать аякс с выдачей json” и Установка фокуса на элемент формы*.

В итоге, на память себе и может кому понадобится:

В hook_menu:

$items['path_to_page/%'] = array( 'type' => MENU_CALLBACK, 'page callback' => 'my_callback', 'delivery callback' => 'ajax_deliver', 'page arguments' => array(1), 'access arguments' => true, );

Непосредственно callback

function my_callback($fid) { $commands[] = ajax_command_replace('#ID_'.$fid, 'New value text'); $page = array('#type' => 'ajax', '#commands' => $commands); # если в форме у нас #type = submit ajax_deliver($page); # если у нас #type = link, то return $page; }

В форме у необходимого элемента прописываем:

'#ajax' => array( 'effect' => 'fade', # нижеперечисленное необходимо для #type = submit 'path' => 'path_to_page/'.$fid, 'event' => 'click', )

Если тип = link, необходимо ещё указать в аттрибутах класс use-ajax.

К чему все это написано:
не нашел нигде рабочего описания по работе с ajax['path'] вместо ajax['callback']
в случаях $form['element']['#type'] = ’submit’ или $form['element']['#type'] = ‘link’ – немного отличаются вывод и возврат callback.

P.S. сначала нашел решение, потом уже по delivery callback’y нашел эту статью и узнал про разницу в типах #type = submit|link.

Источник: http://www.drupal.ru/node/77567

Веб-приложения и готовые сайты этой недели в каталоге «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/405050/

Веб-приложения и готовые сайты этой недели в каталоге «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/405050/

«1С-Битрикс: Управление сайтом» – платформа новой социальной сети PhotoArt Creation

Социальная сеть PhotoArtCreation работает на платформе «1С-Битрикс: управление сайтом». Эта площадка предназначена для обмена информацией и мнениями между  теми, кто занят в фотоиндустрии или только планирует стать частью этого мира, дискуссии между фотографами и фотомоделями, фотолюбителями.

Источник: http://www.1c-bitrix.ru/about/life/news/404286/

«1С-Битрикс: Управление сайтом» – платформа новой социальной сети PhotoArt Creation

Социальная сеть PhotoArtCreation работает на платформе «1С-Битрикс: управление сайтом». Эта площадка предназначена для обмена информацией и мнениями между  теми, кто занят в фотоиндустрии или только планирует стать частью этого мира, дискуссии между фотографами и фотомоделями, фотолюбителями.

Источник: http://www.1c-bitrix-ua.com/about/life/news/404286/

«1С-Битрикс: Управление сайтом» назван лучшей CMS 2011 года читателями журнала «Мир ПК»

Журнал «Мир ПК» подвел итоги конкурса на лучший ИТ-продукт 2011 года. По результатам ежегодного опроса читателей, который проводится уже в 19-й раз, продукт «1С-Битрикс: Управление сайтом» был признан лучшей CMS года. 

Источник: http://www.1c-bitrix.ru/about/life/news/403603/

«1С-Битрикс: Управление сайтом» назван лучшей CMS 2011 года читателями журнала «Мир ПК»

Журнал «Мир ПК» подвел итоги конкурса на лучший ИТ-продукт 2011 года. По результатам ежегодного опроса читателей, который проводится уже в 19-й раз, продукт «1С-Битрикс: Управление сайтом» был признан лучшей CMS года. 

Источник: http://www.1c-bitrix-ua.com/about/life/news/403603/

«1С-Битрикс» на «Уральской Интернет Неделе»

Компания «1С-Битрикс» принимает активное участие в значимых мероприятиях отрасли, и «Уральская Интернет Неделя», которая будет проходить с 29 февраля по 3 марта 2012 года в Екатеринбурге, является одним из них. «1С-Битрикс» – официальный партнер мероприятия.

Источник: http://www.1c-bitrix.ru/about/life/news/403347/

«1С-Битрикс» на «Уральской Интернет Неделе»

Компания «1С-Битрикс» принимает активное участие в значимых мероприятиях отрасли, и «Уральская Интернет Неделя», которая будет проходить с 29 февраля по 3 марта 2012 года в Екатеринбурге, является одним из них. «1С-Битрикс» – официальный партнер мероприятия.

Источник: http://www.1c-bitrix-ua.com/about/life/news/403347/

VK OpenAPI для Drupal 7

Енто быстрый и грязный порт vk_openapi под семерку.

https://github.com/orangeudav/vk_openapi7

Источник: http://www.drupal.ru/node/77262

SWEB. Скрипт импорта базы для друпала.

Суть проблемы – в /etc/my.cnf прописано init-connetc=”SET NAMES cp1251″

Для тех, кто не вкурсе – друпал делает SET NAMES UTF8

Соответственно если просто попытаться сделать mysqldump – то получим UTF8 символы интрепетерированые в cp1251. Восстановлению такая база не подлежит.

Использование ключей –default-character-set, –no-set-names , –set-charset ни к чему не приводят.
Так как сервер после инициации соединения, переключает кодировку на cp1251.

С sxd проблемы – у него не получается сделать дамп. В причина не смог разобраться. Возможно лимит памяти.
Дамп, что был предоставлен тех поддержкой был к сожалению тоже в двойной конвертации! И аналогично не готовый к восстановлению.

Способ вытянуть базу в таком случае приложенный скрипт.

Инструкция по применению:

1) зайти по SSH – залить скрипт, прописать в него нужные данные

2) вызвать командой php script.php > dump.sql

Возможные проблемы: если у вас большая база.. то вы увидите сообщение killed!
В таком случае надо подправитьс крипт на то, чтоб делать дамп каждой таблицы отдельно – это дополнительный параметр в строке:
backup_tables(’localhost’,'username’,'password’,'dbname’,'TABLE_NAME’);
TABLE_NAME – заменить на имя таблицы.

Надеюсь это кому-то поможет если возникнет подобная проблема экспорта базы данных.

Прикрепленный файл Размер sweb-dump.php_.txt 1.23 кб

Источник: http://www.drupal.ru/node/77101

Доклад Рамиля Кинзябулатова «Разработка интернет магазина на Drupal 7 и 1С»

Собственно ссылка на описание
По многочисленным просьбам выкладываю подробное описание моего доклада с картинками.

Источник: http://www.drupal.ru/node/76904

Стартовал новый этап семинаров «1С-Битрикс» об эффективности командной работы и грамотном управлении сайтом

«1С-Битрикс» продолжает хорошую традицию проведения бесплатных семинаров, на которых специалисты компании рассказывают о преимуществах командной работы и возможностях развития бизнеса в сети Интернет.

Источник: http://www.1c-bitrix.ru/about/life/news/400457/

Стартовал новый этап семинаров «1С-Битрикс» об эффективности командной работы и грамотном управлении сайтом

«1С-Битрикс» продолжает хорошую традицию проведения бесплатных семинаров, на которых специалисты компании рассказывают о преимуществах командной работы и возможностях развития бизнеса в сети Интернет.

Источник: http://www.1c-bitrix-ua.com/about/life/news/400457/

Стартовал новый этап семинаров «1С-Битрикс» об эффективности командной работы и грамотном управлении сайтом

«1С-Битрикс» продолжает хорошую традицию проведения бесплатных семинаров, на которых специалисты компании рассказывают о преимуществах командной работы и возможностях развития бизнеса в сети Интернет.

Источник: http://www.1c-bitrix.ru/about/life/news/400457/

Модуль Яндекс.Карты 7.x

Модуль состоит из трех суб-модулей:

Яндекс.Карты API – вспомогательные функции для других модулей.
– Страница ввода API ключа.
– Функции вывода JavaScript карт.

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

Яндекс.Карты Views – плагин стиля для Views.
– Возможность выбирать откуда берутся данные (простые поля / поле Я.Карт / поле Geolocation / есть еще?).
– Можно задавать стиль выводимых меток, а также поле для заголовка и поля для содержимого балона.

Яндекс.Карты OpenLayers – дополнение к OpenLayers.
Всех интересует. Добавил опрос.

Статус: модуль еще в разработке, не устаналивать на рабочие сайты
Демо: http://ymaps.drupal.name/
Репка: https://github.com/elaman/ymaps

Спонсоры:
 alvaxet
 P.Selfin
 vitg
 mag-alliance

Для спонсоров:
R362788674404
Z560685602155
другие можно узнать у меня

Багрепорты, предложения и прочее обязательны.

Текущее состояние модуля:

- Модуль Яндекс.Карты Field еще не доделан. Для добавления меток стоит модуль  Geolocation.
- Модуль Яндекс.Карты Views вполне рабочий и вывод уже добавленных меток через Views на демо-сайте. В балуне выводится заголовок, описание и поле модуля  Fivestar

Attached poll “Нужен ли вывод Яндекс.Карт через OpenLayers?”.
Register or login to poll
Results:
Нужен: 20 голосов
Не нужен: 3 голоса
Без разницы: 9 голосов
Нельзя: 0 голосов

Источник: http://www.drupal.ru/node/76858

Компания «1С-Битрикс» вместе с АРМИТ идет к созданию цивилизованного рынка ИТ в здравоохранении

Компания «1С-Битрикс» вступила в Ассоциацию Развития Медицинских Информационных Технологий (АРМИТ), основная цель которой – обобщение опыта членов Ассоциации и координация их деятельности по созданию цивилизованного рынка медицинских информационных технологий (МИТ).

Источник: http://www.1c-bitrix-ua.com/about/life/news/400109/

Компания «1С-Битрикс» вместе с АРМИТ идет к созданию цивилизованного рынка ИТ в здравоохранении

Компания «1С-Битрикс» вступила в Ассоциацию Развития Медицинских Информационных Технологий (АРМИТ), основная цель которой – обобщение опыта членов Ассоциации и координация их деятельности по созданию цивилизованного рынка медицинских информационных технологий (МИТ).

Источник: http://www.1c-bitrix.ru/about/life/news/400109/

Модуль интеграции Drupal 7 со сторонними сервисами

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

Зачем делиться:
- для себя: чтобы структурировать код и сделать таки review
- чтобы быстрее отлавливать баги
- чтобы подсказали как лучше
- чтобы друпал стал более распространен и появлялись новые решения на этой системе

Делиться будем следующими модулями:
- Модуль интеграции друпала со сторонними сервисами (в первую очередь с яндексом)
- Модуль для отображения объекта на яндекс картах
- Модуль view_yamap для интеграции предыдущего модуля с вьювсом

Итак. Первый модуль – synapse. (Остальные чуть позже)
Это модуль сделан для наших внутренних нужд. Он нужен для того, чтобы клиенты не дергали проджектменеджеров лишними вопросами, а проджектменеджеры соответственно не дергали лишними вопросами программистов.

Поскольку делася для себя, то он так и называется “synapse”. Но по счастливой случайности такое название прекрасно совпадает с функционалом модуля, поэтому переименовывать его не будем. Википедия нам подсказывает:
Си́напс — место контакта между двумя нейронами или между нейроном и получающей сигнал эффекторной клеткой. Служит для передачи нервного импульса между двумя клетками.

Посколку внизу длинная простыня скриншетов, чтобы не томить сразу ссылки:
- модуль synapse.zip
- проект в песочнице друпал.орг

Что делает модуль:
1. Изменяет страницу добавления материала
2. Дружит сайт с гул/яндекс вебмастером
3. Добавляет на сайт яндекс-метрику
4. Отображает яндекс-карту на странице с контактами
5. Размещает информацию о компании в формате hCard
6. Позволяет быстро добавить вконтактогруппу и магазин на еквиде
7. Менять автоматически год создания сайта в подвале

По пунктам 0. Меняет значения по умолчанию

Меняет значения по умолчанию на странице добавления типа материала (admin/structure/types/add):

Чистим поле “название поля заголовка”, чтобы программисты не забывали поставить человечное “название альбома”, вместо бездушного “Title” В настройках публикации вместо галочки “на главную” ставим галочку “создавать редакции” Убираем галочку “показывать автора и дату”, т.к. в корпоративных сайтах это нужно только у “новостей” Снимаем галочку в “настройках меню” т.к. у корпоративных сайтов это нужно только у “страниц” 1. Страница добавления материала


Страница добавления материала для клиента не должна содержать “лишних” полей. Каждое лишнее поле – звонок менеджеру, поэтому:

Перемещаем меню из вертикальных табов в свернутый филдсет Включаем галочку “добавить в меню”, чтобы все “страницы” гарантировано попадали в меню Есть возможность выставить родительский пункт меню по умолчанию. Полезно при использовании на сайте горизонтального меню, т.к. (смотрим предыдущий пункт) все “страницы” у нас по умолчанию попадают сразу в меню, и оно может стать шире, чем предусмотрено дизайном. Прячем лишние для пользователя поля: вес меню, родительский пункт меню, информация о редакции Прячем поля “выбор формата ввода” для “body”.

Всё это естественно регулируется на странице настроек

2. гугл/яндекс вебмастер

Менеджер проекта (или клиент) может сам быстро добавить сайт в гугл/яндекс вебмастер, без обращения к программису

3. Яндекс-метрика

Менеджер проекта (или клиент) может добавить на сайт яндекс-метрику не обращаясь к программисту. При желании можно отобразить информер (картинка с кол-вом посетителей) – блок, который можно перетащить например в подвал. Для гугланалитика есть отдельный  модуль http://drupal.org/project/google_analytics

4.Контакты с яндекс-картой

Менеджер проекта (или клиент) может отобразить на странице контактов яндекс-карту с отметкой о местоположении организации не обращаясь к программисту.

5. hCard

hCard – это микроформат, который позволяет рассказать роботам о своей орагнизации. Его поддерживает яндекс, и обещает использовать эту информацию в яндекс-справочнике. Блок с этой информацией удобно разместить в подвале. Если заполнены координаты в настройках карты, то они также попадают в микроформат. Соотвественно если заполнено название организации, то оно отображается при клике на метку карты.
Сначала результат

Потом настройки

6. “еквид” и “vk_group”

Вкладочка “прочее” позволяет быстро добавить на сайт магазин “еквид” и “блок с группой вконтакте”

7. Модуль делает блок “копирайты”.

Модуль делает блок “копирайты” Данные для блока берет из названия орагинзции в hCard и поля “Year From” вкладки “прочее”. Результат полчаем в следующем в формате:
©2012 — %Название%
или
2011 — 2012 © %Название% (Если наступит следующий год).
© – ссылка на страницу логина (user) чтобы не уродовать сайт формой логина, и не заставлять пользователя вбивать “специальный” адрес в командную строку

Прикрепленный файл Размер Так выглядит добавление страницы для пользователя 27.12 кб Настройки полей для node_add 19.36 кб Добавление в вебмастер – настройки 19.17 кб Яндекс метрика – настройки 20.92 кб Яндекс карта – настройки 100.7 кб hcard – результат 6.64 кб hcard – настройки 64.01 кб Другие настройки 18.44 кб synapse.zip – модуль 10.95 кб

Источник: http://www.drupal.ru/node/76726

jQuery Mobile DLE Template

Шаблон cозданный при помощи jQuery Mobile. Поддерживает Ajax навигацию, выполнен в темных тонах.

Источник: http://dle-news.ru/templates/1474-jquery-mobile-dle-template.html

Online v0.1 Alpha

Модуль Online позволяет выводить на вашем сайте блок с информацией о пользователях сайта, роботах, гостях. В данном блоке вы сможете увидеть IP адрес, Proxy, страну, город, ОС, браузер, группу пользователя, последний визит на сайт, местонахождение пользователя или поискового робота.

Источник: http://dle-news.ru/modules/1473-online-v01-alpha.html

DrupalCafe №1 в Новосибирске


В Новосибирске состоится первое DrupalCafe.
Ждем всех желающих выступить с докладом и поучаствовать в обсуждении актуальных тем.
1.Тема доклада: “Семейство panels”, докладчик: Антон Галицын
2.Тема доклада: “Учетная система для Drupal”, докладчик: Павел Прищепа
3.Тема доклада: “Сравнение различных CMS таких как: Drupal, Bitrix и Netcat”, докладчик: Сорокин Андрей
4.Тема доклада: “Services”, докладчик: Роман Чижиков
5.Тема доклада: “Что могут Views”, докладчик Валуев Вадим
6.Тема доклада: “Размышления о Drupal-проектах”, докладчик Кирилл Финарти

Предварительная обязательная регистрация
г.Новосибирск, Академгородок, ул. Инженерная 20, Технопарк, конференцзал на 3 этаже
Начало: 25 февраля в 12:00
Окончание: 25 февраля в 15:00
Помощь в подготовке докладов Роман Чижиков: skype: roman.chizhikov
Организационные вопросы: Павел Прищепа: skype: prischepa.p
info@drupalsib.ru
тел.офиса (383) 233-27-00

Attached poll “Придете ли вы на первое DrupalCafe в Новосибирске?”.
Register or login to poll
Results:
да: 8 голосов
нет: 8 голосов

Источник: http://www.drupal.ru/node/76619

«1С-Бирикс: Корпоративный портал» для ОАО ПКП «Меридиан»

ПКП «Меридиан» является крупнейшим рыбоперерабатывающим предприятием Москвы, поэтому для улучшения коммуникаций внутри компании и оптимизации внутренних бизнес-процессов возникла необходимость в создании современного корпоративного портала.

Источник: http://www.1c-bitrix-ua.com/about/life/news/398033/

«1С-Бирикс: Корпоративный портал» для ОАО ПКП «Меридиан»

ПКП «Меридиан» является крупнейшим рыбоперерабатывающим предприятием Москвы, поэтому для улучшения коммуникаций внутри компании и оптимизации внутренних бизнес-процессов возникла необходимость в создании современного корпоративного портала.

Источник: http://www.1c-bitrix.ru/about/life/news/398033/

Новинки в каталоге веб-приложений «1С-Битрикс: Маркетплейс»

Новые веб-приложения абсолютно разные, но всех их объединяет одно – они добавляют вам и вашим пользователям удобства при работе с сайтом. Установив эти новинки, можно привлечь на свой сайт новых покупателей, а заодно и выяснить географический охват аудитории вашего сайта.

Источник: http://www.1c-bitrix.ru/about/life/news/398023/

Новинки в каталоге веб-приложений «1С-Битрикс: Маркетплейс»

Новые веб-приложения абсолютно разные, но всех их объединяет одно – они добавляют вам и вашим пользователям удобства при работе с сайтом. Установив эти новинки, можно привлечь на свой сайт новых покупателей, а заодно и выяснить географический охват аудитории вашего сайта.

Источник: http://www.1c-bitrix-ua.com/about/life/news/398023/

К вопросу о jQuery старших версий в Drupal 6

Исправления Drupal 6 для совместимости с jQuery 1.6.4 и более старших версий.

Работают все функции в том числе ajax, ahah, загрузка файлов, autocomplite, batch и tabledrag.

В common.includes нужно заменить функции для преобразования в формат json:

/** * Converts a PHP variable into its Javascript equivalent. * * We use HTML-safe strings, i.e. with <, > and & escaped. */ function drupal_to_js($var) { switch (gettype($var)) { case 'boolean': return $var ? 'true' : 'false'; // Lowercase necessary! case 'integer': case 'double': return $var; case 'resource': case 'string': /* Patch ++ */   // Always use Unicode escape sequences (\u0022) over JSON escape // sequences (\") to prevent browsers interpreting these as // special characters. $replace_pairs = array( // ", \ and U+0000 - U+001F must be escaped according to RFC 4627. '\\' => '\u005c', '"' => '\u0022', "\x00" => '\u0000', "\x01" => '\u0001', "\x02" => '\u0002', "\x03" => '\u0003', "\x04" => '\u0004', "\x05" => '\u0005', "\x06" => '\u0006', "\x07" => '\u0007', "\x08" => '\u0008', "\x09" => '\u0009', "\x0a" => '\u000a', "\x0b" => '\u000b', "\x0c" => '\u000c', "\x0d" => '\u000d', "\x0e" => '\u000e', "\x0f" => '\u000f', "\x10" => '\u0010', "\x11" => '\u0011', "\x12" => '\u0012', "\x13" => '\u0013', "\x14" => '\u0014', "\x15" => '\u0015', "\x16" => '\u0016', "\x17" => '\u0017', "\x18" => '\u0018', "\x19" => '\u0019', "\x1a" => '\u001a', "\x1b" => '\u001b', "\x1c" => '\u001c', "\x1d" => '\u001d', "\x1e" => '\u001e', "\x1f" => '\u001f', // Prevent browsers from interpreting these as as special. "'" => '\u0027', '<' => '\u003c', '>' => '\u003e', '&' => '\u0026', // Prevent browsers from interpreting the solidus as special and // non-compliant JSON parsers from interpreting // as a comment. '/' => '\u002f', // While these are allowed unescaped according to ECMA-262, section // 15.12.2, they cause problems in some JSON parser. "\xe2\x80\xa8" => '\u2028', // U+2028, Line Separator. "\xe2\x80\xa9" => '\u2029', // U+2029, Paragraph Separator. );   return '"'. strtr($var, $replace_pairs) .'"';   case 'array': // Arrays in JSON can't be associative. If the array is empty or if it // has sequential whole number keys starting with 0, it's not associative // so we can go ahead and convert it as an array. if (empty ($var) || array_keys($var) === range(0, sizeof($var) - 1)) { $output = array(); foreach ($var as $v) { $output[] = drupal_to_js($v); } return '[ '. implode(', ', $output) .' ]'; } // Otherwise, fall through to convert the array as an object. case 'object': $output = array(); foreach ($var as $k => $v) { $output[] = drupal_to_js(strval($k)) .': '. drupal_to_js($v); } return '{ '. implode(', ', $output) .' }'; default: return 'null'; } }   /** * Return data in JSON format. * * This function should be used for JavaScript callback functions returning * data in JSON format. It sets the header for JavaScript output. * * @param $var * (optional) If set, the variable will be converted to JSON and output. */ function drupal_json($var = NULL) { // We are returning JavaScript, so tell the browser.     drupal_set_header('Content-Type: application/json; charset=utf-8');   if (isset($var)) { echo drupal_to_js($var); } }

В атаче исправленные JS файлы из папки misc.

Что может произойти: некоторые написанные старым языком модули могут перестать работать. По своему опыту могу сказать, что все исправляется достаточно просто и все модули в основном написаны совместимо.

p.s.: если активно перебираете DOM, то вместо указателя на селектор $(’selector’) в скриптах можно использовать $.shell.find(’selector’), который работает в области видимости только document без учета window, что несколько быстрее.( зачем так? затем что всякие дополнительные скрипты типа гуглпоиска, метрики, других решений, которые бомбят в документ фрейемы и прочие посторонние объекты могут реально раздувать поле выборки )

Прикрепленный файл Размер drupal_javascripts.zip 31.31 кб

Источник: http://www.drupal.ru/node/76592

Форум – LogicBoard (DLE Edition) 2.2

LogicBoard (DLE Edition) – это модуль для создания полноценного форума на сайте под управлением CMS DataLife Engine. Основное отличие модуля от движка форума в том, что модуль использует общую базу данных пользователей и тесно интегрирован с движком DLE.

Источник: http://dle-news.ru/modules/1472-forum-logicboard-dle-edition-22.html

«1С-Битрикс» предлагает новые готовые решения для быстрого запуска онлайн-продаж

Компания «1С-Битрикс» выпустила три новых «коробочных» интернет-магазина на базе системы управления веб-проектами «1С-Битрикс: Управление сайтом»: «Интернет-магазин подарков и сувениров», «Интернет-магазин одежды», «Интернет-магазин детских товаров». Эти решения разработаны с учетом основных потребностей заказчиков интернет-магазинов к сайтам, включают необходимый функционал и мастера настройки.

Источник: http://www.1c-bitrix.ru/about/life/news/397619/

«1С-Битрикс» предлагает новые готовые решения для быстрого запуска онлайн-продаж

Компания «1С-Битрикс» выпустила три новых «коробочных» интернет-магазина на базе системы управления веб-проектами «1С-Битрикс: Управление сайтом»: «Интернет-магазин подарков и сувениров», «Интернет-магазин одежды», «Интернет-магазин детских товаров». Эти решения разработаны с учетом основных потребностей заказчиков интернет-магазинов к сайтам, включают необходимый функционал и мастера настройки.

Источник: http://www.1c-bitrix-ua.com/about/life/news/397619/

Модуль Яндекс.Погода для Drupal 6 и 7

Скачать модуль для Drupal 6: yandex_weather-6.x-1.1.zip
Скачать модуль для Drupal 7: yandex_weather-7.x-1.1.zip

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

Вот так выглядит блок с информером погоды от Яндекса в дефолтной теме.

В настройках блока можно:

указать город по умолчанию; разрешить/запретить отображать форму выбора города в блоке; выбирать размер информера.

Текстовые сообщения модуля написаны на английском языке и переведены на русский язык.

Если данный модуль вызовет интерес, то можно переписать его и для Drupal 7. Буду благодарен за любые конструктивные комментарии.

UPD 21.02.2012: Обновил модуль. На прошлой неделе Яндекс обновил свой сервис погоды, поэтому поломалась часть функциональности моего модуля. Сейчас исправил. А также сделал версию модуля под Drupal 7.

Скачать модуль для Drupal 6: yandex_weather-6.x-1.1.zip
Скачать модуль для Drupal 7: yandex_weather-7.x-1.1.zip

Прикрепленный файл Размер yandex_weather-6.x-1.1.zip 9.33 кб yandex_weather-7.x-1.1.zip 9.48 кб

Источник: http://www.drupal.ru/node/76316

Новые веб-приложения в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/395103/

Новые веб-приложения в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/395103/

В 2011 году компания «1С-Битрикс» увеличила выручку на 40%

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

Источник: http://www.1c-bitrix.ru/about/life/news/394457/

В 2011 году компания «1С-Битрикс» увеличила выручку на 40%

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/394457/

Модуль от Smscoin – “Модуль на основе пополнения баланса”

Модуль позволяет пополнять баланс кредитами посредством отправки смс сообщения. Кредиты могут быть расходованы на переход в VIP группу на срок который вы укажите. А также на открытие скрытого вами контента. Стоимость перехода в группу VIP и стоимость открытия контента вы определяете сами. Вы можете так же реализовать расход баланса для других сервисов вашего сайта.

Источник: http://dle-news.ru/modules/1471-modul-ot-smscoin-modul-na-osnove-popolneniya-balansa.html

DrupalConf 2012 – дата проведения

Всем привет!

Мы собираемся провести следующий DrupalConf 25-26 мая 2012 в Москве.

Но вот вопрос(просим расшифровать свой голос в комментариях):

Attached poll “какой формат будет для всех удобней ?”.
Register or login to poll
Results:
1 день – 2 потока – суббота (26 мая): 34 голоса
2 дня – 1 поток – пятница, суббота (25-26 мая): 35 голосов

Источник: http://www.drupal.ru/node/75740

Дайджест новых веб-приложений в «1С-Битрикс: Маркетплейс»

Компания «1С-Битрикс» сообщает о новых интересных веб-приложениях, размещенных в каталоге Маркетплейс, которые вы можете установить и использовать на ваших интернет-проектах.

Источник: http://www.1c-bitrix.ru/about/life/news/390903/

Лидеры продаж «1С-Битрикс» за 2011 год

26-27 января 2012 года прошла ежегодная конференция «1С-Битрикс», в которой приняли участие представители компаний-партнеров из России и других стран. Лидером продаж 2011 года стал веб-интегратор FusioN, которому вручили главный приз – поездку на двоих в город, где рождаются мечты, Лас-Вегас. Второе и третье место в этой номинации заняли компании Ай Ти Констракт и it-in соответственно и были награждены сертификатами на прохождение бизнес-обучения.

Источник: http://www.1c-bitrix.ru/about/life/news/390915/

Лидеры продаж «1С-Битрикс» за 2011 год

26-27 января 2012 года прошла ежегодная конференция «1С-Битрикс», в которой приняли участие представители компаний-партнеров из России и других стран. Лидером продаж 2011 года стал веб-интегратор FusioN, которому вручили главный приз – поездку на двоих в город, где рождаются мечты, Лас-Вегас. Второе и третье место в этой номинации заняли компании Ай Ти Констракт и it-in соответственно и были награждены сертификатами на прохождение бизнес-обучения.

Источник: http://www.1c-bitrix-ua.com/about/life/news/390915/

Дайджест новых веб-приложений в «1С-Битрикс: Маркетплейс»

Компания «1С-Битрикс» сообщает о новых интересных веб-приложениях, размещенных в каталоге Маркетплейс, которые вы можете установить и использовать на ваших интернет-проектах.

Источник: http://www.1c-bitrix-ua.com/about/life/news/390903/

Новый сайт SAVAGE создан на платформе «1С-Битрикс: Управление сайтом»

Известный российский бренд SAVAGE запустил обновленную версию своего сайта на основе «1С-Битрикс: Управление сайтом». Руководство компании приняло решение существенно расширить функционал сайта, сделать его современнее и удобнее, а также добавить наглядности представляемым моделям и наладить постоянную обратную связь с покупателями, добавив на сайт функцию отзывов и предложений.  

Источник: http://www.1c-bitrix.ru/about/life/news/390000/

Новый сайт SAVAGE создан на платформе «1С-Битрикс: Управление сайтом»

Известный российский бренд SAVAGE запустил обновленную версию своего сайта на основе «1С-Битрикс: Управление сайтом». Руководство компании приняло решение существенно расширить функционал сайта, сделать его современнее и удобнее, а также добавить наглядности представляемым моделям и наладить постоянную обратную связь с покупателями, добавив на сайт функцию отзывов и предложений.  

Источник: http://www.1c-bitrix-ua.com/about/life/news/390000/

Результаты встречи 22.12.2011 – ассоциация

Всем привет!

22 декабря 2011 года произошла встречи инициативной группы по созданию Российской Друпал ассоциации. От сообщества присутствовали: kostin, gagaga, axel, Даша Богуцкая, Андрей Постников и Паньков Артем.

Итак, промежуточные итоги встречи:
1. Маркетинг.
Маркетинг признал одним из важнейших направлений деятельности Ассоциации. На данном промежуточном этапе приоритетными задачами стали:
- участие Ассоциации в круглых столах, конференциях, выставках;
- увеличение числа публикаций в оффлайн журналах, статей, блогов и мнений экспертов;
- интенсивное освещения Drupal в смежных отраслях, а не на ресурсах, связанных с Drupal;
- создание промо-ролика о Drupal;
- разработку презентационных материалов;
- освещение лучших русских проектов на Drupal;
- привлечение новичков к Drupal;

2. Вопросы требующие дальнейшей проработки и обсуждения:
- сертификация специалистов и подбор персонала Ассоциацией;
- доработка сборок;
- консалтинг.

3. Организационно правовая форма Друпал Ассоциации.
Вопрос ОПФ будет прорабатываться в части целесообразности регистрации юридического лицо со сложной организационно-правовой формой(по сути, это создаст нагрузку на бухгалтерию, в том числе пересылку бумажных документов, как минимум 15 000*12 = 180 000, что в условиях неясности финансирования вызывает вопросы). Какое-то время мы еще будем консультироваться с юристами.
Вопрос, как я понимаю, больной и актуальный для многих. Мы думаем над тем, как принять взвешенное решение, которое устроит всех.

4. С Drupal.ru будет осуществляться взаимодействие и сотрудничество в рамках маркетинговых вопросов. Общее мнение состоит в том, что это разные ресурсы.

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

Источник: http://www.drupal.ru/node/75147

Inner poll для Drupal 7. Прикрепляйте опросы к любому документу ;)

День добрый.

Портировал Inner poll для Drupal 7, для моего любимого www.drupal.ru. Прикрепляйте опросы к любому документу .

При портировании кое-где немного изменил логику и вывел количество воздержавшихся.
Поля в БД совместимы с версией для Drupal 6, только добавились новые индексы.
Перевод модуля содержится в архиве модуля.

Ищу тех кто поможет разместить модуль на drupal.org.

Особенности модуля

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

Пояснение к пунктам 5 и 6. Они нужны для того, чтобы авторы не вносили кардинальных изменений в опрос тогда, когда другие юзеры уже отдали в них свои голоса. Например, был опрос “Любите ли вы клубнику”, на который получены ответы “Да” — 95%, “Нет” — 5%, а затем ушлый автор сменил вопрос на “Смотрите ли вы порнографию”.

Примечания

Не стал прикручивать кэш, так как в кэш можно класть всю страницу сторонними средствами при необходимости (обработка AJAX живёт на своих URL). Не реализован файл тестов, если кто напишет, буду благодарен. Отсутствует шаблон вывода контента так как количество выводимых данных мало и многое можно темизировать с помощью *.css.

Загрузка

Ссылка: Inner poll для Drupal 7.

Источник: http://www.drupal.ru/node/74900

Веб-приложения для корпоративных порталов в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix.ru/about/life/news/384652/

Веб-приложения для корпоративных порталов в «1С-Битрикс: Маркетплейс»

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

Источник: http://www.1c-bitrix-ua.com/about/life/news/384652/

Встреча по поддержке и продвижению Яндекс-сервисов в Drupal

Продолжение комментария http://www.drupal.ru/node/74274?page=1#comment-435564
Компания Яндекс заинтересована в продвижении и повышении уровня интеграции своих сервисов с Drupal.
Предлагается провести встречу по вопросам разработки, встреча ориентирована преимущественно на разработчиков.
Яндекс интересует:

Время встречи – 24 января, вторник, 19 часов. Будет забронирована переговорная комната. Встреча будет проходить в офисе Яндекса Количество участников (сколько будет людей очно на встрече, сколько будет удаленно). Товарищи, желающие присутствовать удалённо – отпишитесь, пожалуйста, в комментариях.

Так же я считаю, что будет нелишним подготовить вопросы и предложения по использованию API

Очники:
http://www.drupal.ru/username/rxb
(?) http://www.drupal.ru/username/valeratal
(?) http://www.drupal.ru/username/marygold
http://www.drupal.ru/username/stalker-g2
+1 человек с Артёмом
http://www.drupal.ru/username/irbis
http://www.drupal.ru/username/axel
Те, кто будет приходить лично приходят на главный вход в офис Яндекса и говорят, что они на встречу с Друпал сообщестом. Гостей будет встречать Вадим Францев, руководитель группы маркетинга бизнес-решений, с 19-00 до 19-10 на главном ресепшене. Опаздавшие либо к секретарям обращаются и их проводят, либо звонят по телефону +7 495 739-70-00, добавочный 4234.
Переговорка “7.Холмов”

Илья Азаров
http://www.drupal.ru/username/byuro-piyavok

Заочники:
http://www.drupal.ru/username/gagaga
http://www.drupal.ru/username/fortis
http://www.drupal.ru/user/orb
http://www.drupal.ru/username/s-f
http://www.drupal.ru/username/andypost-drupalorg
http://www.drupal.ru/username/validoll
http://www.drupal.ru/username/konstantinkomelin-drupalorg
http://www.drupal.ru/username/restyler
http://www.drupal.ru/username/dd-85
http://www.drupal.ru/username/gde
http://www.drupal.ru/username/enemy
http://www.drupal.ru/username/scotty
http://www.drupal.ru/username/yexel
http://www.drupal.ru/username/cyber
http://www.drupal.ru/username/marygold
http://www.drupal.ru/username/seaji
http://www.drupal.ru/username/higor1968
http://www.drupal.ru/username/plazik
http://www.drupal.ru/username/aleks-84
http://www.drupal.ru/username/lomalkin
http://www.drupal.ru/username/insime
http://www.drupal.ru/username/eagle
http://www.drupal.ru/username/direqtor
http://www.drupal.ru/username/forest-run
http://www.drupal.ru/username/arcadaisb
http://www.drupal.ru/username/glu2006
http://www.drupal.ru/username/splash
Те, кто участвуют удаленно: в 19-10 по МСК должны зайти по адресу http://yandex.adobeconnect.com/drupal/ – здесь будет трансляция, а также чат (вопросы/ответы).

Хотят запись:
http://www.drupal.ru/username/enemy
http://www.drupal.ru/username/softovick
http://www.drupal.ru/username/mak-vardugin
http://www.drupal.ru/username/andruxa
http://www.drupal.ru/username/orion76
http://www.drupal.ru/username/saltan
http://www.drupal.ru/username/6run0

Будут вноситься коррективы

Источник: http://www.drupal.ru/node/74730

DrupalCafé №3 в Харькове – 26.01.2012


В четверг, 26 января, в 19:00, в Харькове пройдет третье по счету DrupalCafe.
Место проведения – по прежнему Выставочный центр «РАДМИР ЭКСПОХОЛЛ», по адресу ул. Академика Павлова 271 (м. Академика Павлова).

Темы докладов:
1. “Уровень абстракции баз данных и ее преимущества” (Бабченко Виталий)
“Задачи прототипов и их решения.” (Андрей Кошкин)
Краткий обзор модулей и их конфигурации описывающий создание функционального прототипа E-comerce и SocialComunity систем

2. “Принципы безопасной разработки сайтов на Drupal” (Иванченко Александр)

В процессе доклада будет рассмотрено:
-Безопасные принципы работы с БД средствами Drupal
-Принципы работы с пользователями и пользовательскими данными
-Как избежать XSS и CSRF атак
-Общие рекомендации для безопасной разработки

3. “Темизация Drupal 7″ (Литвиненко Сергей)

Архитектурные и принципиальне отличия тем для Drupal 7 от Drupal 6. Краткий обзор RDFa и работы с рендер массивами.

Участие бесплатное, в программе как обычно кофе+плюшки.
Желательно предварительная регистрация, всем желающим – отпишите в комментарии или в контакты ниже.
https://docs.google.com/spreadsheet/viewform?formkey=dERVTEhMVEdZMVdIVlk…

По всем вопросам можно обращаться:
+38(099)3525316 – Алексей Гайдабура, gaydabura@gmail.com skype: alexey.gaydabura
+38(067)2802207 – Иван Мосев, i.k.mosev@gmail.com, skype: i.k.mosev
Спонсор – WDG (http://wdg-company.com/)

Источник: http://www.drupal.ru/node/74622

Видео и слайды с DrupalCamp Donetsk 2011

Мы наконец-то выложили обещанное и долгожданное видео докладов с DrupalCamp! Спасибо Петру Козаченко, Владимиру Колосу и Александру Даниленко за съемку и обработку. Результат их совместной работы вы можете увидеть здесь http://www.youtube.com/user/DrupalCampDonetsk.

Мы также выложили слайды презентаций сюда http://slideshare.net/DrupalCampDN, А еще, мы прикрепили эти видео и слайды к темам докладов на нашем сайте: http://donetsk.drupal.ua/ru/program/session-schedule. Пожалуйста, оставляйте ваши отзывы!

Источник: http://www.drupal.ru/node/74516

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

Всех со “старым” Новым Годом

Мы все такие разные, но давайте быть терпимее, добрее и лучше

А у Вас уже наступил? )))

p.s.: и всё таки Drupal рулит!

Источник: http://www.drupal.ru/node/74510

Новый PDF журнал о Друпале!

Друзья! Наша инициативная группа рада объявить о выходе в свет нового, открытого, русскоязычного электронного журнала – Drup’n’Roll!
На его страницах вы сможете найти много полезной информации для разработчиков и администраторов сайтов и прочих веб-приложений, созданных на базе нашей любимой CMF Drupal.

В первом номере вы найдёте статьи об особенностях построения процессов разработки вместе с модулем Features и инструментом Drush, прочитаете материалы об относительно новом течении в создании графических тем — Responsive design, сможете
ознакомиться с последними новостями из жизни Drupal-сообщества и мероприятиями по всему миру.

Для чего мы это делаем? Самая главная цель, которую мы ставим перед собой — популяризация CMF Drupal среди
разработчиков и потребителей их услуг. Будем учиться и работать вместе!

http://drupnroll.ru/

Прошу модераторов прикрепить этот пост на главной

Источник: http://www.drupal.ru/node/74474

Яндекс сервисы в одном проекте

Предлагаю обсудить возможность объединить все Яндекс сервисы в одном проекте. На текущий момент на д.о. есть несколько различных модулей для интеграции с яндекс сервисами.

Поиск по сайту дал следующие результаты:

 Яндекс.маркет — 6.x.  Яндекс.маркет — 6.x и 7.x(dev). Яндекс.маркет — в песочнице.  Яндекс.видео — 7.x(dev) new!  Яндекс.метрика — 6.x и 7.x. Яндекс.метрика — в песочнице. Яндекс.вакансии — обсуждается.  Яндекс.новости — 6.x(dev) и 7.x(dev).  Яндекс.карты — 6.x(dev).  Яндекс.деньги — 5.x платёжный шлюз для уберкарт. Яндекс.сервер — в песочнице. Яндекс.поделиться — в песочнице. Яндекс.спеллер — в песочнице. Яндекс.почта — обсуждается. Яндекс.карты — почти готов. Яндекс.карты — во вложении.  Site verification — 6.x и 7.x. Яндекс.маркет — во вложении. Быстрый заказ — обсуждается. Яндекс.погода — во вложении.

Если что то забыл, поправьте.

Вот мои причины, для чтобы собрать все сервисы в один проект:

На данный момент большинство из этих модулей находятся «в стадии разработки», а многие попросту брошены без особых шансов получить стабильный релиз для D6 и D7. Я думаю ситуация измениться, если у проекта будет несколько разработчиков. Это поможет устранить дублирования проектов. Например, в приведённом списке представлено сразу 4 модуля для интеграции с Яндекс.маркет. Думаю, лучше всё таки будет объединить усилия. Помощь новым разработчикам. Несколько модулей находятся в песочницах из-за того, что некому сделать review кода. На д.о. яндекс мало кому интересен… Для многих яндекс сервисов интеграция с Друпалом полностью отсутствует. В том числе для самого главного, на мой взгляд сервиса — Яндекс.xml. Для одного общего проекта, легче найти спонсоров.

Attached poll “Нужно ли объединять все яндекс.модули в один проект?”.
Register or login to poll
Results:
Да: 43 голоса
Нет: 27 голосов

Источник: http://www.drupal.ru/node/74274

Вот такая штукенция получилась. Radios Select для Drupal 7.

История из разряда “Новая жизнь старых вещей”. Точнее – новая “шуба” для привычного элемента форм radios. Для тех случаев, когда элемент radios строится из модуля.

Собственно, началось всё с того, что искал способ отобразить в форме модуля некую таблицу символов с возможностью выбора любого одного символа. Символы должны быть достаточно крупные (шрифт где-то 18-20px). Для начала попытался приспособить обычный select, но не понравилось: во-первых, список слишком длинный и выбирать неудобно, а во-вторых, добиться единообразного отображения (размер шрифта, padding, выравнивание и т.д.) в разных браузерах оказалось совсем непросто.

В общем, нужно было искать более компактное решение, при котором таблица была бы именно таблицей. В процессе разных тестов случайно обнаружил, что метки (label) для элемента radios в большинстве браузеров обрабатывают клики как и родительский (связанный с меткой) сам radios-control (кружочек, по которому мы тыкаем мышкой). То есть – по клику на метку элемент устанавливается в состояние checked, как если б мы кликали на сам кружочек. Не бог весть какое открытие, но беглый поиск в гугле аналогичных развитых решений с использованием меток ничего не дал. И я приступил к работе.

После ряда тычков в неверных направлениях было выведено более-менее унифицированное и кроссбраузерное решение (CSS + jQuery). Я его назвал Radios Select. Вот оно, со скромной гордостью и удовлетворением представляю своё детище:

А вот что происходит по клику на элементе:

Код, формирующий вывод:

<?php
$values = preg_split('/[\s,\.]+/', ucwords('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sodales congue velit. Duis commodo interdum ipsum.'));

$form['rs_example_1']['radios_select_1'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select word:'),
  '#default_value' => 1,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#description'   => t('Word to use in form.'),
);
?>

Собственно, Radios Select можно использовать не только, как таблицу символов, а для выбора любого значения: строки, числа. Родилась идея сделать модуль-хук, который бы темизировал элементы radios как Radios Select, если у элементов установлен соответствующий параметр, а иначе – выводил бы стандартный radios. В процессе работы над модулем элемент Radios Select “оброс” рядом параметров, позволяющих кастомизировать вывод этого псевдо-элемента (это действительно скорее псевдо-элемент, поскольку по факту строится обычный radios и последующая обработка в submit’е – типичная для radios).

Например, можно изменить свойства шрифта элемента:


<?php
$values = preg_split('/[\s,\.]+/', ucwords('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sodales congue velit. Duis commodo interdum ipsum.'));

$form['rs_example_2']['radios_select_2'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select word:'),
  '#default_value' => 2,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'label'         => array(
      'font'         => 'Times New Roman',  // this sets font family (same as in CSS way)
      'font_size'    => 1.4,              // this sets font size (in "units" units)
      'font_color'   => '#339933',        // this sets font color (same as in CSS way)
      'line_height'  => 2,                // this sets line height (in "units" units)
      'units'        => 'em',             // can be em or px (default: px)
    ),
  ),
  '#description'   => t('Word to use in form.'),
);
?>

А вот и вариант для искомой таблицы символов:


<?php
$values = array();
for ($i = 33; $i < 256; $i++) {
  $values[] = '&#' . $i . ';';
}
$values = array_combine($values, $values);

// Replace Soft Hyphen symbol (&#173;) by non-breaking space
// (this symbol produces row break in Firefox and Opera)
$values['&#173;'] = '&nbsp;';

$form['rs_example_3']['radios_select_3'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select symbol:'),
  '#default_value' => '&#169;',
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'label'          => array(
      'width'          => 2,      // sets label width (in "units" units)
      'height'         => 2,      // sets label height (in "units" units)
      'line_height'    => 2,
      'padding_x'      => '3px',  // horizontal padding (we use px instead of units)
      'padding_y'      => '3px',  // vertical padding (we use px instead of units)
      'units'          => 'em',
    ),
  ),
  '#description'   => t('Symbol to use in form.'),
);
?>

Можно “подкрасить” оформление элемента (выбирается также светлая или тёмная стрелка):


<?php
$values = array_merge(range('A', 'Z'), range('a', 'z'));

$form['rs_example_4']['radios_select_4_1'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select character:'),
  '#default_value' => 2,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'element'        => array(
      'frame_color'    => '#d4d0c8', // this sets frame color
      'dark_arrow'     => TRUE,      // this sets dark arrow for this element
     ),
    'label'          => array(
      'width'          => 2,
      'height'         => 2,
      'padding_x'      => '3px',
      'padding_y'      => '3px',
      'units'          => 'em',
     ),
   ),
  '#description'   => t('Character to use in form.'),
);
?>

Или убрать фон выбранного элемента и объединить с селектором (так называемый hollow-режим):


<?php
$values = array_merge(range('A', 'Z'), range('a', 'z'));

$form['rs_example_4']['radios_select_4_2'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select character:'),
  '#default_value' => 2,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'element'         => array(
      'hollow'          => TRUE,   // this sets hollow mode
     ),
    'label'         => array(
      'width'           => 2,
      'height'          => 2,
      'padding_x'       => '3px',
      'padding_y'       => '3px',
      'units'           => 'em',
     ),
   ),
  '#description'   => t('Character to use in form.'),
);
?>

А можно и вставить картинки в селектор, причём выровнять по желанию – либо по верху (по умолчанию), либо по низу (как в этом примере):


<?php
$module_path = url(drupal_get_path('module', 'radios_select'));
$images_path = $module_path . '/examples/images/';

$values = array(
  '<img src="' . $images_path . 'image1.png" /><br />Some image 1',
  '<img src="' . $images_path . 'image2.png" /><br />Some image 2',
  '<img src="' . $images_path . 'image3.png" /><br />Some image 3',
  '<img src="' . $images_path . 'image1.png" /><br />Some image 4',
  '<img src="' . $images_path . 'image2.png" /><br />Some image 5',
  '<img src="' . $images_path . 'image3.png" /><br />Some image 6',
);

$form['rs_example_5']['radios_select_5_1'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select image:'),
  '#default_value' => 0,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'label'         => array(
      'valign'        => 'bottom', // this sets vertical alignment of labels to bottom
      'font_size'     => 12,
      'line_height'   => 14,
      'padding_x'     => 4,
      'padding_y'     => 4,
     ),
   ),
  '#description'   => t('Select horizontal or vertical image.'),
);
?>

Другой вариант с картинками – выравнивание “в ряд” с текстом метки (можно также задать произвольный vertical-align для изображения, как обычно в CSS, здесь, в примере – просто смещение от базовой линии):


<?php
$module_path = url(drupal_get_path('module', 'radios_select'));
$images_path = $module_path . '/examples/images/';

$values = array(
  '<img src="' . $images_path . 'ru.png" /> Russian Federation',
  '<img src="' . $images_path . 'us.png" /> USA',
  '<img src="' . $images_path . 'ca.png" /> Canada',
  '<img src="' . $images_path . 'fr.png" /> France',
  '<img src="' . $images_path . 'de.png" /> Germany',
  '<img src="' . $images_path . 'it.png" /> Italy',
  '<img src="' . $images_path . 'gb.png" /> United Kingdom',
  '<img src="' . $images_path . 'gr.png" /> Greece',
  '<img src="' . $images_path . 'tr.png" /> Turkey',
  '<img src="' . $images_path . 'ua.png" /> Ukraine',
  '<img src="' . $images_path . 'no.png" /> Norway',
);

$form['rs_example_5']['radios_select_5_2'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select country:'),
  '#default_value' => 0,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'label'         => array(
      'img_valign'    => '-4px',        // sets vertical alignment of images
      'nowrap'        => 'TRUE',        // disables word wrapping for text in labels
     ),
   ),
  '#description'   => t('Country from where you are.'),
);
?>

А можно упорядочить метки в колонки (любое количество колонок):

<?php
$module_path = url(drupal_get_path('module', 'radios_select'));
$images_path = $module_path . '/examples/images/';

$values = array(
  '<img src="' . $images_path . 'ru.png" /> Russian Federation',
  '<img src="' . $images_path . 'us.png" /> USA',
  '<img src="' . $images_path . 'ca.png" /> Canada',
  '<img src="' . $images_path . 'fr.png" /> France',
  '<img src="' . $images_path . 'de.png" /> Germany',
  '<img src="' . $images_path . 'it.png" /> Italy',
  '<img src="' . $images_path . 'gb.png" /> United Kingdom',
  '<img src="' . $images_path . 'gr.png" /> Greece',
  '<img src="' . $images_path . 'tr.png" /> Turkey',
  '<img src="' . $images_path . 'ua.png" /> Ukraine',
  '<img src="' . $images_path . 'no.png" /> Norway',
);

$form['rs_example_6']['radios_select_6'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select country:'),
  '#default_value' => 0,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'element'         => array(
      'columns'         => 4,       // this sets ordering by 4 columns
    ),
    'label'         => array(
      'img_valign'      => -4,      // px by default, so we can skip units
      'nowrap'          => 'TRUE',
     ),
   ),
  '#description'   => t('Country from where you are.'),
);
?>

Наконец, труъ-программисты могут полностью изменить вид Radios Select с помощью CSS (стили аттачатся “на лету”, при создании элемента):


<?php
$module_path = url(drupal_get_path('module', 'radios_select'));
$images_path = $module_path . '/examples/images/';

$values = array(
  '<img src="' . $images_path . 'ru.png" /> Russian Federation',
  '<img src="' . $images_path . 'us.png" /> USA',
  '<img src="' . $images_path . 'ca.png" /> Canada',
  '<img src="' . $images_path . 'fr.png" /> France',
  '<img src="' . $images_path . 'de.png" /> Germany',
  '<img src="' . $images_path . 'it.png" /> Italy',
  '<img src="' . $images_path . 'gb.png" /> United Kingdom',
  '<img src="' . $images_path . 'gr.png" /> Greece',
  '<img src="' . $images_path . 'tr.png" /> Turkey',
  '<img src="' . $images_path . 'ua.png" /> Ukraine',
  '<img src="' . $images_path . 'no.png" /> Norway',
);

$form['rs_example_7']['radios_select_7'] = array(
  '#type'          => 'radios',
  '#title'         => t('Select country:'),
  '#default_value' => 0,
  '#options'       => $values,
  '#radios_select' => TRUE,     // enables Radios Select for this radios element
  '#rs_attributes' => array(
    'element'         => array(
      'columns'         => 4,
      'css'             => array(
        'div.type-radios-current {background: #222 url("'. $images_path . 'custom_bg.png") bottom right no-repeat; border-color: #222 !important;}',
        'div.type-radios-current .inner {background: #a8a8a8;}',
        'div.type-radios-current label  {background: #ffc136 url("'. $images_path . 'custom_label_active.png") center center repeat-x !important; border: 1px solid #c35e22 !important; color: black;}',
        'div.rs_opened {background: #222 url("'. $images_path . 'custom_bg_active.png") bottom right no-repeat;}',
        'div.rs_opened .inner {background: none;}',
        'div.type-radios-select {background: #d0d0d0 url("'. $images_path . 'custom_select_bg.png") top center repeat-x !important; border-color: #222 !important;}',
        'div.type-radios-select label.selected {background: #ffc136 url("'. $images_path . 'custom_label_active.png") center center repeat-x !important; border: 1px solid #c35e22 !important; color: black;}',
        'div.type-radios-select label {background: #3a3a3a url("'. $images_path . 'custom_label.png") center center repeat-x !important; border: 1px solid #222 !important; color: white;}',
        'div.type-radios-select label:hover {background: #ffc136 url("'. $images_path . 'custom_label_active.png") center center repeat-x !important;}',
      ),
    ),
    'label'         => array(
      'img_valign'      => -4,
      'nowrap'          => 'TRUE',
     ),
   ),
  '#description'   => t('Country from where you are.'),
);
?>

Все эти примеры (рабочие и с исходным кодом) доступны из help’а модуля Radios Select (см. приложенный архив) по адресу: admin/help/radios_select

Internet Explorer.

В IE, как обычно, всё “не как у людей”. Начнём с того, что все “красивые” закругления в нём отсутствуют. Попытки прицепить JS-библиотеки типа PIE, curved-corner и пр. положительного результата не дали – эти надстройки ломают разметку inline-элементов.

Вторая проблема – IE единственный из браузеров, который не захотел “понимать” клики по меткам. Пришлось специально для него сделать эмуляцию клика по радиокнопке при клике на метке.

Ещё одна особенность конкретно IE6 – курсор почему-то не устанавливается в “hand” (pointer) при hover’е над метками, даже если явно указывать для него правило в CSS.

В общем, базовый функционал в IE всё же обеспечен (по крайней мере версии IE6, IE7, IE8 с Radios Select работают нормально). Но выглядит в нем всё чуть менее красиво.

Поведение при noscript.

При выключенном JS происходит следующее:

1. Скрывается контейнер выбранного (текущего) элемента – тот, который со стрелкой справа.

2. Делается видимым контейнер селектора (который содержит все элементы).

3. Становятся видимыми сами радиокнопки (слева от каждого элемента), таким образом пользователь может выбрать нужный пункт традиционным для radios образом – щёлкнув на элементе.

4. Таким образом, форматирование/оформление Radios Select в основном сохраняется, добавляются только input’ы.


Примечание: IE и здесь ведёт себя несколько отлично от других браузеров. При выключенном JS он не “признаёт” клики на вложенных в метку картинках (IMG) как клики на метке. Только если пользователь кликнул на текст метки или непосредственно на круглый элемент-радиокнопку.

Примечание: при выключенном JS input’ам присваивается свойство float: left (с тем, чтобы сохранить разметку и равные ширины при использовании колонок. Как следствие радиокнопка “уходит” с базовой линии контейнера и автоматически начинает позиционироваться от верха. Это в общем-то никак не сказывается на разных способах вывода элемента – за исключением, когда используется выравнивание по нижнему краю (как в примере с картинками выше). В этом случае кнопки будут расположены на разной высоте:

Желающие могут скачать и установить модуль. Модуль очень нуждается в тестировании под разными браузерами. Пока протестировано в GoogleChrome, Safari, Opera 11, Firefox 8, IE 6,7,8.

Если будете использовать/тестировать элемент под другими браузерами – просьба отписываться здесь о результатах (с указанием версии браузера).

Как бы и всё.

Скачать модуль Radios Select

Источник: http://www.drupal.ru/node/74267

MVC в Drupal. Внедряем Page Controller’ы.

Хочу поделиться с комьюнити модулем controller, который можно взять здесь. В чем смысл модуля?

Модуль позволяет для каждого УРЛа, который вы определяете в hook_menu() прописать действие контроллера. Для этого есть специальный новый элемент ‘action’:

<?php
/**
 * Implements hook_menu().
 */
function controller_menu() {
  $items = array();
  $items['admin/settings/controller'] = array(
    'title' => 'Controller settings',
    'action' => 'SettingsController::indexAction',
    'access arguments' => array('access administration pages'),
  );
  return $items;

?>

Здесь объявляется новый контроллер SettingsController и действие indexAction() которое будет вызывано для УРЛа ‘admin/settings/controller’.

По умолчанию контроллеры должны лежать в специальной папке controllers/. Которую можно создать в папке своего модуля. Имя файла будет таким же как и прописано в ‘action’, однако имя класса нужно дополнять префиксом, который будет равен имени модуля после применения СamelCase нотации (с первой большой буквой). Звучит сложно, чтобы понять какие префиксы добавятся для разных модулей, несколько примеров:

foo_bar станет FooBar my станет My test_my_super станет TestMySuper и т. д.

В примере выше, в хуке меню объявлен контроллер SettingsController, имя модуля controller, значит полное имя класса будет ControllerSettingsController, а имя файла SettingsController.php. Пример как все это дело работает можно найти в самом модуле.

Надеюсь, понятно описал, если есть вопросы, спрашивайте!

P.S. У темы появилось продолжение.

Источник: http://www.drupal.ru/node/74262

Урок один. Создаем модуль на Drupal. Как с Drupal создать форму и вывести данные из формы на этой или другой страници. Хук hook

Пример 1. Как с Drupal создать форму и вывести данные из формы на этой или другой страници.

————————
| Создаем форму |
————————
|
———————————————————————
| Выводим данные с помощью функции variable_get() |
———————————————————————-

Для этого:
Создаем модуль.
Для этого:

- создаем папку и называем ее по названию модуля, например urokone и сохраняем его в my_site/sites/all/modules

- в этой папке создаем в notepad++ два файла в формате utf-8 without BOM. Что такое BOM и где скачать notepad++ смотрим в википедии.

Создаем два файла в этой папке и называем их
urokone.info
urokone.module

1.1. Минимальное содержимое файла urokone.info

; $Id$ name = Urokone   description = Simple form one core = 6.x

; $Id$ //если вы будите выставлаять ваш модуль на Drupal.org то он добавит автоматически свои параметры
name = urokone // название вашего модуля
description = Simple form one //описание
core = 6.x //в нашем случае мы пишем для Drupal 6.

1.2. Минимальное содержимое файла urokone.module

Минимальное содержание этого файла, для того что бы открыть страницу с модулем (с формой), это функция меню.

<?php   function urokone_menu() { $items = array();   $items['urokone'] = array( 'page callback' => 'drupal_get_form', 'page arguments' => array('urokone_formone'), );   return $items; }

$items['urokone'] = array( ); // эта сторочка означает, что форму c названием (Form_ID) urokone_formone, которую я собираюсь вставить в этот модуль можно будет найти после активации если кликнуть на локальном сервере

127.0.0.1/my_site/urokone

Теперь активируем модуль
Для этого:
- кликните в администраривной панели на Administer -> modules
ваш новые модуль будет находится в разделе others. Кликаем чекбокс напроив нашего модуля.
У меня на локальном сервере это выглаядит так:


И кликаем на кнопку Save Configuration. Когда сделаем следующие изменения в модуле надо будет очистить кеш. Administer->Performance->Clear cashed data

2. Пишим весь модуль.

———————————–
2.1 | Создаем меню |
———————————–
|
————————————————————————-
2.2. | Создаем условия доступа для различных пользователей |
————————————————————————–
|
——————–
2.3. | Создаем help |
——————–
|
—————————————————————————-

2.4. | Создаем форму |
———————–
|
———————————————————————————————-
2.5. | Выводим содержиое, которое user вбил в форму на экран (в нашем
случае в блоке)
————————————————————————————————

2.1. Создаем меню.

Для создания меню используем hook – это функции дрюпала. Например hook
function hook_menu()
для нашего модуля мы должны измеить по названию нашего модуля на

function urokone_menu() { $items = array();   $items['urokone'] = array( 'title' => 'Как подтвердить факт отправленния ненулевых данных в форму?', 'description' => 'Urokone first form', 'page callback' => 'drupal_get_form', 'page arguments' => array('urokone_formone'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, );   return $items; }

2.2. Создаем условия доступа различных пользователей.
Используем хук hook_perm()

function urokone_perm() { return array('access urokone content', 'access administration pages'); } // function urokone_perm() 2.3. Создаем help

Используем хук hook_help()

function urokone_help($path, $arg) { $output = ''; //declare your output variable switch ($path) { case "admin/help#urokone": $output = '<p>'. t("Displays information about site") .'</p>'; break; } return $output; } // function urokone_help

Здесь можно сохранить модуль. Помните (Administrator-> modules -> Save configurations) и посмотреть появление строчки “Displays information about site” , если пойти Administer – > help -> urokone

Если на этой страницы кликнуть на urokone то увидим страницу со строкой “Displays information about site”. Мы в хуке help можем заменить эту строку на подробное описание нашего модуля.

———————————————————————————————
Теперь нам осталось
————————
| Создать форму |
————————
|
———————————————————————
| Выводим данные с помощью функции variable_get() |
———————————————————————-
———————————————————————————————-

2.4. Создаем форму

Используем функцию urokone_formone()

Например я хочу сделать такую форму:

Для этого в Drupla мы пишем функцию urokone_formone().

function urokone_formone($form_state) { $form = array();   $form['one_one'] = array( '#type' => 'checkbox', '#title' => 'if ($_REQUEST["text"]) {echo "Data was send";}', '#default_value' => variable_get('one_one', false),   );   $form['one_two'] = array( '#type' => 'checkbox', '#title' => t('if ($_REQUEST("text")) {echo "Data was send";}'), '#default_value' => variable_get('one_two', false), );   $form['one_three'] = array( '#type' => 'checkbox', '#title' => t('if {$_REQUEST["text"]} {echo "Data was send";}'), '#default_value' => variable_get('one_three', false), );       return system_settings_form($form); } // end urokone_formone

Заходим на 127.0.0.1/lesson/urokone

При этом в результате работы функции return system_settings_form($form); появляютя две кнопки “Save configuration” и “Reset to default”

2.5. Выводим содержиое, которое user вбил в форму на экран (в нашем
случае в блоке. Используем хук hook_block.

function urokone_block($op='list', $delta=0) {   if ($op == "list") { $block = array(); $block[0]["info"] = t('urokone'); return $block; } else if ($op == 'view') { switch ($delta) { case 0: $block_content = ''; $block['subject'] = 'urokone';   $one_one= variable_get('one_one', false); $one_two= variable_get('one_two', false); $one_three= variable_get('one_three', false);   if ($one_one or $one_two or $one_three) { if ($one_one) $block['content'] .= 'your answer is correct '; if ($one_two) $block['content'] .= 'your answer is not correct '; if ($one_three) $block['content'] .= 'your answer is not correct'; } break;   } return $block; } } // end urokone_block

Теперь надо активировать новый блок urokone который мы создали. Идем в Administer -> blocks.
Находим наш блок urokone в списке Disabled.

Меняю регион с “none” на другоe. Я например выбрала “Left sidebar”.
И нажимаю на кнопку внизу Save blocks.

Теперь зайдем еще раз на страницу с нащей формой 127.0.0.1/lesson/urokone и кликнми на какой нибудь чекбокс. Например на вророй чекбокс с правильным ответом.
У нас слева в блоке urokone появится сообщение о том на какой чекбокс мы кликнули.

Прикрепленный файл Размер tut1_1.png 29.72 кб tut1_2.png 24.68 кб tut1_3.png 23.3 кб tut1_4.png 47.17 кб tut1_5.png 14.56 кб tut1_6.png 33.72 кб tut1_7.png 56.37 кб tut1_8.png 40.71 кб

Источник: http://www.drupal.ru/node/74258

Урок 2. Создаем модуль на Drupal. Как с помощью хука hook_form_form _ID_ alter изменить любую форму в нашем или чужом модуле.

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

Изменить форму можно и без использования модуля. Смотрите в комметах sas@drupal.org: Как без использования модуля изменить форму.

Код двух файлов модуля uroktwo:
uroktwo.info

;$Id$ name = Uroktwo description = Tutorial Change form with form_alter core = 6.x

uroktwo.module

<?php ;$Id$ /***************************************************** * Implements hook_menu(). *******************************************************/ function uroktwo_menu() { $items = array(); $items['uroktwo'] = array( 'title' => 'What is the correct way to create MySql database? ', 'description' => 'lesson two form', 'page callback' => 'drupal_get_form', 'page arguments' => array('forma'), 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM, ); return $items; } /***************************************************** * Implements hook_perm(). *******************************************************/   function uroktwo_perm() { return array('access uroktwo content', 'access administration pages'); } // function uroktwo_perm()   /***************************************************** * Implements hook_help(). *******************************************************/   function uroktwo_help($path, $arg) { $output = ''; //declare your output variable switch ($path) { case "admin/help#uroktwo": $output = '<p>'. t("Displays information about site") .'</p>'; break; } return $output; } // function uroktwo_help   /***************************************************** * Implements function forma *******************************************************/   function forma($form_state) { $form = array();   $form['one'] = array( '#type' => 'checkbox', '#title' => t('create.databas()'), '#default_value' => variable_get('one', false), );   $form['two'] = array( '#type' => 'checkbox', '#title' => t('mysql_create_db()'), '#default_value' => variable_get('two', false), );   $form['three'] = array( '#type' => 'checkbox', '#title' => t('create_mysql()'), '#default_value' => variable_get('three', false), );   $form['four'] = array( '#type' => 'checkbox', '#title' => t('create_d()'), '#default_value' => variable_get('four', false), ); $form ['submit'] = array ( '#type' => 'submit', '#value' => t('Submit'), ); return $form; } // end forma   /***************************************************** * Implements hook_block(). *******************************************************/   function uroktwo_block($op='list', $delta=0) {   if ($op == "list") { $block = array(); $block[0]["info"] = t('uroktwo'); return $block; } else if ($op == 'view') { switch ($delta) { case 0: $block_content = ''; $block['subject'] = 'uroktwo';   $one= variable_get('one', false); $two= variable_get('two', false); $three= variable_get('three', false);   if ($one or $two or $three) { if ($one) $block['content'] .= 'your answer create.database() was incorrect '; if ($two) $block['content'] .= 'your answer mysql_create_db() was correct '; if ($three) $block['content'] .= 'your answer create_mysql_db() was incorrect'; } break;   } return $block; } } // end uroktwo_block

Для написания hook_form_FORM_ID_alter нам надо знать значение FORM_ID. Если это наш собственный модуль, то можно просто посмотреть на функцию формы.

function forma ($form_state)

forma в нашем случае и будет Form_ID, а hook будет называтся название_модуль_form_forma_alter. Для нашего модуля это будет uroktwo_form_forma_alter.

Второй способ найти Form_ID это посмотреть source code. Для этого я на локальном компьюторе открываю страницу с формой. В моем случае название сайта lesson. В хуке меню мы в этой строчке определили ($items['uroktwo'] = array()), что форму можно открыть, если набрать 127.0.0.1/lesson/uroktwo.

Откройте страницу с формой. Теперь в интернет эксплоурере идите Page -> view souce. С помощью ctrl – F ищим строчку в которой есть слово form. У меня это

То есть id = “forma”

Теперь собственно хук

<?phpfunction uroktwo_form_forma_alter(&$form,
    &$form_state) {
  $form['one']["#title"] = "I do do not know";
      
   $form['five'] = array(
  '#type' => 'checkbox', 
  '#title' => t('create_data()'),
  '#default_value' => variable_get('five', false),
);
}
?>

Получилась полностью функциональная форма, но кнопка сабмит расположенна выше нового чекбокса.

Давайте это исправим. Добавим строчку weght в хук, и у нас получится

<?phpfunction uroktwo_form_forma_alter(&$form,
    &$form_state) {
  $form['one']["#title"] = "I do do not know";
      
   $form['five'] = array(
  '#type' => 'checkbox', 
  '#title' => t('create_data()'),
  '#default_value' => variable_get('five', false),
  );
$form ['submit'] ['#weight'] = 1000;
}

?>


На этом все.
P.S. Создавать новые модули надо сначала на отдельном, выделенном для этого сайте, а потом уже переносить в реальный сайт.

Прикрепленный файл Размер tut2_1.png 35.34 кб tut2_2.png 31.79 кб tut2_3.png 20.71 кб

Источник: http://www.drupal.ru/node/74214

Интервью Dries Buytaert сайту thinkdigit.com

Перевод интервью Dries Buytaert сайту thinkdigit.com:

В. Привет Дрис! Недавно прочитал, как вы упомянули в блоге, что “люди постоянно спрашивают, где найти хороших Drupal-программистов”, а вы отвечаете “не спрашивайте меня, я не знаю”. Мы часто слышим о Друпале. Правда ли платформа так недосягаема, что хороших специалистов почти не найти? Или же освоить ее достаточно просто, как вы думаете?

О. На самом деле, это хороший вопрос. Drupal часто используют для создания довольно сложных веб-сайтов, так что и устроен он несколько сложно. Это, так сказать, необходимое зло. Чтобы создавать сложные проекты корпоративного уровня, сложное программное обеспечение – необходимо. И это автоматически означает, что нужно преодолеть некоторую кривую обучения. И в то же время, с распространением Друпала, спрос на специалистов тоже растет и превышат существующее предложение. Так что, необходимо вовлечь в проект Drupal больше людей. Кроме того, для удовлетворения спроса нужно больше людей в учебных программах.
В общем, частично сложность в том, что сложна сама система, и частично – в том, что нужно больше обученных специалистов.

В. Многие заявляют, что они поиграли с Друпалом, но в итоге решили, что им приятнее другие платформы, такие как WordPress. Что вы им ответите и как планируете повысить применимость Друпала?

О. Drupal часто критикуют за то, что он немного сложнее в использовании, чем другие платформы. В то же время, как я уже сказал, Drupal используют там, где не используются другие проекты. Опять же, Enterprise-решения – отличный пример. И в то же время, мы понимаем, что это проблема и что ее можно решить. Так, если вы посмотрите, скажем, на Drupal 7, а это сейчас основная версия, то увидите, что наша работа, в основном, сосредоточена на повышении удобства для пользователя и юзабилити системы. Мы приложили немало сил, улучшили дизайн и архитектуру, чтобы сделать Drupal 7 проще в использовании. То же самое будет и с Drupal 8. В центре внимания по-прежнему останется юзабилити. Причем, не только юзабилити для пользователей, но и для разработчиков.

В. По-вашему, как лучше всего начать освоение Drupal? И есть ли планы ввести какую-нибудь систему сертификации через компанию Acquia?

О. Есть масса способов освоить Drupal. Можете обучаться платно, можете учиться иными способами. Можете учиться через участие сообществе Drupal, общаться с другими членами сообщества, учиться у них. Также есть много книг о Друпале. Наверное, более 40. В сети есть куча документации, есть видео. Вот такие разные способы изучать Друпал. Я считаю, если человек хочет изучать Drupal, у него должна быть такая возможность. А одна из прелестей open-source (Drupal) – это доступ к лучшим в мире специалистам. В сравнении с проприетарным ПО, ограничений нет. Нельзя стать экспертом с мировым именем по Sharepoint, если не работаешь в команде Sharepoint, если ты не сотрудник Microsoft. А с Друпалом действительно можно стать первым номером!

Что касается второй части вопроса про сертификацию – сейчас никакой Drupal-сертификации нет. После поездки в Индию, я понял, что многим людям сертификация нужна. Учитывая этот факт, и то, что Drupal ищет пути развития, в будущем, возможно, мы подумаем насчет сертификации.

В. Значит вы открыты для идеи программ сертификации?

О. Да я всегда был для нее открыт. Думаю, это хорошая идея. Но еще я думаю, что она хорошая только если будет хорошо реализована. Вот несколько примеров. Вот есть сертификация Cisco. Иметь такой сертификат значит очень многое. Получить его – очень сложно. Для такой сертификации я конечно открыт. С другой стороны, в некотором роде учеба в колледже – это тоже сертификация. Окончишь колледж – получишь сертификат. Так что, с академической точки зрения, я верю пользу сертификации. Но реализовать ее надо хорошо.

В. Может, посоветуете нашим читателям ресурсы, где можно найти ценную информацию о Drupal? Как вы уже упоминали, где-то есть бездонные кладези.

О. Моя компания Acquia проводит несколько вебинаров, можете их посетить. Также у нас есть документация. А клиенты получают доступ ко всем видам учебных ресурсов, в том числе и к Drupal Lullabot, где есть целые часы видео. Ну и есть Drupal.org, там ресурсов очень много.

В. А как можно внести свой вклад в сообщество?

О. Вообще, есть сотни способов. Я всегда призываю всех следовать своей страсти, потому что в конечном счете, я думаю, именно так люди развиваются. Если вы можете присоединиться и сразу писать код, то можете решить ряд существующих задач. Можете помочь нам писать модули. А если вам по душе писать документацию – найдется масса документов, требующих редакции. Также можете помочь написанием руководств. Можете помочь и другими способами, например, участвовать в организации разных мероприятий. То есть каждый может помочь по-своему. Если не знаете, с чего начать, присоединяйтесь к нам в IRC и поспрашивайте людей. Они подскажут верное направление. Канал #drupal на freenode.

В. Одна из основных проблем – если обновлять ядро до следующей версии, некоторые старые плагины перестают работать. Например, модули для 6.X обычно не работают в версии 7.X. И порой новые версии не появляются довольно долго. Видите ли вы в этом проблему? Планируете ли добавить некий уровень совместимости для облегчения задачи?

О. Хороший вопрос. Обратная совместимость – это почти философия. Какие-то проекты выбирают путь поддержки обратной совместимости, какие-то – нет. До сих под в проекте Drupal мы выбрали нарушение обратной совместимости. У обоих путей есть свои недостатки и достоинства. Очевидный недостаток – нужно обновлять модули каждый раз при выходе новой версии. Достоинство, впрочем, в том, что нам не нужно беспокоится об устаревших вещах. Мы можем изобретать их заново. Мы можем и дальше изменять Друпал в сторону наилучшей платформы. А другие платформы, для которых выбран путь обратной совместимости, с большим трудом внедряют инновации, так как вынуждены поддерживать старый код. Очевидно, у каждого пути есть свои достоинства и недостатки. Мы решили нарушить обратную совместимость. Кто знает, возможно однажды все изменится. Но я чувствую, что это верный путь, особенно для скриптовых языков, таких как РНР, где весь код должен быть загружен.

В. А возможно ли авто-обновление модулей ядра Друпала?

О. В общем-то, возможно. Мы над этим сейчас работаем. Так, в Drupal 7 есть модуль update, с помощью которого можно узнать, что нужно обновить, а также установить обновления для необходимых модулей. Ядро при этом автоматически обновить невозможно, если только вы не пользуетесь чем-нибудь вроде Gardens. Вероятно, в будущем появится и возможность прямого обновления ядра и модулей. Впрочем, это не совсем просто, да и не очень хорошо для сложных проектов. Но для проектов попроще, даже для проектов Drupal Gardens, обновлять ничего не надо. Там это делается автоматически, за вас.

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

О. Ну, вы можете включать и выключать модули. Так вы выбираете ту или иную конфигурацию. Также сейчас активно развивается модуль Features. Он позволяет сохранять и более серьезные разновидности изменений в конфигурации. Например, внести изменения в четыре-пять модулей и сохранить их. [не получается точно понять, о чем говорит автор в оригинале - пр. graker]

В. Расскажите, какие недостатки ядра Drupal 7 вы устраняете в Drupal 8?

О. Интересно! Их много (улыбается). Мы всегда очень критичны к себе. Один из самых значительных недостатков Drupal 7 – его возросшая сложность. Когда вышел релиз Drupal 7, мы не были уверены, что все API в нем полностью готовы. Так что в Drupal 8 мы тратим немалую часть времени на чистку API. И это возможно потому что мы нарушаем обратную совместимость. А еще одним из самых важных направлений в Drupal 8 мы считаем поддержку мобильной платформы. И много еще всего. Всегда есть куча вещей, которые надо улучшить.

В. Сейчас многие говорят про HTML5. Да вы и сами проявили к нему интерес. Как думаете, как на него повлияет наличие на рынке устройств с разными форм-факторами? И как насчет оффлайн доступа к данным?

О. Интересный вопрос. Мы пока не знаем. Мы решили, что ключевым направлением развития Drupal в восьмой версии будет HTML5. Это одна из самых простых задач. Мы сосредоточились на нескольких стартовых изменениях, занимаемся ими прямо сейчас. А дойдем ли мы до оффлайн-доступа и геолокации – зависит от двух вещей. От того, сколько людей мы наберем под задачу и от совместимости браузеров. А пока мы шаг за шагом запускаем нововведения по одному и работаем с ними. В конечном счете, мы бы хотели поддерживать все новые классные возможности HTML5.

В. А при этом вы сотрудничаете с разработчиками браузеров?

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

В. А кто решает, по какому пути будут развиваться будущие версии Друпала? Группа разработчиков ядра? Учитывается ли мнение сообщества? Или решения принимаете лично вы?

О. Для Drupal 8 в основе решения были разные факторов. Во-первых, мое собственное мнение. А мое мнение, в свою очередь, основывается на мнениях некоторых людей, с которыми я регулярно встречаюсь и общаюсь, путешествуя по всему миру. Я беседую с пользователями Друпала – как с одиночными, так и с компаниями. Беседую с разработчиками, которые создают на Друпале сайты. Беседую с самой разной публикой, пытаюсь понять, что для них важно и как нам улучшить Друпал. И у всех есть отличные идеи. А в этот раз, для Drupal 8, мы провели опрос среди разных пользователей. И я подвел итоги их требований и окончательно расставил приоритеты Drupal 8.

В. А если модуль, созданный сообществом, станет очень популярным – может он войти в ядро?

О. Да., именно так мы и делаем. Если модули становятся очень популярны и все ими пользуются, я считаю, что это часть инфраструктуры. И в подходящее время они попадут в ядро. В Drupal 7 мы поместили в ядро кучу модулей, более 60. Некоторые маленькие, другие – очень большие, как например CCK. Кроме того, в Drupal 8 есть такие инициативы как интеграция HTML5. И поэтому есть надежда, что в Drupal 8 не будет нужды в модулях поддержки HTML5. А еще в Drupal 7 есть модуль Services, в восьмой версии мы поместим его в ядро.

В. А модуль Views тоже будет интегрирован в ядро?

О. Views – интересный зверь. Модуль номер один в Друпале. И с этой точки зрения он очень важен. Но, в то же время, он все еще развивается. Плюс, сам модуль очень сложен. И принимая во внимание всю его сложность, я хотел бы чтобы Views был полностью готов до каких-либо значительных изменений.

В. Планируете ли вы поддержку нереляционных баз данных?

О. Уже поддерживаем. Разработчики крупных сайтов на Друпале уже использовали MongoDB. Можно использовать и Cassandra, и другие нереляционные базы данных.

В. Как вам известно, услуги компании Acquia довольно дороги. Планируете ли вы вводить специальные цены для рынков развивающихся стран, учитывая что именно нашего рынка ожидается большая активность в сетевом пространстве? [речь об Индии, интервью брал индус - пр. пер.]

О. Наши услуги дороги, но хочу заметить, что это – премиальные, высококачественные услуги. То есть, “лучшие” в своем роде услуги. Что до специальных цен на услуги в Индии – нужно сесть и все обдумать. Скорее всего, они будут. Путешествие в Индию открыло мне глаза, и пока я там оставался, не раз думал, что наши цены для них слишком высоки. Так что через некоторое время мы должны выработать какое-то решение.

В. Так вы намерены принять активное участие на индийском рынке?

О. О да, безусловно. Думаю, в Индии много возможностей по целому ряду причин. Здесь много талантливых инженеров, которых мы хотели бы видеть частью сообщества, чтобы помочь развивать Друпал. А мы бы хотели развивать все, что помогает Друпалу. Кроме отдельных инженеров, есть и большие компании по системной интеграции, такие как Wipro и Accenture. И они изо всех сил пытаются найти талантливых друпалеров. Мы на это смотрим как на главное направление работы в будущем. И мы хотели бы сделать здесь очень много разного.

Перевод был осуществлён на сайте коллективных переводов Cotranslate.Net, под чутким руководством graker. Переводчики: masdzen, xandeadx, graker, Plazik.

Источник: http://www.drupal.ru/node/74136

WordPress 3.3.1 на русском

Доступен WordPress 3.3.1. Это техническое обновление содержит исправления 15 ошибок версии 3.3, а также исправление XSS-уязвимости, о которой своевременно сообщили Джошуа Х., Хоанг Т., Стефан Циммерман, Крис К. и команда безопасности Go Daddy.

Скачайте версию 3.3.1 или воспользуйтесь автоматическим обновлением в меню «Консоль» → «Обновления».

Источник: http://ru.wordpress.org/2012/01/wordpress-3-3-1/

Перевод интервью с Дрисом Байтаертом: о Drupal 8, Open Source, бизнесе и Индии

Перевел большое интервью с Дрисом Байтаертом, опубликованное в конце декабря на портале Linux For You http://www.linuxforu.com/2011/12/dries-buytaert-interview-drupal-8-busin…

Дрис Байтаерт, создатель и руководитель проекта Drupal, недавно посетил Индию. Linux For You поговорил с ним о его планах по расширению сферы Drupal в Индиии, о Drupal 8, о компаниях, специализирующихся на Drupal и их бизнес модели, об Open Source и др.

Существует множество систем управления контентом, где именно вы позиционируете Drupal и чем вы отличаетесь?

Drupal это интересное животное, если вы присмотритесь внимательно. На нем работает два процента всех сайтов в мире. Но самое уникальное в Drupal это то, что он масштабируется от больших веб сайтов до очень маленьких. На нем работают блоги, но на нем также работают большие сайты медиа компаний. Он также уникальный в своих возможностях и функциональности. И все благодаря сообществу Drupal, в котором десятки тысяч людей развивают Drupal. У нас есть более 10 000 модулей. Поэтому мы находится в таком положении, что мы можем создать любой вид сайта на Drupal.

Полная версия перевода опубликована на Хабре http://habrahabr.ru/blogs/drupal/135646/ (как более удобной платформе для пропаганды Друпала).

Источник: http://www.drupal.ru/node/74035

Новая тема для Drupal 7 – Drupalace Theme

Всем доброго времени суток.

Хочу поделиться радостной новостью – сегодня я наконец выпустил в массы официальный релиз темы с моего блога –  Drupalace Theme. Она представляет из себя блоговый шаблон с разнообразными настройками. Тема в течение пяти месяцев проходила тестирование на моём блоге и завоевала множественные симпатии со стороны посетителей. А так как я человек абсолютно не жадный, то я решил выложить тему в общественное пользование. Тема написана для седьмой версии Друпала.

Основные преимущества:

10 регионов под блоки. Есть даже регион для добавление рекламы под материалом (node bottom) Изменяемая разметка темы Возможность добавления материала в социальные сети (работает через сервис addthis) Навигация по материалам (ссылки на предыдущий и следующий материал) Логин во всплывающем окошке Настраиваемый текст для блока поиска Симпатичный дизайн Хорошая читабельность текста Тема проверялась во всех браузерах, кроме IE6 и ниже. Детальная прорисовка многих мелочей.

Тема, ушедшая в релиз – это улучшенная тема с моего блога. Добавлены настройки, поддержка IE7+, дополнительные иконки.

Почитать подробнее и посмотреть скриншоты вы можете здесь.
Скачать тему можно с официальной страницы  Drupalace Theme.

Всех с прошедшими и будующими праздниками!

Источник: http://www.drupal.ru/node/74022

DataLife Engine v.9.5 Final Release

Дорогие друзья,

Представляем вам новую версию нашего скрипта DataLife Engine v.9.5. В данном релизе вас ожидает существенно улучшенная система кеширования, новые возможности для дополнительных полей в публикациях, новые возможности по выводу и оформлению новостей, и многое другое, но обо всем подробнее …

Источник: http://dle-news.ru/release/1464-datalife-engine-v95-final-release.html

Всех с наступающим новым 2012 годом!

Хочу поздравить весь дружный состав д.ру с новым 2012 годом!)
Каждому желаю профессионального роста и интересных проектов. а д.ру желаю наконец то трансформироваться в очень удобный проект общения разработчиков)
Всех с наступающим 2012 годом!)
p.s. много не пейте)

Источник: http://www.drupal.ru/node/73972

DataLife Engine v.9.4 (демоверсия)

Уважаемые посетители,

Сегодня состоялся выход бесплатной демонстрационной версии DataLife Engine v.9.4. Вы можете бесплатно скачать новую версию по адресу http://dle-news.ru/demo.html. Напоминаем вам что данный релиз не имеет функциональных ограничений, но содержит следующие ограничения:

1. Закрытый исходный код
2. Максимальное количество новостей – 100
3. Максимальное количество комментариев – 200
4. Отсутствие возможности обновления с предыдущих версий.

Платная версия скрипта, в которой отсутствуют указанные выше ограничения http://dle-news.ru/release/1436-datalife-engine-v94-final-release.html. Приобрести лицензию на скрипт вы можете на нашем сайте. Переход с бесплатной версии на платную без потери данных также возможен без каких либо проблем.

Источник: http://dle-news.ru/release/1463-datalife-engine-v94-demoversiya.html

© 2009 Обзор CMS