Сегодня 11 мая, суббота ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7272
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Сайт Ильи Азарова.
Сайт Ильи Азарова.
Голосов: 2
Адрес блога: http://brainstorm.name
Добавлен: 2008-03-13 01:05:02
 

Корректная настройка https в Drupal для случая работы за обратным HTTPS-прокси

2011-11-08 01:11:51 (читать в оригинале)

Drupal
Администрирование
Программирование

Пришлось настраивать Drupal, работающий в следующей конфигурации:

В интернет открыт легковесный https-прокси(nginx), а сам Drupal вертится на сервере apache2 с mod_php. На apache поднят mod_rpaf, все как полагается, однако, сложность такой схемы  в том, что соединение с вебсервером Apache2 идет по протоколу HTTP, а не HTTPS. Соответсвенно работающие на сервере скрипты PHP, в нашем случае Drupal, работают так, словно взаимодействие идет по HTTP, что проявляется в некорректных URL на сайте, невозможности авторизоваться и других проблемах.

Изучив. как ядро Drupal выявляет протоколы, я пришел к простому решению, как заставить его корректно работать  в такой конфигурации. Достаточно добавить в settings.php строчки:

if(
  isset($_SERVER['HTTP_X_FORWARDED_SSL'] )
  && ('on' ==$_SERVER['HTTP_X_FORWARDED_SSL'] )
) {
    $_SERVER['HTTPS'] = 'on';
}

Переменная $_SERVER['HTTP_X_FORWARDED_SSL'] - ее вид - зависит от того, какое ПО вы пользуете. После добавления такой проверки в settings.php Drupal начнет исправно работать с HTTPS без установки дополнительных модулей.



Сайт теперь на двух языках

2011-11-05 00:41:07 (читать в оригинале)

Drupal
Блог
i18n

После анализа модуля i18n было решено его установить и провести эксперимент с переводом части содержимого сайта на английский язык.

Теперь, по мере моих возможностей, каждая новая статья на русском языке, будет сопровождаться на ее переводом на английский. На данный момент есть определенные проблемы "целостности" контента, но я полагаю, они будут решены, а англоязычные пользователи смогут читать статьи сразу на английском здесь.



Модуль DST для Drupal 6: свыше 40 установок за 2 недели. Или почему так много народа начинает все еще на Drupal 6.

2011-10-08 15:02:55 (читать в оригинале)

Drupal 7
Drupal
Drupal 6
миграция на Drupal 7
php5

Согласно статистике на drupal.org, за последние 2 недели было порядка 40 инсталляций моего модуля для правильной работы с временными зонами - dst. Модуль был сделан для Drupal 5 и Drupal 6, которые нормально не поддерживали работу с местным временем. В Drupal 7 эта проблема была решена на уровне ядра, и надо признать более красиво, чем я ее решал с моим модулем :).(правда я делал такой патч, чтобы минимально затронуть текущий функционал и ничего не сломать).

 

Соответсвенно модуля для Drupal 7 не будет. Он там просто не нужен. В ядре все есть.

Вообще, все знают, что Drupal 6 устарел. 7ка вышла в этом году и уже набрала достаточно модулей для нормальной работы. Потому рост статистики модуля для Drupal 6 в свете этого для меня довольно странен.

Но взглянем на проблему шире. Семерка написана с использованием технологий PHP5. Вовсю используются интерфейсы типа Iterator, позволяющие над любым объектом проделать foreach, так как это надо программисту. Ядро не полностью на объектах, оно гибридное. Но сложность написания серьезна выросла. Сам, пока обновлял данный сайт упирался в такие вещи как выбрасывание исключений(Exceptions) при малейших проблемах с БД. И, без знаний PHP5, наверное я врядли бы обновился.

Похоже количество инсталляций Drupal 6 будет только расти :)

А все почему? Большинство PHP разработчиком все еще "остались" там, в начале двухтысячных :), в период с 2000 по 2005, когда в вебе рулило PHP 4.2 несколько лет подряд. И сейчас пытаются писать код исходя из того что и "так прокатит". А вот не прокатит. Самый консервативный фреймворк в плане совместимости наконец-то забил на PHP4 :)

+ для каждого конкретного сайта можно ускорять работу синонимов  путей(path alias), например, правильным написанием конфигурационного файла, и это не является задокументированным, как и многие другие возможности ядра Drupal 7.

То есть порог вхождения вырос. Уровень разработчиков - нет.

К чему все я это пишу. У меня набралось достаточно материала на полноценный доклад об объектно-ориентированном программировании касательно ядра Drupal, либо на серию семинаров на эту тему.

Вот в данный момент сижу и думаю, имеет ли смысл проводить закрытые семинары для повышения уровня разработчиков PHP/Drupal?



Drupal. Вывод страницы минуя стандартные шаблоны темы оформления.

2011-10-06 01:53:48 (читать в оригинале)

Drupal
Drupal 6
Темизация

Задача: в Drupal 6 есть модуль, для которого надо написать обработчик меню, выводящий контент таким образом, что загружены все системные CSS и JS, но при этом от между тэгами <body> и </body> находится только контент хандлера меню.

Данная задача нужна, например когда необходимо вывести определенный контент без  оформления в iframe или в отдельном окне, но при этом сохранить полную работоспобность Javascript.

Решение оказалось на поверхности.(далее код для drupal 6)

Пусть модуль называется mymod. 

Возьмем стандартный page.tpl.php из phpengine от Drupal. Положим в папку модуля под именем empty.page.tpl.php. И приведем к следующему виду:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language->language ?>" xml:lang="<?php print $language->language ?>" dir="<?php print $language->dir ?>">

<head>
<title><?php print $head_title ?></title>
<?php print $head ?>
<?php print $styles ?>
<?php print $scripts ?>
<script type="text/javascript"><?php /* Needed to avoid Flash of Unstyle Content in IE */ ?> </script>
</head>

<body>
<?php print $content; ?>
<?php print $closure ?>
</body>
</html>

Фактически мы оставили в теле документа только вывод переменных $content и $closure.

А дальше, если взглянуть, как Drupal выводит страницу, минуя шаблонизатор, можно понять, что он делает это через template_preprocess(),   template_preprocess_page() и theme_render_template() - основной минимум для вывода страницы. Нам остается задействовав функцию theme_render_template() сделать все то же, что делает Drupal и завершить выполнение скрипта.

Вот примерный код такого хандлера меню:

function mymodule_menuhandler() {
  drupal_set_title('Заголовок');
  $out = 'Какой-то контент, который выводится модулем';
  // тут начинается наше колдунство :)
  init_theme();
  $vars = array('content' => $out);
  template_preprocess($vars, 'page');
  template_preprocess_page($vars);
  $out = theme_render_template(drupal_get_path('module', 'mymodule') . '/empty.page.tpl.php', $vars);
  print $out;
  // завершаем скрипт
  exit();
}

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



Довольно интересная статья о команде git - bisect

2011-10-04 00:15:30 (читать в оригинале)

Git
Bisect
Программирование
баги

Git - мощнейшая система ведения версий исходных кодов, написанная автором ядра Linux, Линусом Торвальдсом.

Одна из разработчиков ядра - Анжела Байрон, известная на drupal.org под  ником webchick,  описала очень удобный поиск "ошибочного" коммита, который привел к появлению бага в программе с использованием команды git  bisect.

Я полагаю, что пример будет полезен тем, кто работает с гитом. Читать здесь.



Страницы: 1 2 3 4 5 6 7 8 9 10 11 

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Блогосфера»
Взлеты Топ 5
+1241
1261
Robin_Bad
+1175
1263
Futurolog
+1090
1094
MySQL Performance Blog
+1028
1098
Ksanexx
+1023
1097
Refinado
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.