Программный перевод текста с помощью Google Translate
Не так давно поставили передо мной задачу: парсить сайт на английском языке, попутно переводя его на русский. И именно перевод вызвал затруднения. Раньше ведь всё проще было, когда существовал бесплатный Google Translate API. А теперь лавочку прикрыли, попросив выложить на стол по 20$ за каждый миллион переведённых символов. Деньги совсем не большие, но русская душа требует халявы. Поэтому немного подумав, я нашёл вполне легальный способом обхода нововведения. А именно - воспользоваться их сервисом Google Translate со своего сайта :)
Без долгих введений, к бою:
Настройка отладчика xDebug между IDE PhpStorm и сервером Open Server
Начну с небольшого вступления. PhpStorm использую в качестве IDE т.к. считаю её лучшим продуктом для разработки, который включает в себя огромное количество плюшек. Open Server - сервер, с которым я познакомился совсем недавно, однако он полностью меня покорил своей скоростью работы и лёгкостью управления.
Без отладки кода в пошаговом режиме жить довольно сложно, даже krumo или debug() не могут мне это заменить. Сегодня я столкнулся с острой необходимостью настроить дебагер под Open Server, и наткнулся на несколько подводных камней, которые не столь очевидны, как хотелось бы. Итак, ближе к телу.
Осторожный поиск вдохновения.
На мой взгляд вдохновение можно трактовать, как идею и мотивацию к её реализации. Например, вы мучаетесь над тем, как же решить проблему возникшую на сайте. Думаете день и ночь, но всё никак не выходит. И вот вы совсем отчаянный, едете в трамвае, пялитесь в окно.. и, о чудо, что же это. Идея словно сама приходит к вам в голову, и вы, как Рэмбо, голыми руками открываете двери трамвая, выпрыгиваете на ходу и уноситесь к своему ноутбуку/мольберту/блокноту, чтобы это всё реализовать.Такие моменты ещё называются прозрением, или эмоциональным спонтанным творчеством (но не будем углубляться в психологию).
Как должна выглядеть тема для сайта на Друпале
С годами работы с шаблонами сайтов был выработан список, по которому темизаторы и дизайнеры должны сдавать свою работу. Именно так, на наш взгляд, должна выглядеть приличная тема для Drupal:
- Фавиконка.
- Прорисованный / свёрстанный трекер.
- Прорисовывать страницу регионов для блоков.
- Сделанные страницы с 403 и 404 ошибкой (page--403.tpl.php, page--404.tpl.php).
- Страница сайта, когда он находится в режиме разработки (maintenance--page.tpl.php).
- Дизайн должен быть продуман таким образом, что если в блоке или в ноде заголовок оказался слишком длинным, то он не должен некрасиво съезжать.
Изменение состояний формы в Drupal 7
Нередки ситуации, когда в зависимости от нажатия элемента на форме появляются/исчезают/меняются элементы этой самой формы. И если для обычных полей это можно сделать модулем conditional fields, то для своих форм придётся всё писать самому. В Друпале это можно сделать либо через ajax (об этом более подробно можно почитать тут) либо же через параметр #states в Forms API. И сейчас речь пойдёт именно о втором варианте.
Итак, #states. По сути, это PHP обёртка для простейших функций jQuery, которые изменяют состояние формы при совершении с ней заранее заданных действий.
Состояние элемента #states является ассоциативным массивом такого вида:
Рендер массивов в седьмом Друпале
Рендерные массивы являются строительными блоками страницы Drupal, начиная с седьмого Друпала. Рендерный массив - это ассоциативный массив, который соответствует стандартам и структуре данных, используемых в системе рендеринга Друпала.
Данные, используемые для создания страницы (и всех ее частей), хранятся в виде структурированных массивов до этапа рендеринга в системе темизации. Это дает возможность с легкостью менять разметку или содержание страницы и обеспечивает повышение производительности в будущем.
Типографика. Подборка для вдохновения.
Итак, как и обещал, наш экскурс по типографике заканчивается подборкой отличных, на мой взгляд работ, в которых воплощены как креативность и красота, так и удобство использования. Не буду томить вас в ожидании и сразу начну.
Дам совет: жмякайте на ссылки, чтобы увидеть сайт полностью, ибо в скриншоты всё не влезло.
Типографика. Кастомные шрифты.
Ну здравствуйте. Заждались наверное нового выпуска, я вот тоже заждался, но лень, сессия и недуги крепко держали меня в своих объятиях, так что я не мог с вами пообщаться. Но сейчас я этот недостаток исправлю.
Как и обещал, в сегодняшнем номере "Друпал и дизайн" мы поговорим о нестандартных шрифтах, и что с ними делать. А ещё я специально для вас сделал подборочку сайтов, которые выполнены в шрифтовом стиле и служат наглядным примером того, что типографика играет важнейшую роль в дизайне и при большом желании можно обойтись только ею. Но об этом в следующем выпуске, буквально через пару часов.
Создание своего элемента формы в Drupal 7. Расширяем Forms API.
Сегодня я расскажу о том, как создавать свои элементы форм, которые будут доступны для использования через Forms API. Всю разработку я продемонстрирую на примере создания jSlider Form API с авторскими дополнениями и объяснениями кода. Итак, пошагово.
Шаг первый. Описываем элемент формы.Для описания элемента в модуле надо имплементировать хук hook_element_info(), в котором надо вернуть массив, ключом которого будет будующий тип элемента, и параметры, которые он может принимать
Модуль jSlider Form API
Только что я закончил работу над портированием модуля jSlider Form API на D7. Модуль позволяет посредством Forms API Друпала добавить два числовых поля, между которыми появится слайдер из jQuery UI.
Ветка 6.х модуля зависит от модуля jQuery UI. Седьмая ветка, ввиду того, что jQuery UI вошло в ядро Друпала, ни от чего не зависит.
Работать с модулем предельно просто - достаточно включить его, и написать такой элемент формы:
Drupal: Очередная серия видеоуроков от Drupalize.me — Module Development for Drupal 7
Видеокурс о разработке модулей под Drupal 7:
- Полезные инструменты для разработчиков
- Обзор модуля Devel
- Анатомия Drupal модуля
- Система хуков
- Система меню (роутинг)
- Использование аргументов в page callback
- Создание контекстных ссылок и использование автозагрузчика файлов в hook_menu
Похожие записи:
Заставляем любую форму выполняться через AJAX в Drupal 7
Абсолютно любую форму в Друпале можно заставить работать с помощью аякса. Для этого достаточно написать совсем маленький модуль, который это реализует. Назовём модуль, например, ajax_forms. Итак, поехали потихонечку.
Создаём страницу для ajax запросаС помощью hook_menu() создаём страницу, которая будет принимать ajax запрос из формы:
Drupal: Скрыть вывод Views если раскрытые фильтры не заполнены
1. Добавить аргумент Global: Null:
2. В поле Action to take if argument is not present выбрать пункт Provide default argument, а в качестве Default argument type — Fixed entry:
Похожие записи:
Drupal: Два видеокурса по темизации Drupal 7 от Drupalize.me (бывшие Lullabot)
Основы темизации Drupal 7. Продолжительность 2:51:00
- Введение в систему темизации Drupal 7
- Подготовка сайта
- Включение темы и её настройка
- Создание темы на основе готового дизайна
- Полезные плагины для браузеров
- Создание .info файла
- Работа с page.tpl.php
- Добавление регионов
- Работа с node.tpl.php
- Создание шаблонов нод для разных типов материала
- Использование модуля Theme Developer
- Добавление javascript-а в тему
- Обзор переменных в page.tpl.php
Похожие записи:
Drupal: Модуль Node Reference View Formatter — выводим содержимое полей Node Reference с помощью Views
Модуль Node Reference View Formatter это форматтер для полей типа Node Reference, выводящий их содержимое с помощью Views:
Похожие записи:
[ЗАКРЫТО] Собираю команду Drupal программистов з\п 200-300у.е. в неделю
Собираю команду Drupal разработчиков для постоянной удаленной работы.
требования:
Любовь к Drupal!
Drupal, jquery, ajax, git
Responsive design и английский язык - большой плюс!
Drupal Кофе Минск - Встреча №2
- Дата: 21 февраля 2012
- Время: 20:00 - 22:00
Пароли и явки:
Место: бизнес-центр Sky Towers (ул. Домбровская, 9, метро "Кунцевщина")
Drupal: Релиз Drupal 8 намечен на август 2013
Dries Buytaert в своём блоге наметил предварительную дату релиза Drupal 8:
- 01.12.2012: Feature freeze. Замораживается функционал. Все силы бросаются на доводку API и UI.
- 01.02.2013: Code freeze. Замораживается API. Все силы бросаются на отлов и исправление багов.
- xx.08.2013: Release. Всеобщее ликование.
Таким образом до Drupal 8 осталось около 18 месяцев!
Похожие записи:
Работа с изображениями в Drupal 7. Аналог imagecache.
В шестом Друпале все операции с изображениями делались через модуль Imagecache. Это контриб модуль, который приходилось скачивать и устанавливать. В Drupal 7 он был включен в ядро и стал частью модуля Image.
В шестом Друпале изображения можно было выводить так:
print theme('imagecache', $preset_name, $image_path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE, $absolute => TRUE);В седьмом Друпале это делается немного иначе:
Уязвимости и XSS атаки в Друпале. Видео
Данный доклад является наглядным пособием того, как по неосторожности пользователей или по нопытности разработчиков сайты становятся уязвимы. О том, как используются уязвимости на сайтах рассказал Александр Швец, и даже продемострировал это в онлайн режиме. Смотрим и учимся.
Для тех, кому не хочется смотреть видео, краткий итог: