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

Модуль вывода квитанции Сбербанка. Форма ПД4

2 марта 2009 в 17:04

Не нашел ничего подходящего.
Сделал как бы модуль, который может выводить различные бланки для печати в двух форматах:
1. В браузер, как изображение JPG
2. Как PDF документ
Почему "как бы"? Потому что файл get_bill.module пустой и используется только, как заглушка, для того, что бы можно было в нужном месте вызвать нужный шаблон используя функцию drupal_get_path. Но этот путь можно установить и при помощи variable_set. Кому, как нДравится. Работа модуля заканчивается редиректом на страницу с изображением для распечатки, по этому подключайте его в том месте , где вся нужная предварительная работа закончена.
Если все подключено, как модуль, то вызов осуществляется так:
require_once(drupal_get_path('module', 'get_bill')."/templates/$template.php");
Гда $template содержит название файла шаблона без расширения. Шаблон и картинка должны называться одинаково(за исключением расширений)

Краткое описание:

Для вывода заполненного бланка используется .JPG картинка с пустым бланком

Используя шаблоны можно выводить сколько угодно различных бланков в двух форматах
На каждый бланк один шаблон, который выводит и PDF и HTML

Если текст в строках вывода длиннее отведенного ему места, то его размер корректно уменьшается вплоть до size=1, но это перебор - ничего не прочтете

Русский текст отображается правильно и в Виндах и в Линукс (Но ТОЛЬКО СО ВЛОЖЕННЫМ ШРИФТОМ!!! Иначе - кракозябы). Как я этот шрифт генерил это отдельная песня Smile

Pathauto и правильные окончания автоальясов

21 января 2009 в 17:46

Понадобилось сделать жестко заданные окончания для автосинонимов. Конкретно - ".htm".
Сначала попробовал решить настройками. Написал паттернов типа [term-raw]/[title-raw].htm
Вроде все работает, как надо.
Но вот при совпадении стали появляться альясы, заканчивающиеся на ".htm_0", ".htm_1" и т. д., а если альяс получался длиннее лимита, то он тупо обрезался, до лимита символов. Это не устраивало.

Красиво решить не получилось, пришлось править файл pathauto.inc

Вот, что было исправлено и дописано. Ничего не удалял, исправляемые строки закомментировал.
Первая строка кода (строка 301) и последняя, оставлены без изменений.

$maxlength = min(variable_get('pathauto_max_length', 100), 128);
  //-----Моя 1 правка
  $maxlength = $maxlength - 4; // 4 - символа в .htm
  //$alias = drupal_substr($alias, 0, $maxlength);
  $alias = drupal_substr($alias, 0, $maxlength).'.htm';
  //----- конец первой правки
  // If the alias already exists, generate a new, hopefully unique, variant
  $separator = variable_get('pathauto_separator', '-');
  if (_pathauto_alias_exists($alias, $src, $language)) {
    $original_alias = $alias;
    //-----Моя 2 правка
    $alias = preg_replace('@\.htm$@', '', $alias);
   // for ($i = 0; _pathauto_alias_exists(drupal_substr($alias, 0, $maxlength - strlen($i)) . $separator . $i, $src, $language); $i++)
   for ($i = 0; _pathauto_alias_exists(drupal_substr($alias, 0, $maxlength - strlen($i)) . $separator . $i .'.htm', $src, $language); $i++) {
    }
    //----- конец вторй правки