olk: Блог

Главные вкладки

Ошибочка в D6

20 января 2009 в 13:59

Случайно никто не сталкивался с такой ошибкой в Друпал 6(или это только у меня?)
Ситуация:
Если в ноде есть вывод таблицы со включенным sticky headers (например список приатаченных файлов), то остальные java script-ы перестают отрабатывать на этой странице.
Пока я решаю это тупо отключив в теме sticky headers (путем переписывания в свой теме функции theme_table), но может есть другие решения ?

Новый модуль WrapperBlocks

15 января 2009 в 13:21


Обновление:
Версия обновлена!
Теперь одним Врап-блоком можно определить несколько блоков,
для этого необходимо определить переменные $info,$cache и $title как массивы,
и обработку блоков определять в зависимости от параметра $delta.
$delta - это внутренняя дельта врап-блока равная индексу в элементе массива $info;
т.е. 0 , 1 ...
Более подробную информацию можно получить на сайте http://www.hotel-prog.ru/wrap-blocks

Обновление:
Версия обновлена, в шаблон описания блока добавлена
Необязательная функция init.
Вызывется из block_wrapper при инициализации модуля - hook_init()
Вызов данной функции произойдет если данный блок виден на данной странице.
Это может быть полезным например для вызова drupal_add_js или других действиях
для инициализации блока.

WrapperBlocks - модуль формирования блоков

ОПИСАНИЕ
Давно озадачился мыслью, как хранить и управлять своими PHP-сниппетами. Хранить их в
базе не совсем кошерно, можно хранить в файлах и вызывать через Include, то же есть
определенные недостатки, поэтому собрался и написал не большой модуль WrapperBlocks.
Суть модуля в том, что он предоставляет Друпалу стандартные блоки, содержимое которых,
формируется PHP-сниппетом оформленным определенным образом.
Т.е. вы оформляете сниппет по определенному шаблону, сохраняете шаблон в файле с
определенным именем, бросаете этот файл в поддиректорию block-extra в директории модуля
и далее стандартными методами друпала размещаете этот блок в нужном регионе.

Анонс модуля ccfilter

27 декабря 2008 в 18:02

Ccfilter module
Обновление:
В связи с тем, что мне ни как не удается зарегистрировать экаунт на CVS drupal.org
(последний ответ был такой:
Message from the CVS maintainer:
The license contained in the README file doesn't appear to be compatible with the GPL that Drupal uses. If you want to use Drupal CVS and distribution services you have to use the GPL license as used by Drupal.
)

Преданонс модуля ccfilter и нужна помощь в английском

19 декабря 2008 в 15:23

Вообщем потихоньку дописываю модуль фильтров, но перед тем как выложить его на drupal.org, хотелось бы, что бы люди знающие, поправили мой «чудовищный» английский :).
поэтому выкладываю readme.txt с просьбой поправить уж совсем не правильные выражения (а то засмеют на d.o).

$Id;

The ccfilter module - popular collections filters.

Ccfilter: PHP inline code.
The filter type php inline code - allows you to embed in the content of material code on php,
code must be entered into between the tags [phpcode] and [/phpcode], program code concluded
between the tags must be from a valid PHP-code. This can be useful when you need one material
at the same time show and the source code of such programs and this code.
The result of the implementation of the code will be placed in a unit <div class="ccfilter phpcode"> ... </div>.
You can also broaden the definition of the class through an indication of your class = class, for example,
when entering [phpcode class = myclass] ... [/phpcode], the result of the code will be placed
in a unit <div class="ccfilter phpcode myclass"> ... </div>.

Ccfilter: Collapse text.
The filter type collapse - the text concluded between the tags [collapse] and [/collapse], you can minimize / deployed to watch.
If the opening tag would be clarification collapsed, the original state of the text will be minimized.
Tag can be set in the opening tag after the = (eg [collapse collapsed = Click here to see the text].
If you do not specify a label, it will use the pre-header.

Какой тут модуль "закладок" стоит ?

3 октября 2008 в 17:31

Собственно сабж, посмотрел Favorite Nodes , что то не очень , click2bookmark - под шестерку пока нет,
Может кто, какие другие посоветует ?
Интересует иммено под д6, и желательно бы с Ajax- добавлением/удалением ноды в закладки ...

Небольшой сниппет вместо модуля tagadelic (Облако тэгов)

30 сентября 2008 в 17:59

Небольшой сниппет, показывающее облако тэгов по заданному (через код vid) словарю ...
Конечно он не покрывает все возможности и настройки модуля tagadelic, но в некоторых случаях может оказаться полезным
Для темизации всего блока можно использовать стилизацию tags.voc-номер-словоря,
для темизации терминов a.tags-voc-номер-словоря ...
PS.Данный код выводит только «реальные» термины словоря, т.е. термины которые «привязаны» к нодам (просто мне показалось не логичным выводить «пустые» тэги, не связанные с материалом)
Обновление:

Еще один интересный и безопасный способ вставки сниппетов

18 сентября 2008 в 13:06

Тут поэкспериментировал, и нашел интересный способ вставки PHP сниппетов (может правда изобрел велосипед :).
Суть в том, что бы сниппет хранить не в контенте сайта (блоках, страницах и т.д), а во внешних файлах и вставлять в контент
посредством php конструкции include.

Преимущества:
1. Код сниппета можно менять и отлаживать не изменяя контента.
2. При некорректном (ошибочном) коде, не надо заморачиваться с отключением блока.
3. Все сниппеты можно держать в одном месте.

Недостатки:
Нужен доступ к файловой системе сайта на создание и изменение фалов.
Желательно также иметь доступ или к конфигу апача или (если это хостер) к управлению доступом к дирректориям.

Реализация:

создаем дирректорию: например sites/all/snippets
закрываем к ней доступ для сторонних хостов

для апача в httpd.conf прописываем (подставляем естественно свой путь до директории)

  <Directory "/var/www/sites/all/snippets">
   Order Allow,Deny
   Allow from localhost
  </Directory>
   

Создаем файл(ы) со сниппетом в нашей созданной дирректории
например:


<?php 
// Сниппет показывающий количество созданных материалов определенного типа, за определенный день
$t='blog';  //тип материала
$days=0;    // за котороый день назад  0 -за сегодня,1 - за вчера и т.д.
$start_stamp mktime(000date("m"), date("d")-$days,   date("Y"));
$end_stamp mktime(235959date("m"), date("d")-$days,   date("Y"));
//print 'start_date='.date("d-M-Y H:s",$start_stamp).'<br>';?>

Drupal + Apache + nginx , маленькая проблемка

17 сентября 2008 в 17:14

Вот решил себе чуть чуть пооптимизировать нагрузку на сервере, поставил (в качестве прокси) nginx, но маленькая ложечка дегтя все же нашлась Smile в Друпаловском журнале доступа (accesslog), теперь вместо реальныйх адресов попадают 127.0.0.1, что вполне естественно, но может есть какая хитрая опция у nginx, что бы отдавал реальные адреса ? или "забить" ?

Друпал для "Чайников"

2 сентября 2008 в 17:13

[float=right][/float]
Хочу поделиться некоторыми мыслями по поводу построения сайтов на основе CMS Drupal.
Не вдаваясь в подробности построения архитектуры системы и наполнения ресурса, просто несколько правил и пояснений к ним.
Во первых надо четко понимать, то что мы можем получить, используя Друпал, делиться на две части:
1. Что выводить (какая информация попадает в контент сайта)

Аплоад коммент (comment_upload) модуль для Drupal 6.*

16 июля 2008 в 23:37

Ждал когда же, кто надумает конвертнуть достаточно полезный модуль comment_upload для Drupal 6.*. Не дождался Smile .
Решил занятся сам. В результате получилось то, что получилось.
Предлагаю оттестить, и довести до ума (путем обсуждения, и совместной доработкой).
Данный модуль это некая декомпозиция с последующей компиляцией одноименного модуля от версии 5.*,
модуля upload от Drupal 6.*, и найденного в интернете патча.

Отличия от версии для Drupal 5.*. и особенности ...

  • Убрал (по моему бесполезную) опцию прикреплять не более одного файла.
  • Лимиты на размер и объем файла берутся из настроек модуля upload (ну в принципе и раньше так было)

Продожение "Три в одном", теперь это Четыре в одном :)

11 июля 2008 в 18:04

Оригинал статьи и сам архив пакета здесь
не стал выкладывать ахив, что бы не перегружать Drupal.ru- он и так еле, еле дышит Smile

Немного доработал фильтр, который описывался в статье Маленькое отступление.
Внимание: Проверено только для Drupal 6.*
Что сделано:
Теперь это четыре в одном.

  • Добавлена обегченная версия модуля smileys (Смайлики).
  • Сделаны настройки фильтра, теперь можно включить или отключить обработку входящих в фильтр элементов.

Три в одном, несколько фильтров для D6

25 июня 2008 в 15:52

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

Это не русское слово Блог :)

5 июня 2008 в 18:39

Ну не нравиться мне это слово Smile понимаю что насчет терминалогии уже сломали кучу копий ... но может есть такие же как я
короче в прирепленном фале, превод модуля blog для D6, где термин "Блог" заменено на "Дневник"...

Ошибка в 6.2 + postgress

30 мая 2008 в 15:55

Решил тут "поиграться" с postgress + drupal 6.2 и всплыла ошибочка в модуле statistics

    * warning: pg_query() [function.pg-query]: Query failed: ERROR: function concat(int_unsigned, character varying) does not exist LINE 1: SELECT COUNT(DISTINCT(CONCAT(uid, hostname))) FROM accesslog ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. in /var/www/www.hotel-prog.ru/includes/database.pgsql.inc on line 138.
    * user warning: query: SELECT COUNT(DISTINCT(CONCAT(uid, hostname))) FROM accesslog in /var/www/www.hotel-prog.ru/modules/statistics/statistics.admin.inc on line 87.

В очередной раз подумалось - ну кто так пишет системные модули у смс с претензией на мультибазововсть
(ну не было ни когда в pgsql функции CONCAT !!!)