<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=Drupal_snippets</id>
	<title>Drupal snippets - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zina.run/index.php?action=history&amp;feed=atom&amp;title=Drupal_snippets"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=Drupal_snippets&amp;action=history"/>
	<updated>2026-10-12T09:33:12Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://mediawiki.zina.run/index.php?title=Drupal_snippets&amp;diff=196&amp;oldid=prev</id>
		<title>&gt;Zina в 15:19, 20 березня 2018</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zina.run/index.php?title=Drupal_snippets&amp;diff=196&amp;oldid=prev"/>
		<updated>2018-03-20T15:19:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Темизация ==&lt;br /&gt;
&lt;br /&gt;
=== Добавить span в пункты меню ===&lt;br /&gt;
Необходимо переопределить в [[template.php]] функцию темизации пунктов меню ([http://api.drupal.ru/api/function/theme_menu_item_link/6 theme_menu_item_link()]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phptemplate_menu_item_link($link) {&lt;br /&gt;
  if (empty($link[&amp;#039;localized_options&amp;#039;])) {&lt;br /&gt;
    $link[&amp;#039;localized_options&amp;#039;] = array();&lt;br /&gt;
  }&lt;br /&gt;
  $link[&amp;#039;localized_options&amp;#039;][&amp;#039;html&amp;#039;] = true;&lt;br /&gt;
  return l(&amp;#039;&amp;lt;span&amp;gt;&amp;#039; . check_plain($link[&amp;#039;title&amp;#039;]) . &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;, $link[&amp;#039;href&amp;#039;], $link[&amp;#039;localized_options&amp;#039;]);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Убрать ссылку у элемента меню ===&lt;br /&gt;
Необходимо переопределить в [[template.php]] функцию темизации пунктов меню ([http://api.drupal.ru/api/function/theme_menu_item_link/6 theme_menu_item_link()]).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phptemplate_menu_item_link($item) {&lt;br /&gt;
  // Адрес для которого нужно убрать ссылку node/34&lt;br /&gt;
  if ($item[&amp;#039;link_path&amp;#039;] == &amp;#039;node/34&amp;#039;) {&lt;br /&gt;
    $attributes[&amp;#039;title&amp;#039;] = $item[&amp;#039;description&amp;#039;];&lt;br /&gt;
    return &amp;#039;&amp;lt;span&amp;#039;. drupal_attributes($attributes) .&amp;#039;&amp;gt;&amp;#039;. $item[&amp;#039;title&amp;#039;] .&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    return l($item[&amp;#039;title&amp;#039;], $item[&amp;#039;href&amp;#039;], !empty($item[&amp;#039;description&amp;#039;]) ? array(&amp;#039;title&amp;#039; =&amp;gt; $item[&amp;#039;description&amp;#039;]) : array(), isset($item[&amp;#039;query&amp;#039;]) ? $item[&amp;#039;query&amp;#039;] : NULL);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Кнопка поиска картинкой ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function THEMENAME_form_search_block_form_alter(&amp;amp;$form, &amp;amp;$form_state) {&lt;br /&gt;
  $form[&amp;#039;actions&amp;#039;][&amp;#039;submit&amp;#039;][&amp;#039;#type&amp;#039;] = &amp;#039;image_button&amp;#039;;&lt;br /&gt;
  $form[&amp;#039;actions&amp;#039;][&amp;#039;submit&amp;#039;][&amp;#039;#src&amp;#039;] = drupal_get_path(&amp;#039;theme&amp;#039;, &amp;#039;THEMENAME&amp;#039;) . &amp;#039;/images/button-search.png&amp;#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Исправление темизации submit/button ===&lt;br /&gt;
&lt;br /&gt;
Даже если задать тип кнопки button, Drupal все равно выводит submit, это происходит изза того, что в функции темизации жестко прописан type=&amp;quot;submit&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Исправить этот баг можно двумя путями:&lt;br /&gt;
&lt;br /&gt;
1.исправить функцию темизации input’a в &amp;#039;&amp;#039;include/form.inc:theme_button()&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Исправить строку&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
return &amp;#039;&amp;lt;input type=&amp;quot;submit&amp;quot; &amp;#039;. (empty($element[&amp;#039;#name&amp;#039;]) ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
на&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
return &amp;#039;&amp;lt;input type=&amp;quot;&amp;#039;.$element[&amp;#039;#type&amp;#039;].&amp;#039;&amp;quot; &amp;#039;. (empty($element[&amp;#039;#name&amp;#039;]) ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
2. написать свою функцию темизации (&amp;#039;&amp;#039;phptemplate_button&amp;#039;&amp;#039;) в &amp;#039;&amp;#039;template.php&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Добавление на странице нового региона ===&lt;br /&gt;
&lt;br /&gt;
В info-файле темы должны быть строчки вида:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
regions[left] = Left sidebar&lt;br /&gt;
regions[right] = Right sidebar&lt;br /&gt;
regions[content] = Content&lt;br /&gt;
regions[footer] = Footer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Если этих строк нет - их нужно добавить, иначе все остальные регионы исчезнут.&lt;br /&gt;
&lt;br /&gt;
Ниже нужно дабавит нечто вроде:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
regions[con_top] = Content top&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы содержимое нового региона выводилось на странице нужно в файл &amp;#039;&amp;#039;page.tpl.php&amp;#039;&amp;#039; темы добавить строку:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;content_top&amp;quot;&amp;gt;&amp;lt;?php echo $con_top?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы изменения вступили в силу нужно очистить кэш (Администрирование › Настройка сайта › Производительность)&lt;br /&gt;
&lt;br /&gt;
=== Темизация CCK-полей ===&lt;br /&gt;
&lt;br /&gt;
Для начала необходимо скопировать шаблон полей с модуля [http://drupal.org/project/cck CCK] (&amp;#039;&amp;#039;/sites/all/modules/cck/theme/content-field.tpl.php&amp;#039;&amp;#039;) в каталог с темой. Все изменения вносить в &amp;#039;&amp;#039;content-field.tpl.php&amp;#039;&amp;#039; темы.&lt;br /&gt;
&lt;br /&gt;
Например, чтобы добавить каждому значению поля уникальный класс, нужно заменить строку&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;div class=&amp;quot;field-item &amp;lt;?php print ($count % 2 ? &amp;#039;odd&amp;#039; : &amp;#039;even&amp;#039;) ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
на&lt;br /&gt;
 &amp;lt;div class=&amp;quot;field-item field-item-&amp;lt;?php print $delta; ?&amp;gt; &amp;lt;?php print ($count % 2 ? &amp;#039;odd&amp;#039; : &amp;#039;even&amp;#039;) ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Выровнять элементы формы в строку ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ИМЯМОДУЛЯ_form_alter(&amp;amp;$form, &amp;amp;$form_state, $form_id) {&lt;br /&gt;
	dpm($form_id); // показывает ID формы&lt;br /&gt;
	dpm($form); // показывает все элементы массива формы&lt;br /&gt;
	if ($form_id == &amp;#039;ID_ФОРМЫ&amp;#039;) {&lt;br /&gt;
		// Добавить к тэгу &amp;lt;form&amp;gt; class=&amp;quot;container-inline&amp;quot;&lt;br /&gt;
		$form[&amp;#039;#attributes&amp;#039;] = array(&amp;#039;class&amp;#039; =&amp;gt; array(&amp;#039;container-inline&amp;#039;));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Views ==&lt;br /&gt;
=== Вывод списка дочерних терминов на странице термина ===&lt;br /&gt;
Block category: Lists (Views)&lt;br /&gt;
&lt;br /&gt;
relationship: Parent term&lt;br /&gt;
&lt;br /&gt;
contextual filters: Taxonomy term: Parent term&lt;br /&gt;
&lt;br /&gt;
fields: taxonomy term: Name&lt;br /&gt;
== Код ==&lt;br /&gt;
&lt;br /&gt;
=== Передача данных из PHP в JS ===&lt;br /&gt;
Для подключения JavaScript&amp;#039;ов и передачи параметров в Drupal используется функция [http://api.drupal.ru/api/function/drupal_add_js/6 drupal_add_js()]&lt;br /&gt;
&lt;br /&gt;
PHP код:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
drupal_add_js(array(&lt;br /&gt;
  &amp;#039;section&amp;#039; =&amp;gt; array(&lt;br /&gt;
    &amp;#039;param&amp;#039; =&amp;gt; &amp;#039;value&amp;#039;&lt;br /&gt;
  )&lt;br /&gt;
), &amp;#039;setting&amp;#039;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* section — имя секции(не обязательно)&lt;br /&gt;
* param — имя параметра&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
JavaScript:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
alert(Drupal.settings.section.param);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Получить список всех словарей ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function _get_vocabularis(){&lt;br /&gt;
  $vids = array();&lt;br /&gt;
  $r = db_query(&amp;quot;SELECT v.vid FROM {vocabulary} v&amp;quot;);&lt;br /&gt;
  while($row = db_fetch_object($r)){&lt;br /&gt;
    $vids[] = $row-&amp;gt;vid;&lt;br /&gt;
  }&lt;br /&gt;
  return $vids;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Разное ==&lt;br /&gt;
&lt;br /&gt;
=== Подключить внешние js или css в тему ===&lt;br /&gt;
&lt;br /&gt;
Подключать внешние js/css файлы непосредственно в &amp;#039;&amp;#039;page.tpl.php&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;нельзя!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Все дополнительные файлы подключаются через файл &amp;#039;&amp;#039;ИМЯ_ТЕМЫ.info&amp;#039;&amp;#039;.&lt;br /&gt;
Подключение css (общие):&lt;br /&gt;
 stylesheets[all][] = ИМЯ_СТИЛЯ.css&lt;br /&gt;
Стили только для печати:&lt;br /&gt;
 stylesheets[print][] = ИМЯ_СТИЛЯ.css&lt;br /&gt;
JavaScript:&lt;br /&gt;
 scripts[] = ИМЯ_СКРИПТА.js&lt;br /&gt;
После изменения info-файла необходимо &amp;#039;&amp;#039;&amp;#039;очистить кеш&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Сброс пароль админа ===&lt;br /&gt;
&lt;br /&gt;
Через phpMyAdmin или команду mysql перейти в базу данных сайта и выполнить запрос&lt;br /&gt;
&lt;br /&gt;
 UPDATE users SET pass=MD5(&amp;#039;NEWPASS&amp;#039;) WHERE uid = 1;&lt;br /&gt;
&lt;br /&gt;
[[Категория:Разработка]]&lt;br /&gt;
[[Категория:Drupal]]&lt;/div&gt;</summary>
		<author><name>&gt;Zina</name></author>
	</entry>
</feed>