Настройка CMS Drupal

Локализация Друпала 4.7

Автор: B.X - 26.09/2006, вт - 14:57

Прикрепляйте, пожалуйста, файлы локализации модулей к этой теме... Желательно, чтобы название файла было аналогично названию модуля (например: captcha.po)... Все переводы окажутся на сайте Перевода Друпала в обязательном порядке...

Нажмите на "Добавить комментарии" и прикрепляйте, регистрация необязательна...

Готовая локализация без БД (4.7)

Автор: jason32 - 25.09/2006, пн - 21:10

Итак, сделал я локализацию без базы. Сделано немного - запросы к базе ещё остались, но их стало порядка 10-20 против 200-400 ранее. Пока изменена лишь одна функция + сделан конвертер из базы. У меня всё прекрасно сработало.
Итак - файл common.inc

Было:

  1. <?php
  2. function t($string, $args = 0) {
  3.   global $locale;
  4.   if (function_exists('locale') && $locale != 'en') {
  5.     $string = locale($string);
  6.   }
  7.   if (!$args) {
  8.     return $string;
  9.   }
  10.   else {
  11.     return strtr($string, $args);
  12.   }
  13. }
  14. ?>

Стало:

  1. <?php
  2. function t($string, $args = 0) {
  3.   global $locale;
  4.   global $lang;
  5.   if (isset($lang[$string])) $string=stripslashes($lang[$string]);
  6.   elseif (isset($lang[addslashes($string)])) $string=stripslashes($lang[addslashes($string)]);
  7.   else
  8.   if (function_exists('locale') && $locale != 'en') {
  9.     $string = locale($string);
  10.   }
  11.   if (!$args) {
  12.     return $string;
  13.   }
  14.   else {
  15.     return strtr($string, $args);
  16.   }
  17. }
  18. ?>

+ converter.php
 

Уменьшение запросов к БД в path.inc (4.7)

Автор: jason32 - 25.09/2006, пн - 20:52

чё тут думать - лезть в код и править
файл path.inc
Вместо

  1. <?php
  2. function drupal_init_path() {
  3.   if (!empty($_GET['q'])) {
  4.     $_GET['q'] = drupal_get_normal_path(trim($_GET['q'], '/'));
  5.   }
  6.   else {
  7.     $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
  8.   }
  9. }
  10. ?>

ставить

  1. <?php
  2. function drupal_init_path() {
  3. global $map_alias;
  4.   $c=count($map_alias);
  5. if (empty($c))
  6. {
  7. $sql = "Select src,dst FROM {url_alias} ";
  8. $res=db_query($sql);
  9.     while( $row=db_fetch_array($res))
  10.     {
  11.     $map_alias[$row['src']]=$row['dst'];
  12.   }
  13.   }
  14.   if (!empty($_GET['q'])) {
  15.     $_GET['q'] = drupal_get_normal_path(trim($_GET['q'], '/'));
  16.   }
  17.   else {
  18.     $_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
  19.   }
  20. }
  21. ?>

вместо

  1. <?php
  2. function drupal_lookup_path($action, $path = '') {
  3.   static $map = array();
  4.   static $count = NULL;
  5.   if ($count === NULL) {
  6.     $count = db_result(db_query('SELECT COUNT(pid) FROM {url_alias}'));
  7.   }
  8.   if ($action == 'wipe') {
  9.     $map = array();
  10.   }
  11.   elseif ($count > 0 && $path != '') {

Отключение rss каналов (4.7)

Автор: B.X - 25.09/2006, пн - 16:05

чтобы убрать rss совсем, нужно модифицировать модуль node, как это описано здесь...
то есть...
находим в module/node.module
строку

  1. function node_feed($nodes = 0, $channel = array()) {

и сразу после неё добавляем:

  1. drupal_not_found();
  2. return;

всё... плюс в css нужно вставить стиль

  1. .main-content .xml-icon, .main-content .feed-icon {
  2. display: none;
  3. }

и ещё нужно убрать rss ссылку со всех страниц сайта...
в node.module (строка 1964) закомментируйте то, что выделено оранжевым цветом:

  1. <?php
  2. if (db_num_rows($result)) {
  3. /* Kerry - turn off to avoid placing link to xml/rss in page
  4. drupal_add_link(array('rel' => 'alternate',
  5. 'type' => 'application/rss+xml',
  6. 'title' => 'RSS',
  7. 'href' => url('node/feed', NULL, NULL, TRUE)));
  8. */
  9. ?>

в blog.module (строка 163):

  1. <?php

Изменение длины заголовков комментариев (4.7, 5.0)

Автор: B.X - 17.09/2006, вс - 15:44

Надо изменить в comment.module на строке 1663 цифру 29 на 129, чтобы заголовки комментариев были длинными и понятными, версия 4.7:

Обрезание сообщения (все версии)

Автор: B.X - 14.09/2006, чт - 04:53

Если надо обрезать длинное сообщение на определённом месте в Друпале, то для этого используется (пробел после открывающей скобки убрать).

Короткое сообщение выводится на главную страницу, например, длинное сообщение будет доступно отдельной ссылкой: "далее"...

Отключение php_flag zlib.output_compression (4.7)

Автор: B.X - 14.09/2006, чт - 04:37

Эксперименты с настройками показали, что если в .htaccess php_flag zlib.output_compression On, то всё нормально, а если этот флаг не используется, то появляется ошибка "Cannot modify header information - headers already sent by (output started at" из модуля pagetime