Упрощение связки двух материалов в Drupal

Опубликовано 2014.05.14 в разделе Drupal.

Предположим у вас на сайте есть два типа материала. Пусть это будет "Автор" и "Статья". В статье есть поле типа "Ссылка на материал", через которое к статье привязывается автор. Задача следующая: на странице автора нужна ссылка на добавление статьи. При переходе по этой ссылке поле автора должно быть заполнено соответствующим автором. Реализуется это достаточно просто. Для этого понадобятся:
  • собственный модуль
  • знание Form API
  • понимание hook_form_alter
  • немного знаний по PHP

Невидимая капча Drupal

Опубликовано 2014.05.08 в разделе Drupal.

Использование капчи является самым распространенным способом защиты от ботов. Увы, для человека - это крайне неприятный элемент интерфейса, который хочется куда-нибудь спрятать и никому не показывать. В идеале - чтоб реальный человек её вообще не видел, а бот - не мог пройти. И такая капча была придумана, она так и называется - невидимая капча.
 
Суть её в том, что в форму добавляется поле ввода типа text. Затем оно прячется средствами CSS. Такое поле будет невидимо для обычного человека, а парсер бота распознает это поле ввода, и обязательно заполнит.

Свой виджет Fivestar для Drupal

Опубликовано 2014.04.16 в разделе Drupal.

Модуль Fivestar предлагает на выбор 11 типов виджетов. В основном это всё звёздочки. Хуки этого модуля позволяют с лёгкостью добавить свои виджеты, или попросту скины для отображения оценок. Для добавления своих виджетов нужен отдельный модуль. Почитать о его создании можно тут или тут. Далее используем hook_fivestar_widgets. Пусть модуль называется star_widgets Тогда функция будет выглядеть так:
  1. function star_widgets_fivestar_widgets() {

Создание своего скина для jCarousel

Опубликовано 2014.03.30 в разделе Drupal.

В продолжении статьи о программном выводе jCarousel я расскажу как создать свой скин. Это посложнее, чем поправить css в скине Default, но это Друпалвейное решение, так что используйте его. Для начала нужно создать свой модуль. Подробнее об этом тут и тут Далее объявить в нём hook_jcarousel_skin_info
  1. function mymodule_jcarousel_skin_info() {
  2. $skins = array();

Программный вывод jCarousel

Опубликовано 2014.03.30 в разделе Drupal.

Есть один замечательный модуль для вывода карусели из нод. Называется jCarousel. Этот модуль расширяет Views, позволяя выводить материалы каруселью. Но его можно использовать и отдельно, пользуясь его API. Вызов карусели происходит через темизирующую функцию:
  1. theme('jcarousel', array('items' => $images, 'options' => $options));

Разная анимация для Nivo slider

Опубликовано 2014.03.28 в разделе JavaScript.

У слайдера Nivo slider есть один существенный недостаток - одинаковая анимация для смены картинок. То есть если листать картинки как влево, так и вправо - анимация всегда будет одной и той-же. Это не всегда выглядит красиво. Победить эту проблему получилось только патчем библиотеки. Я приведу пример и приложу исходник. Открывайте jquery.nivo.slider.js и ищите текст // Get our vars, это примерно 290 строка. Добавьте после неё следующую строчку:
  1. var slide_bilo = $('div.nivo-controlNav a.active').attr('rel');

Пополнение QIWI кошелька не выходя из дома

Опубликовано 2013.11.27 в разделе Разное.

Сервис QIWI очень популярен, через него можно оплатить множество покупок в интернет магазинах. Пополнить его можно не отходя от компьютера и даже не имея кредитки. Достаточно лишь мобильника с деньгами на счету.

Сейчас я покажу как это делается.

Для начала нужна зарегистрироваться на сайте qiwi.com

Пишите свой номер телефона, никаких денег за регистрацию не спишут.

Отправка E-mail с вложением

Опубликовано 2013.07.25 в разделе Php.

Для того, чтобы отправить письмо с вложением - создайте функцию со следующим содержанием:
  1. function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
  2. $file = $path.$filename;
  3. $file_size = filesize($file);
  4. $handle = fopen($file, "r");
  5. $content = fread($handle, $file_size);
  6. fclose($handle);
  7. $content = chunk_split(base64_encode($content));
  8. $uid = md5(uniqid(time()));
  9. $name = basename($file);
  10. $header = "From: ".$from_name." <".$from_mail.">\r\n";
  11. $header .= "Reply-To: ".$replyto."\r\n";</".$from_mail.">

Основы Symfony 2

Опубликовано 2013.07.23 в разделе Php.

Выдержки и памятки из различных статей. Мои собственные заметки.
  • app/: Конфигурация приложения
  • src/: PHP код проекта
  • vendor/: Сторонние зависимости
  • web/: Корневая директория web-сервера

Создание бандла

Я работаю в режиме девелопера, так что корректируйте пути к файлам конфига. Пусть это будет бандл для работы с блогами.
  • В файл app/config/AppKernel.php добавил свой бандл
    1. $bundles[] = new Blog\BlogBundle\BlogBundle();
    куда добавлять - сразу поймёте, там всё просто.

Дневник программиста

Опубликовано 2013.07.18 в разделе Разное.

В этом посте я попытаюсь написать реальный дневник программиста. Что из него получится - я пока незнаю. Будет он шуточным или серьёзным, пригодится ли кому-то или нет ну и так далее. Я постараюсь описать значимые, или интересные моменты из своей практики. Или же просто буду трепаться обо всё на свете:)