Прикрепление файла с кириллицей в имени файла
Прислано: pvb-d
ср, 11/11/2009 - 12:31
Пробую прикрепить файл с кириллицей в наименовании (напр. "график.xls") к материалу, используя стандартный модуль upload.
Сообщает об ошибке:
Ваш файл был переименован в xls. из соображений безопасности.
Указанный файл xls. не может быть загружен. Прикреплять можно только файлы с расширениями: xcf svg jpg jpeg gif tiff png mng txt doc xls sxw sxc tex ps pdf rtf djvu ppt pps odt ods odp tgz tar.gz bz2 tar.bz2 tbz2 zip rar psd po pot module info xml xpi diff install patch ogg spx.
Анализ кода (file.inc функция file_save_upload в строке ~528) показал что некорректно обрабатывает функция basename имя файла с кириллицей (на входе "график.xls" на выходе ".xls")
// Begin building file object. $file = new stdClass(); $file->filename = file_munge_filename(trim(basename($_FILES['files']['name'][$source]), '.'), $extensions);
Попробовал на drupal.ru - ситуация аналогичная
Помогло использование модуля
transliteration.
upd: пока писал, нашел решение с basename здесь
png из misc/* в спрайт
Прислано: pvb-d
вт, 29/09/2009 - 19:41
Продолжение темы по оптимизации загрузки картинок с помощью модуля
Imageset. (остапа понесло, называется)
В стандартной поставке drupal в папке misc имеется несколько png-файлов.
menu-*.png - используется в system.css, можно создать спрайт и переопределить CSS, но это не для нашей темы.
Под нашу задачу больше подходят:
arrow-*.png - стрелки сортировки для таблиц
forum-*.png - иконки для стандартного форума
watchdog-*.png - иконки из watchdog
Все картинки в этих группах имеют одинаковый размер (кроме watchdog-error.png, но это я думаю поправимо) и для отображения в коде drupal для них используется вызов theme('image', ...).
Для примера будем использовать картинки arrow-asc.png и arrow-desc.png
1) Генерируем одним из свободных генераторов спрайтов картинку.

2) Добавляем ее в imageset (mysite/admin/settings/imageset) Name: arrow, Size: 13x13, Full size: 27x27, Offset: 7x7, Orientation: verical
3) В свой теме в файле template.php (если его нет, то создаем) переопределяем вывод theme(image
<?php
function phptemplate_image($path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
$name = '';
switch ($path) {
case 'misc/arrow-asc.png': // если стрелка для прямой сортировки
$name = 'arrow:1'; // используем imageset arrow с номером картинки 1
break;
case 'misc/arrow-desc.png': // если стрелка для обратной сортировки?>Иконки bueditor в спрайт
Прислано: pvb-d
вт, 29/09/2009 - 02:33
Меня всегда напрягает большое количество обращений к серверу за N-ым количеством иконок, в том числе и в редакторе bueditor. Хоть картинки и кэшируются на клиенте при первом обращении, но тем не менее, лучше один вызов чем 10-15.
1) Установим модуль
imageset, если не установлен, в конфигурации модулей активизируем модули imageset и bueditoricon (имеющийся в комплекте с imageset).
2) Воспользуемся одним из свободных генераторов CSS спрайтов для генерации спрайта, которых множество можно найти в сети.
Сайт Пермского ЦСМ на drupal
Прислано: pvb-d
ср, 31/12/2008 - 10:31
Мой первый сайт на drupal государственной конторы ФГУ "Пермский ЦСМ"
Хочется услышать мнение профессионалов и любителей также.
Иконки для меню или графические кнопки
Прислано: pvb-d
вс, 21/12/2008 - 00:58
Периодически на форуме возникают вопросы о том как делать иконки для меню или меню из графических кнопок
Есть несколько вариантов решения:
- вручную темизировать menu_item по примеру http://www.nicklewis.org/node/843
- или использовать сторонние модули (например
imagemenu)
Здесь я опишу как это можно реализовать с помощью модуля
imageset в сязке с menuicon (http://www.drupal.ru/node/21545)
Сделаем меню с иконками аля Drupal.ru
Работа с наборами картинок. Модуль Imageset
Прислано: pvb-d
вс, 16/11/2008 - 00:45
Это попытка автоматизировать процесс вывода картинок используя технологию CSS-спрайтов (вывод заданной области картинки в бакграунде).
За счет объединения картинок (иконок) в одном файле. получается экономия трафика и времени загрузки для клиента
В одном наборе могут использоваться картинки фиксированного размера
Сам процесс использования состоит из трех шагов
1. Готовится в любимом графическом редакторе необходимый набора картинок(imageset), их может быть несколько, в виде матрицы NxM, где N - количество картинок (от 1 и более), M - кол-во вариантов отображения этих картинок(от 1 и более)
Для примера определены 3 картинки (ось Y) и 2 варианта (ось X)

2. Создание нового Imageset в настройках (/admin/settings/imageset).
Задается уникальное имя для набора (т.к. это имя будет применяться в CSS то есть ограничения на допустимые символы: латинские символы, цифры, подчерк и минус)
Размер видимой области картинки в пикселях в формате (ШИРИНА x ВЫСОТА)
Ориентация набора: вертиакльная - картинки по вертикали, их варианты по горизонтали; горизонтальная - наоборот, картинки - по горизонтали, варианты по вертикали
В данном примере можем задать
Имя: icons
Размер: 18x18
Ориентация: вертикальная
3. На вкладке Selectors (admin/settings/imageset/selectors) задаем селекторы для задания необходимого поведения
Для вышеприведенного примера можем указать
CSS selectors: <пустая строка> Imageset: icons Вариант: 2 (картинка из 2-го столбика отобразится по умолчанию)
Модуль управления, отображения таблиц БД
Прислано: pvb-d
ср, 21/05/2008 - 21:16
Возникла необходимость ввода и показа информации ввиде таблиц.
Связка CCK+Views показалась слишком накладной (на каждую запись создавать ноду)
Подходит модуль Tablemanager, но не устраивает в нем хранение данных в одном поле (возможны тормоза на сравнимо большом кол-ве записей)
Родился данный модуль Tabledetail (в основе был интерфейс Tablemanager)
из возможностей
- создание таблиц, управление колонками
- типы значениий колонок: строка, целое, число, дата
- API для определения новых типов, например в модуле tabledetailadd определены: select, text, autonode
слово php в поиске
Прислано: pvb-d
вт, 12/02/2008 - 17:48
Интересный эффект, если задать слово "php" в поиск на drupal.ru
а хотел просто поискать по слову "settings.php"
- Для комментирования войдите или зарегистрируйтесь
Модуль версия для печати
Прислано: pvb-d
пн, 14/01/2008 - 08:12
Взяв за основу это сделал модуль
Переключение css(media=print на media=screen) java-скриптом, если js отключен то формируется страница site/*/printversion
возможность переопределить вид для печати с помощью hook_printversion
Может кому пригодится. Пока на русском. Пожелания приветствуются.
__________________________