Блог пользователя - W32

Как сделать/каким модулем загрузку нескольких изображений к узлу за ОДИН раз?

10 сентября 2011 в 21:29

Каким модулем или "каким кодом" в семерке можно сделать мультизагрузку файлов/изоборажений к узлу за один прием? Т.е. нажали browse в поле image или file выбрали несколько файлов и отправили их всех одним махом, а на сервере поле размножилось на нужное кол-во в соответствии с кол-вом закачанных файлов.

Настройка кеша ?

17 августа 2011 в 17:56

Использую модуль File Cache для минимизации работы php. Сайт практически полностью статичен, так что аннонимный юзер это 95% рабочего времени сайта.
Настроил параметры кеша старниц:
1. кешировать блоки, js, css
2. минимальное время жизни кеша 15 мин.
3. максимальное - не указано.

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

Я пробовал менять максимальное время жизни кеша, но там нет значения "бесконечность". что мне делать ?

Wysiwyg модуль для подключения Яндекс.Спеллера к редактору TinyMCE

6 июля 2011 в 15:29

После того как я прочел статью Макса Кириленко о Яндекс.Спеллер (http://www.drupal.ru/node/31864) очень захотелось прикрутить этот спеллер к себе на сайт, тем более что пишу я безграмотно Smile
Оказалось, что это не совсем просто для новичка, хотя объем кода - минимальный. Вот решил поделится результатом.

Это wysiwyg модуль-расширение для одного единственного редактора - tinymce (он мне просто очень нравится). Достаточно установить и включить модуль. После этого в редакторе TinyMCE появится кнопка проверки орфографии (АВС) - это стандартный плугин из пакета TinyMCE, но бэкендом к нему выступает Яндекс.Спеллер. Обращение к бэкенду происходит на строне сайта (файл yspeller_xmlrpc.php в комплекте модуля), для его работы php модуль curl включать не надо (в отличии от скрипта предлагаемого на http://api.yandex.ru/speller/doc/dg/tasks/how-to-spellcheck-tinymce.xml).
Прошу попробовать и поругать...

Опитимальность кода в D7 ?

1 июня 2011 в 16:01

Посмотрел код друпала, в часности node_page_default, который используется для формирования тизера узлов на главной странице. Это метод вызывает node_load_multiple, который грузит узлы. Я правильно понимаю, что node_load_multiple грузит ВСЕ СОДЕРЖИМОЕ УЗЛА в не зависимости от цели рендеринга? А если узлы большие?

Заменить Read More ссылку на img и сместить ее вправо.

31 мая 2011 в 1:56

Собственно сам вопрос: как в теме (желательно именно в теме а не сторонним модулем) заменить ссылку Read More, которая выводится в тизеровом списке узлов, на картинку (тег img) и прижать ее к правому краю ?

Я в своей теме сделал так:

<?php
/**
 * Implements template_preprocess_node().
 */
function kgarland_preprocess_node(&$vars)
{
    
// Change Read-more link text to img.
    
if ( isset($vars['content']['links']['node']['#links']['node-readmore']) ) 
    {
        
$theme_path drupal_get_path('theme''kgarland'); 
        
$vars['content']['links']['node']['#links']['node-readmore']['title']     = theme('image', array('path' => $theme_path '/images/kg_right.png''alt' => t('>>>')));
        
$vars['content']['links']['node']['#links']['node-readmore']['html']    = TRUE;
        
$vars['content']['links']['#attributes'] = array('class' => array('inline''more-link'));
    }
}
?>

Вроде картинку получил и все работает, но вот прижать к правой границе не получается. Последняя строчка меняет стандартные CSS классы для списка ссылок с дефлотных "links inline" на "more-link inline", т.к. класс more-link прижимает контейнер вправо. Но почему-то это не работает. Sad

[РЕШЕНО] Как на D7 получить краткое содержание узла (brief, teaser) ?

30 мая 2011 в 10:52

На D6 в базе для узла хранилось отдельное поле - тизер, благодаря которому можно было получить краткое содержание узла без заголовка, тегов, приложений и т.п. т.е. только текст. Как это сделать на D7 ?
Дело в том что API-я ф-я node_view($node, 'teaser') возвращает тизер с заголовком и ссылкой "Read More"... Меня это не устраивает, мне нужен только бриф-текст узла, но как ?

Как удалить язык локализации и при этом не потерять контент узлов, на нем написанных ?

17 мая 2011 в 18:28

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

Как ускорить работу image style ?

22 февраля 2011 в 19:33

Очень медленно работает модуль image-style (бывший imagecache). Как только идет одновременно несколько запросов на большое кол-во картинок начинаются жуткие тормоза, хотя для всех картинок соответствующие стили уже давно построены и лежат в папке style. Загрузка процессора 100% - почти все съел аппач. Я поставил APC, ситуация стала чуть легче, но не значительно.
Как избавиться от этого ступора?

Как передать настройки своему скрипту из кода сниппета ?

22 февраля 2011 в 19:27

Собственно вопрос ?

Я использую небольшой php код который добавлят на страницу jQuery скрипт (это я делаю через drupal_add_js()). Теперь скрипту нужно передать настройки, для этого как я понял тоже нужно использовать drupal_add_js() с типом setting и завернуть настройки в массам. Вроде все делаю правильно, но почему-то настройки не передаются!
Я скопировал кусок кода передачи настроек из модуля colorbox, и заменил настройки на свои ... посмотрел код сгенерированной странички - действительно в секцию colorbox-а были добавлены мои настройки. Меняю название секции ( в докмуентации друпала это должно быть название модуля ) на свое (имя моего скрипта) - настройки в странице пропали!
Это что получается, друпал проверяет название секции на соответствие списку модулей и для простого сниппета возможности передать свои настройки в скрипт нет ?

Очень нуждаюсь в совете. Заранее спасибо.

PECL uploadprogress для Windows сервера

9 февраля 2011 в 18:21

Седьмой друпал и шестой с последними обновлениями использую сторонние прогресс бары для отображения процесса закачки файла на сервер. На странице статуса системы (Главная › Управление › Отчёты) даже есть предложение устновить или PECL uploadprogress или APC. Оба есть под unix-like системы, а вот как установить на Windows сервере пришлось поискать.

Поиски в инете привели к страничкам http://freestylesystems.co.uk/blog/installng-pecl-uploadprogress-extensi... и http://blog.liip.ch/archive/2009/03/09/upload-progress-meter-for-windows... благодоря которым нашлась вот этот рецепт:
1. Заходим сюда ( http://downloads.php.net/pierre/ ) и качаем нужную вам версию PECL uploadprogress (сейчас там доступны для PHP 5.2 VC6 и PHP 5.3 VC9 )
2. Копируем скачанную dll-ку в каталог ext и прописываем extension=uploadprogress.dll в php.ini.
3. Рестартуем аппач.
4. Все Smile

P.S.: Страничка http://downloads.php.net/pierre/ очень полезна т.к. содержит все PECL расширения скомпилированные для Windows, в то время как сайт широко известного проекта pecl4win до сих пор не работает.

Как сделать поле файла ноду которое ссылается на уже существующий на сервере файл, а не требует обязательно загрузки нового ?

4 февраля 2011 в 16:19

Текущее существующее поле "файл" которое можно задать типу документа не позволяет при создании документа выбрать файл который уже есть на сервере в папке файлов друпала!, это поле позволяет только загрузить новый файл и тогда доп.поле на него будет сформировано ядром друпала. У меня же другая задача, файлы уже есть на сервере, лежать в нужном месте. Как сформировать доп.поле не загружая файл заново, ссылаясь на уже существующий ?

не работает автораскрытие пунктов меню (Drupal 7)

16 января 2011 в 0:40

С каких то пор на сайте (Druapl 7) перестало работать автораскрытие пунков меню в блоке. Блок находится в левом регионе и отображает элементы основного меню (primary menu), некоторые пункты содержат несколько подменю (сслыки на термины из таксономии, на статьи и т.д.) общая вложенность - 3.
Раньше на шестом друпале при нажати на пункт меню в блоке он автоматически разворачивался показывая какие есть в нем подпункты... и это было шорошо. Некоторое время также работал сайт и после переезда на седьмой друпал. И вот, перестал... теперь пункты меню автоматически не разворачиваются и до подпунктов не добраться.
Как найти причину ошибки и как ее исправить ? Из сторонних модулей все отключил... остались только CKEditor, IMCE, Site Verification... тема и та - стандартная.

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

И еще, в 7м друпале "хлебные крошки" что, так же не работают без сторониих модулей, как и в шестом ?

Организация автоматического отображения альбомов и приватная файловая система в Brilliant Gallery ?

3 января 2011 в 1:47

Есть несколько вопросов к знатокам по Brilliant Gallery:
1. Brilliant Gallery позволяет в одном теге сделать просмотр только для одного альбома (папки на диске в файловой системе). Для отображения подальбомов (вложенные папка) автор предлагает вручную прописывать теги [bg|] для каждой подпапки. Ну когда их немного это не страшно, а когда из несколько сотен ? Какими средствами можно организовать автоиматическое формирование тегов [bg|] для каждой из подпапок в выбраном альбоме (папки) ?