Pull to refresh
11
0
Николай Васильчук @Anonym

User

Send message

Демоны на PHP

Reading time 4 min
Views 74K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

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

Читать дальше →
Total votes 188: ↑167 and ↓21 +146
Comments 125

Генерирование баннеров-заглушек

Reading time 6 min
Views 5.5K

Есть такой отличный сервис placehold.it. Он позволяет легко генерировать изображения-заглушки для баннеров. Не так давно о нем писали на хабре, и с тех пор я им активно пользовался, пока он не начал периодически падать. Вечером на коленке был написан аналогичный сервис, может быть кому-нибудь пригодится.
Читать дальше →
Total votes 23: ↑14 and ↓9 +5
Comments 12

Работа с CCK Filefield. Вставка и отображение Flash

Reading time 13 min
Views 1.9K
imageИногда бывает необходимо отобразить на сайте файл не просто ссылкой, а как-нибудь иначе. Видео и аудиофайлы хочется отображать плеером, с возможностью просмотра (прослушивания), swf — сразу отображать на странице. Для прикрепления файлов к материалам есть отличный модуль Filefield, однако выбор форматтеров для него невелик. Файл можно отобразить просто ссылкой. Немного расширяют его функционал другие модули, например Imagefield позволяет отображать картинки. Я попытаюсь доступно объяснить как добавить возможность отображения Flash контента на примере модуля SWFfield.

Далее будет много кода, мало картинок и вообще всё скучно и уныло...
Читать дальше →
Total votes 33: ↑24 and ↓9 +15
Comments 29

Paginator 3000

Reading time 1 min
Views 3K
Вдохновленный этим топиком я написал модуль для друпала, который организует такую постраничную навигацию.

Добавлена прокрутка колесом мышки, исправлены некоторые косяки, добавлена стандартная навигация при отключенном js, адаптировано под друпал. Никаких настроек: включили модуль — работает, выключили — вернулись к стандартной навигации.

UPD: Перенес подключение css и js в init модуля, дабы работало везде, исправил конфликт с другими GET параметрами.
UPD2: Исправил баг со ссылками «Первая» и «Последняя». Спасибо gothica.
Скачать можно здесь.
Total votes 45: ↑37 and ↓8 +29
Comments 61

Техподдержка Logitech или как я мышь менял

Reading time 2 min
Views 19K
imageПро техподдержку Logitech была уже не одна статья (Часть 1, Часть 2). Вот и я надумал написать о том, как я мышь менял. Сразу оговорюсь, что делаю упор на один нюанс, который в вышеприведенных статьях не указан.

Началось всё с того, что мышь умерла. Компьютер просто перестал реагировать на подключение приемника. Т.к. документов и коробки от мыши у меня уже не сохранилось, я немного погуглил и написал письмо в Logitech
Читать дальше →
Total votes 77: ↑49 and ↓28 +21
Comments 91

Создаём тему для Drupal. Часть 3

Reading time 3 min
Views 32K
image
Часть 1, Часть 2

Шаблоны


Шаблоны мы будем складывать в sites/all/themes/mytheme/templates. Создадим шаблоны page.tpl.php — для страниц, node.tpl.php — для контента, block.tpl.php — для блоков, comment-wrapper.tpl.php — для блока с комментариями, comment.tpl.php — для одного комментария, header.tpl.php — для шапки, footer.tpl.php — для подвала, region.tpl.php — для регионов. Также, по аналогии с препроцессами, мы можем создавать файлы типа node-story.tpl.php для отображения материала типа story или block-user.tpl.php для блока user. Это позволяет темизировать отдельно разные типы содержимого сайта.
Читать дальше →
Total votes 61: ↑47 and ↓14 +33
Comments 38

Создаём тему для Drupal. Часть 2

Reading time 6 min
Views 10K
imageЧасть 1

Препроцессы


Препроцессы нужны для того, чтобы определить, какие переменные будут доступны в шаблонах. Препроцессы мы будем складывать в sites/all/themes/mytheme/preprocess. Создадим файлы preprocess-page.inc — для страницы, preprocess-node.inc — для контента, preprocess-header.inc — для шапки, preprocess-footer.inc — для подвала, preprocess-region.inc — для регионов, preprocess-block.inc — для блоков, preprocess-comment.inc — для комментариев. Также мы можем создавать файлы типа preprocess-node-story.inc для обработки материала типа story или preprocess-block-user.inc для блока user. Это позволяет обрабатывать отдельно разные типы содержимого сайта. В основном в препроцессах я определял классы для разных регионов сайта.
Читать дальше →
Total votes 51: ↑44 and ↓7 +37
Comments 9

Создаём тему для Drupal 6. Часть 1

Reading time 11 min
Views 29K
image
По созданию тем для друпала в интернете можно найти несколько статей (хорошая статья, советую почитать), однако обычно всё заканчивается банальным набором шаблонов и инфо-файлом. В этом топике я постараюсь доступно рассказать как создать гибкую и не самую простую тему.

Начало


Для начала нам потребуется создать директорию в каталоге sites/all/themes с названием нашей темы. Я назвал тему mytheme и создал каталог sites/all/themes/mytheme.
В созданном каталоге создаем директории css — для стилей, js — для скриптов, images — для картинок, templates — для шаблонов, preprocess — об этом позже. Также создаем файл template.php в котором мы будем писать всю логику темы и mytheme.info для описания темы. Можно еще добавить favicon.ico и logo.png.
Читать дальше →
Total votes 67: ↑56 and ↓11 +45
Comments 16

Страничка для счастливых обладателей IE6

Reading time 1 min
Views 813
Вдохновлённый этим топиком я по-быстренькому наваял модуль для друпала, который всем пользователям IE6 показывает заготовленную страничку.
Если честно, не понял в чём смысл обновления для этой странички, поэтому оставил первую версию.

Спасибо AVR за отлично свёрстанную страничку.

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

Скачать можно здесь и здесь

UPD: Исправил некоторые проблемы с кэшированием, перезалил файлы.
Total votes 14: ↑6 and ↓8 -2
Comments 8

Модуль Views — API. Основы

Reading time 6 min
Views 11K
Наверняка, многие, работающие с друпалом, знакомы с модулем Views. Как гласит Drupaler.ru, модуль Views — это Настройка и контроль за отображением любого типа контента в любом месте сайта, т.е. он позволяет создавать страницы, блоки, подменять содержимое нод, страниц пользователей и многое другое, формируя контент из любых доступных полей на сайте. Но что делать, когда необходимо вывести информацию, предоставляемую сторонним модулем, и к которой доступа из Views у нас нет?
Читать дальше →
Total votes 40: ↑34 and ↓6 +28
Comments 29

Интеграция поиска Google в сайт на Drupal

Reading time 6 min
Views 5.1K
imageНекоторое время назад появилась необходимость организовать поиск по сайту на друпале с фильтрацией по типам материалов и возможностью поиска по профилям пользователей. Существующие решения не устраивали по ряду причин. На ум сразу пришли 2 варианта: либо писать свой поиск (используя готовые библиотеки типа phpMorphy), либо использовать Google. Остановились на втором.

Логика работы проста: Google позволяет искать по определенному сайту. То есть мы можем искать по www.example.com, по www.example.com/first, по www.example.com/second и т.п. Для поиска материалов определенных типов нам только нужно настроить разные пути для разных типов материалов и встроить на сайт Google Custom Search.

Далее кратко по шагам, как это работает (много кода, нет картинок):
Читать дальше →
Total votes 15: ↑8 and ↓7 +1
Comments 10

Information

Rating
3,870-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity