Показаны сообщения с ярлыком drupal. Показать все сообщения
Показаны сообщения с ярлыком drupal. Показать все сообщения

вторник, 6 декабря 2011 г.

Теммзация формы коментариев в Drupal 7

 
 
 
 
function THEMENAME_form_comment_form_alter(&$form, &$form_state) {
  //dpm($form);  //shows original $form array
  $form['author']['#type'] = 'fieldset';
  $form['author']['#title'] = 'Your Information';
  $form['author']['#collapsible'] = FALSE;

  $form['your_comment'] = array(
    '#type' => 'fieldset',
    '#title' => t('Your Comment'),
    '#collapsible' => FALSE,
    '#weight' => 2,
  );

  //Subject
  $form['your_comment']['subject'] = $form['subject'];
  unset($form['subject']);
  $form['your_comment']['subject']['#weight'] = -10;

  //Comment
  $form['your_comment']['comment_body'] = $form['comment_body'];
  unset($form['comment_body']);

  $form['author']['homepage']['#access'] = FALSE;

  $form['author']['mail']['#required'] = TRUE;

  //dpm($form);  //shows $form array after our changes

}

Убрать подсказки по форматам в Drupal 7

function yourtheme_form_comment_form_alter(&$form, &$form_state, &$form_id)
{
  $form['comment_body']['#after_build'][] = 'configure_comment_form';
}

function configure_comment_form(&$form) {
  $form['und'][0]['format']['guidelines']['#access'] = FALSE;
  return $form;
}

понедельник, 5 декабря 2011 г.

Друпаловские табы и сообщения

По умолчанию не оформленные табы в друпале имеют ужасный вид. Чтобы их привести к красивым закругленно-бело-серым закладкам, нужно прописать следущее:


ul.tabs
{
    font-family: Tahoma, Arial, sans-serif;
    font-size: 11px;
    line-height: 17px;
    margin: 0 0 30px 0;
    padding: 0 0 0 4px;
}

ul.tabs li
{
    margin: 0 0 0 4px;
    padding: 0;
    border: 0;
}

ul.tabs li a:link,
ul.tabs li a:visited
{
    background: #F7F7F7;
    color: #BBBBBB;
    border: 1px solid #C5C5C5;
    border-top-left-radius: 3px; -moz-border-radius-topleft: 3px;
    border-top-right-radius: 3px; -moz-border-radius-topright: 3px;
    padding: 2px 9px 2px 10px;
    margin: 0;
}

ul.tabs li a:hover,
ul.tabs li a:active
{
    color: #5F5F5F;
    background: #F9F9F9;
}

ul.tabs li a.active:link,
ul.tabs li a.active:visited
{
    border-bottom-color: white;
    background: transparent;
    color: #515151;
}

ul.tabs.secondary
{
    position: relative;
    top: -10px;
}


Источник: http://xandeadx.ru/blog/drupal/252

Так же улучшаем вывод messages:

.messages {
        margin:15px 0px 15px 0px;
        font:bold 14px Arial,sans-serif;
        z-index:9999999;
}

.messages.status {
        background:#ccffcc;
        padding: 5px 5px 5px 15px;
        border: solid 1px green;
        color:black;
}

.messages.status a{
        color:#448844;
}

.messages.error {
        background:#ff8888;
        padding: 5px 5px 5px 15px;
        border: solid 1px red;
        color:black;
}

Добавление js-файла через drupal_add_js в template.tpl.php в Drupal 7

В 7й версии друпала добавление js-файла стало намного проще и производительнее.
Для этого надо использовать хук твоятема_preprocess_html(&$vars)

function adaptivetheme_mamaexpert_preprocess_html(&$vars) {
  if (drupal_is_front_page()) drupal_add_js(path_to_theme()  . '/js/frontpage-slideshow.js');
}

Для сравнения, в 6й версии необходимо было использовать хук твоятема_preprocess(&$vars, $hook), примерно так:
function твоятема_preprocess(&$vars, $hook) {
  if (drupal_is_front_page()) drupal_add_js(path_to_theme()  .

пятница, 26 августа 2011 г.

Drupal: Как подключить css файл только для IE6 | Drupal для новичков. Друпал для начинающих

Drupal: Как подключить css файл только для IE6 | Drupal для новичков. Друпал для начинающих: Drupal: Как подключить css файл только для IE6
сб., 20/08/2011 - 23:27 — admin

drupal_add_css(path_to_theme() . '/ie6.css', array(
'group' => CSS_THEME,
'browsers' => array('IE' => 'IE 6', '!IE' => FALSE),
'preprocess' => FALSE)
);

Вместо строчки IE 6 можно прописать любое условное выражение доступное в Conditional Comments.

Комментарии

Отправлено через панель инструментов Google:

воскресенье, 14 августа 2011 г.

CSS injection

Некоторые сайты работают на многотемности, хотя фактически вся проблема сводится к тому, что просто какие-то классы для каких-то страниц должны определятся по разному.
Например, на одной странице фон должен быть одного цвета, а на других(или другой) - другого цвета.
Использовать шаблоны типа page-node-id.tpl.php тут совсем не к месту, модуль Themekey решает задачу, но создает сложности из-за кучи практически одинаковых тем. На помощь пришла идея с css injection.
Почитав в интернете несколько статей стало ясно, что в зависимости от урла можно подгружать различные css. Для этого мы должны написать соответствующую функцию в template.php
Но, во-первых, не все программисты, а во вторых - мне показалось это не гибко.
И тут нашелся модуль CSS Injector.
Суть модуля такова: в административной панеле, в настройках модуля вы указываете какой css код должен прогружаться на каких страницах. Определение страниц для кода такое же как и у блоков, поэтому сложностей не вызовет. Указанные стили записываются в отдельный файл, который уже инклюдится в head на выбранной странице.
Знали бы вы сколько бы времени я сэкономил, если бы нашел это решение раньше...
Если у кого-то будет проблема, что в head поялвяется инклюд, но в то же время пути в созданному css не корректны, то рекомендую сразу же воспользоватсья патчем (в файле css_injector.module строки с - удаляем, с + вставляем):
function _css_injector_rule_path($crid) {
if (!empty($crid)) {
- $local_path = drupal_realpath(_css_injector_rule_uri($crid));
- // Now remove the part before the drupal root.
- // The +1 gets rid of the leading '/'.
- $local_path = substr_replace($local_path, '', 0, strlen(DRUPAL_ROOT) + 1);
- return $local_path;
+ return variable_get('file_public_path', conf_path() . '/files') . '/css_injector/css_injector_' . $crid . '.css';
}
return NULL;
}

среда, 13 июля 2011 г.

Способы повышения производительности высоконагруженных проектов на CMS Drupal - LVEE

Способы повышения производительности высоконагруженных проектов на CMS Drupal - LVEE: "350.org

Способы повышения производительности высоконагруженных проектов на CMS Drupal

Виталий Иоскевич, Минск, Беларусь

Drupal is a popular CMS/CMF used to power the different types of web-projects worldwide. The desire of developers to make their system competitive in terms of functionality and flexibility sooner or later leads to increase of server load and reduced performance. Extensive functionality, flexibility in configuration and extensibility through third-party modules are undoubtedly a huge advantage, enabling to carry out projects of varying complexity and purpose, but the price often is a poor performance of high loaded Drupal-powered sites. In our review we are going to revise existing standard methods of Drupal performance optimization (both server- and client-side) and demonstrate custom solutions that can be applied to some of the critical areas of Drupal-powered high-loaded website. In our real life example we are going to show how to build Google Map page, capable to show thousands of markers based on Drupal content nodes.

Drupal (7-ая, текущая версия) является достаточно развитой системой управления контентом. Стремление разработчиков сделать свою систему универсальной и более функциональной, чем у конкурентов, рано или поздно приводит к тому, что возрастают нагрузки на сервер, снижается быстродействие. Обширный функционал, гибкость в конфигурировании и расширяемость посредством сторонних модулей несомненно являются огромным преимуществом, благодаря которому позволяет выполнять проекты различной сложности и назначения, но плата за него — низкая производительность готового решения.

Чем больше число использованных на сайте сторонних модулей (в т. ч. собственной разработки), тем ниже производительность сайта при больших нагрузках (большом количестве посетителей), а именно при построении сайтов с предполагаемым большим числом посетителей никак не обойтись стандартным функционалом CMS. Таким образом, данная CMS оказывается весьма требовательной к ресурсам сервера, и в большинстве случаев проблема решается выбором специализированных дорогих хостингов — выделенный сервер или несколько серверов.

Но и при ограниченных возможностях сервера есть способы улучшения производительности сайта. Стандартной системы кэширования Drupal достаточно для нормальной работы среднего сайта при неинтенсивной посещаемости, однако для случая высокой нагрузки на сайт этой системы недостаточно.
Основные методы повышения производительности Drupal:

* включить кэш в модулях, позволяющих кэширование (таких как Views, Panels, Feeds, SWF Tools и т.п.);
* увеличить время жизни кэша для стандартной системы кэширования Drupal. При этом надо иметь ввиду, что посетители будут видеть обновления содержимого значительно позже;
* если нет большой необходимости в статистике, можно выключить стандартные модули statistics и database logging. Они используют дополнительные запросы к БД при загрузке страницы. Кроме того, можно найти альтернативу данным модулям;
* использовать модуль CSS Gzip. Уменьшает размер файлов и количество http-запросов;
* использовать модуль Global Redirect. Предотвращает кэширование дубликатов содержимого сайта по ссылкам псевдонимам (синонимам) в случае использования «Clean URL»;
* использовать модуль Javascript Aggregator. Настройки Drupal позволяют объединить js-файлы, однако этот модуль позволяет еще и уменьшить конечный размер передаваемого файла;
* заменить системный cron на более функциональный модуль Elysia Cron. В отличие от системного, Elysia Cron позволяет распределить задачи по времени одна за одной, а не все вместе, при этом снижая пиковую нагрузку на сервер;
* перенести вызов javascript вниз станицы;
* помещать сторонние библиотеки вне каталога модулей /sites/all/modules – например, в /sites/all/libraries. В таком случае Drupal не будет просматривать ненужные ему файлы;
* конвертировать таблицы MySQL в UTF8 InnoDB;
* создать индексы для медленных запросов Views. Желательно проанализировать такие запросы и увеличить производительность созданием индексов для полей;
* использовать ImageMagick вместо стандартной GD image
* library, т. к. он лучше использует ресурсы сервера и дает лучшее качество изображений;
* использовать модуль Content Delivery Network integration. Он позволяет распределить файлы на множество разделенных серверов. При этом снижается динамическая нагрузка на сервер, но требуется дополнительная плата за каждый сервер;

Наиболее продуктивный способ увеличения производительности – отдельная эффективная система кэширования.

Boost. Одна из лучших систем кэширования для shared hosts. Cоздает копии html-станиц, которые генерирует Drupal, и хранит их в каталоге cache. Используя правила «.htaccess», Boost проверяет, существует ли необходимый файл. Если да, то загружает статичный html, полностью избегая Drupal/PHP/MySQL. Если нет, генерирует файл. Старые файлы удаляются по cron для того, чтобы выводимое содержимое сайта оставалось свежим (актуальным).

Memcache. Серверная система кэширования, сохраняющая
страницы сайта в оперативной памяти сервера. Все что необходимо для эффективной работы в данном случае — быстрое ОЗУ большого объема. Его можно успешно использовать как для кэширования анонимных пользователей, так и для зарегистрированных. Но возможен и вариант, когда Memcache кэширует зарегистрированных пользователей, а Boost используется для кэширования анонимов. К преимуществам варианта можно отнести возможность кэширования анонимов и зарегистрированных пользователей, а к недостаткам — то, что нужен хотя бы VPS, c достаточной оперативной памятью и невозможность работы на shared hosting.

APC (Alternate PHP Cache). Система кэширования op-code для серверов Apache. Подход весьма эффективен при большом числе активных модулей на сайте. Суть системы заключается в кэшировании компилированного байт-кода PHP-скрипта для того, чтобы избежать расходов ресурсов сервера на разбор и компиляцию исходного кода при каждом запросе. Для дальнейшего повышения производительности кэшированный код хранится в общей памяти и непосредственно выполняется оттуда, тем самым сводя к минимуму количество медленных операций чтения файлов и копирования в памяти во время выполнения. К преимуществам относится ускорение компиляции скриптов Drupal и уменьшение использования ресурсов сервера, к недостаткам — необходимость произвести специальное конфигурирование сервера.

Varnish (reverse proxy http-accelerator). Данная система выступает на первом плане над сервером Apache, PHP и Drupal.
Varnish сохраняет кэшированное содержимое в оперативной памяти, и таким образом экономит ресурсы на загрузке Apache и Drupal. В результате этого Varnish предоставляет высокую производительность для кэшированных страниц для анонимных пользователей и является предпочтительным вариантом для сложных ресурсоемких сайтов, требующих значительной масштабируемости. Для работы с Drupal 6 необходима была отдельная «оптимизированная» сборка дистрибутива под названием PressFlow и установка модуля интеграции Varnish HTTP Accelerator Integration. Для текущей версии Drupal достаточно установки модуля.
Пример проекта с высокой нагрузкой — 350.org (Drupal 6)

К характеристикам проекта можно отнести следующие:

* 150 000+ уникальных посетителей в день
* 6000+ ивентов, созданных пользователями
* ок. 500 авторизованных пользователей постоянно на сайте
* самая посещаемая страница: карта ивентов (/map)

Кэширование критично как для анонимов, так и для авторизованных пользователей. Используется Pressflow/Varnish и специальные меры для повышения производительности:

* Отказ от Views для генерации больших массивов данных
* XML-файл на диск вместо DB-кэша (плюсы/минусы)
* Кэширование на диск всех RSS-фидов
* Ajax-запросы информации для маркеров на карте.

вторник, 12 июля 2011 г.

Чистые ссылки. Что это? Реализация. Проблемы и решения

"Чистыми" URL (или "чистыми" ссылками, в английском написании "clean URLs") называют URL вида: http://mysite.com/node/1. Т.е. в теле ссылки нет никаких знаков "?" или "&". Обычно ссылка в Drupal выглядит как: http://mysite.com/index.php?q=node/1, что согласитесь намного менее приятно. Именно поэтому придуман механизм "чистых" URL, которые более удобочитаемы и понятны.

Хотя в Drupal 5 "чистые" URL включались в админке Drupal, а в Drupal 6 предлагается включить "чистые" URL прямо при установке (если это возможно, конечно), сам Drupal к реализации "чистых" URL не имеет никакого отношения. Единственное, что делает Drupal, если включены чистые ссылки - это при формировании страницы учитывает это и показывает ссылки в "чистом" виде. А всю работу по корректному отображению страниц, адресованых по "чистым" URL, делает веб-сервер. Поскольку в большинстве случаев в качестве веб-севрера всё-таки работает Apache, то можно говорить, что всю необходимую для "чистых" URL работу проделывает модуль Apache mod_rewrite, а Drupal лишь предоставляет этому модулю необходимые настройки.

Где же хранятся эти настройки и что они из себя представляют? Настройки для модуля mod_rewrite находятся в файле .htaccess, который находится в корневом каталоге Drupal (т.е. там где лежит index.php). После установки Drupal со включенными "чистыми" URL они выглядят так:


RewriteEngine on

# RewriteBase /

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]


Я показал только интересующие нас строки из файла .htaccess, на самом деле их там намного больше!

Итак, поясняю, что же здесь написано. Как можно заметить весь блок находится между строками:


...


Эти строки служат для того, чтобы содержимое блока обрабатывалось веб-сервером только если установлен и включен модуль mod_rewrite. Вообще-то, поскольку этот модуль почти всегда установлен и включен, их можно было бы опустить. Однако, если по какой-то причине модуль не установлен или не включен, то без этих строк веб-сервер будет выдавать ошибку 500, потому что не знает, что делать с директивами внутри блока.

Далее, директива

RewriteEngine On

говорит о том, что для данного каталога (и всех его подкаталогов, если в них самих не указано отдельно) включена обработка URL с помощью модуля mod_rewrite. Если вам в каком-либо подкаталоге захочется выключить эту обработку или даже вообще захочется отказаться от "чистых" URL, то всё что вам нужно сделать это указать "Off" вместо "On", не удаляя собственно никаких правил преобразования URL.

Далее, обратите внимание на строку

# RewriteBase /

Вообще-то, строки, которые начинаются на "#" считаются комментариями и не рассматриваются как правила для модуля mod_rewrite. Но данная строка приведена мной, потому что она может играть важную роль, если ваш Drupal установлен не в корневой каталог вашего сайта, а является лишь его разделом (например, если он установлен в подкаталог drupal (http://mysite.com/drupal)). Об этом я расскажу ниже в разделе решения возможных проблем.

И вот, наконец, мы добрались до нужного нам правила, состоящего из нескольких строк:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Как видите, правило снабжено английским комментарием "Rewrite URLs of the form 'x' to the form 'index.php?q=x'" (Преобразовать URL 'x' в конструкциях типа 'index.php?q=x'). Разьясняю подробно каждую строчку. Для начала обратите внимание, что сперва идёт три строки RewriteCond и только одна строка RewriteRule. Строки RewriteCond описывают условия срабатывания правила преобразования URL, а строка RewriteCond описывает собственно само правило. Последовательно следующие друг за другом строки RewriteCond обьединяются с уловием логического "И". Итак, первые три строки с RewriteCond говорят следующее: если указанное в URL имя не является существующим файлом И, при этом, указанное в URL имя не является существующим каталогом, И, при этом не совпадает с 'favicon.ico', то применить нижеследующее правило.... Т.е. если вы, например создадите на своём сайте файл или каталог с именем "node/1" и при этом наберёте в браузере http://mysite.com/node/1, то даже при включенных "чистых" URL правило не сработает и вам будет отдан существующий файл node/1 (если это файл) или индексный файл каталога node/1 (если это каталог и в нём есть индексный файл).

И в заключении, разберём собственно строку правила с преобразованием URL. Правило преобразования URL в строке RewriteRule говорит: заменить ВСЁ что указанно в пути URL, подставив вначале "index.php?q=", а затем весь путь.. Конструкция "^(.*)$" в первой части (части поиска) означает шаблон, который совпадает с полным путём в URL (т.е. всем, что находится за http://имя_сайта), а конструкция во второй (подстановочной части) "$1" означает первое найденное совпадение с шаблоном (т.е. в нашем случае весь путь). После выполнения данного правила, например над URL http://mysite.com/node/1, веб-серверу будет передан другой URL: http://mysite.com/index.php?q=node/1. И именно в таком виде данный URL будет обработан самим Drupal.

Вот, собственно, и весь секрет "чистых" URL и того как они работают
Возможные проблемы и пути их решения

Новички часто сталкиваются с тем, что у них не работают "чистые" URL. Начинаются судорожные поиски решения в самом Drupal, насилование админки и т.д. Но как вы уже поняли после прочтения данной статьи, сам Drupal не имеет к правильной работе "чистых" URL почти никакого отношения. Поэтому, для настройки "чистых" URL необходимо корректно настроить веб-севрер. Когда Drupal увидит, что веб-сервер настроен корректно, то легко начнёт работать с "чистыми" URL..

Итак не работают "чистые" ссылки:

1. Проверьте возможно ли их включить в административном разделе: /admin/settings/clean-urls (здесь и далее путь указан без указания: http://имя_сайта). Если они включаются значит и проблемы больше нет, работайте!
2. Проверьте наличие в файле .htaccess в корневом каталоге вашего Drupal строк, которые были описаны в статье. Если файла .htaccess нет или в нём нет означеных строк, то создайте файл и добавьте строки. Затем вновь переходите к п.1
3. Если есть .htaccess и в нём необходимые строки, а всё-равно ничего не работает, то убедитесь, что у вашего хостинг-провайдера в настройках вашего хостинга разрешено использовать файлы .htaccess. Некоторые хостинг-провайдеры отключают такую возможность по-умолчанию! Убедитесь также, что модуль mod_rewrite у вашего веб-сервера установлен и включен. Вы можете это выяснить также у вашего хостинг-провайдера (хостера).
4. Убедитесь, что в настройках вашего сайта, для каталога сайта, в директиве AllowOverride стоит как минимум значение Limit FileInfo Options Indexes, а лучше All. Если вам недоступен даже на чтение ваш файл с настройками сайта, обратитесь с этим вопросом к хостеру. Поскольку FileInfo контрлирует работоспособность директив mod_rewrite, то без включения этой опции чистые ссылки работать не будут.
5. Если вы прошли пукнты 2,3,4 и не работает, то убедитесь, что перед означеными строками нет других правил для mod_rewrite, которые могут конфликтовать с описанными в данной статье правилами.
6. Если и конфликтующих правил нет и не помогает, попробуйте заменить строчку

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

на

RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

7. Если не помогает и это, попробуйте поиграться с директивой RewriteBase. Возможно вам поможет установка в этой директиве либо относительного пути для вашего каталога с Drupal (например, если вы ставите Drupal не в корневой каталог сайта, а в подкаталог). Т.е. при названии подкаталога скажем drupal, попробуйте указать

RewriteBase /drupal

Возможно это и не все проблемы, которые случаются при неработающих "чистых" URL, однако в 99% написанное вам поможет. А если вы нашли новую проблему и решение, присылайте на указанный ниже адрес электронной почты для назидания потомкам.

воскресенье, 24 апреля 2011 г.

Вывести заголовок текущего документа в цепочке навигации.

Главная » Создание сайта на Drupal » Навигация » Хлебные крошки (breadcrumbs)
Заголовок текущей страницы в цепочке навигации
07 Ноя 2008
Опубликовано VladSavitsky
Задача:

Вывести заголовок текущего документа в цепочке навигации. Заголовок не должен быть ссылкой.
Решение
Варианты решений

* Переопределить вывод $breadcrumb в теме

Переопределить вывод $breadcrumb в теме

В файле template.php текущей темы добавить код:
function phptemplate_breadcrumb($breadcrumb) {
if (!empty($breadcrumb)) {
$breadcrumb[] = drupal_get_title();
return ''. implode(' > ', $breadcrumb);
}
}
Совместное использование с модулем Taxonomy Breadcrumb

* В модуле нужно отключить вывод названия термина в цепочке навигации . См. параметр "Show current term in breadcrumb trail?" на странице /admin/settings/taxonomy-breadcrumb (Drupal 5.x)
* В "Расширенные настройки" включить (include) нужные типы материалов, которые должны также обрабатываться модулем Taxonomy Breadcrumb.
* Заменить "Главная" на ...

Полезные рецепты по этой теме
Использованные материалы

* Menu and breadcrumb customising

четверг, 17 марта 2011 г.

Модули

Default Content
Allows export of select nodes (along with attached images etc.) to a Features exportable.

More Comments
More Comments module replaces the default pager of comments with a button that loads the next page of comments using ajax.

Placeholder
This project adds an extra FAPI attribute called '#placeholder' to textfield field elements. Often textfields should have some text in them like "Enter your text here" until the user clicks on (or tabs to) the element in question. At that point, the text should disappear and the user can enter his or her desired input.

Blockify
This module exposes a number of core Drupal elements as blocks.

Hide Show Summary
This module allows users to remove the "hide show summary in full view" check box on selected node types.

IMCE Tools

Nice messages




Formatters for Node Reference fields
Allows for any non-Node Reference formatter to be used with Node Reference fields and passes the assumed appropriate field from the referenced node.

Panels Extras

воскресенье, 13 февраля 2011 г.

Повышаем защищённость CMS Drupal « Рецепты от Сеогада

Повышаем защищённость CMS Drupal « Рецепты от Сеогада:

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

Это также могут быть обычные Drupal модули, скачанные с порталов о создании сайтов. Установив данный модуль, Вы обречёт свой сайт на взлом.
Как же обезопасить себя от попадания вредных скриптом на сайт? Нанести вред подобные скрипты могут с папки, на которую разрешена запись на сервер. Таким папками являются templates и /uploads/.
Полностью запретить запись на эти паки не удастся, так как именно в них производится загрузка основного полезного графического и аудио контента сайта. Однако ,чтобы обхитрить злоумышленников, мы пропишем в файле .htaccess запрет на исполнение сторонних скриптов.
Делается это очень просто:Добавляем запись «php_flag engine off» (без кавычек). После проведения такой несложной операции заливка вредоносных скриптов становиться просто бесполезной, так как скрипты не смогут изменять файлы этих папок и вложенных в них.
Надеемся, наш совет поможет Вам избежать многих проблем.

вторник, 8 февраля 2011 г.

Drupal: Вывод кликабельного виджета Fivestar в представлении Views | Блог музицирующего веб-девелопера

Drupal → Вывод кликабельного виджета Fivestar в представлении Views

Создаём представление. Добавляем поля, фильтры, сортировку, меняем настройки по вкусу.
Добавляем новую взаимосвязь Материал: Votes:
Добавление взаимосвязи
В настройках взаимосвязи выбираем тег голосования Normal vote и отмечаем опцию Restrict to current user:
Настройки взаимосвзяи
Добавляем новое поле Голоса: Значение:
Добавление поля
Настройки поля: внешний вид — Звёзды (кликабельно, без текста), связь — Голоса, остальное по дефолту:
Настройки поля
Сохраняем представление. Результат:
Список материалов с возможностью проголосовать
Если в взаимосвязях вместо Материал: Votes выбрать Материал: Vote results, то в виджетах будет показываться общий рейтинг материала.

пятница, 4 февраля 2011 г.

Вывод картинок дочерних терминов с ссылкой на страницу термина

<?php
$v 
views_get_current_view(); 
//Из аргументов получаем ID текущего термина
 $term_id intval($v->args[0]);
 //Выводим дерево потомков термина
 $terms taxonomy_get_children ($term_id);
foreach ($terms as $term) {
 $imag taxonomy_image_display($term->tid);
print l($imagtaxonomy_term_path($term), array('html' => array('html' => 'true')));
    }
 $t taxonomy_get_term($term_id);
 ?>

Простой каталог / Views / DruIT

Простой каталог / Views / DruIT: "Отправлено через панель инструментов Google:"