drupal 7 https://16rom.com/ru ru Views выборка по числу с запятой https://16rom.com/ru/blog/views-vyborka-po-chislu-s-zapyatoy <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Views выборка по числу с запятой</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>Представим, что у нас есть поле, формат число с точкой. Пусть убдет 2 знаак после точки.<br /> На странице с фильтрами нужно, когда пользователь вводит не целое число, нужно искать по всему диапазону целой части числа.</p> <p>Стандартными средставим вьюхи это можно сделать с фильтрам от и до. Но у нас только одно поле.<br /> Для решения данной проблемы можно использовать hook_views_query_alter.<br /> Допустим у нас уже есть вьюха. Для работы нашего хука нужно присвоить вьюхе уникальный тег, чтоб мы смогли ее вычислить. mymodule_query в этом примере</p> <pre> function mymodule_fix_views_query_alter(&amp;$view, &amp;$query){ $fields = array('field_data_field_diameter.field_diameter_value'); if (!empty($query-&gt;options) &amp;&amp; !empty($query-&gt;options['query_tags']) &amp;&amp; in_array('mymodule_query', $query-&gt;options['query_tags'])) { foreach ($query-&gt;where as $ckey1 =&gt; &amp;$cond_key) { foreach ($cond_key['conditions'] as $ckey =&gt; &amp;$condition) { if (in_array($condition['field'], $fields)) { $value = $condition['value']; $value_start = (int) $value; $value_end = $value_start + 1; $condition['value'] = $value_start; $condition['operator'] = '&gt;='; $condition_new = array(); $condition_new['field'] = $condition['field']; $condition_new['value'] = $value_end; $condition_new['operator'] = '&lt;'; $query-&gt;where[$ckey1]['conditions'][] = $condition_new; } } } } } </pre><p> </p> <p>$fields – это массив с филдами, в которых нужно поменять алгоритм выборки.</p> <p>Далее, если тег совпадает и в запросе есть опции – применяем подмены и добавления значений.</p> <p>Таким образом, если пользователь будет вводить в поле 6.7, то наш алгоритм будет искать филды в диапазоне от 6 до 7 (не включительно).</p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2016-03-26T22:40:46+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sun, 03/27/2016 - 00:40</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal"> <span class="field__item-wrapper"><a href="/ru/tags/drupal" property="schema:about" hreflang="ru">drupal</a></span> </div><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div></div> </div> <section id="node-article-comment-node-article" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=292&amp;2=comment_node_article&amp;3=comment_node_article" token="a70ze13p-fGiMjTfx-BPGbm9YuYgRbPzT2dqhnwXuIA"></drupal-render-placeholder></div></section> Sat, 26 Mar 2016 22:40:46 +0000 admin_romcom 292 at https://16rom.com https://16rom.com/ru/blog/views-vyborka-po-chislu-s-zapyatoy#comments Plugin domain of plugin type views_ui:views_wizard points to nonexistent file https://16rom.com/ru/blog/plugin-domain-plugin-type-viewsuiviewswizard-points-nonexistent-file <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Plugin domain of plugin type views_ui:views_wizard points to nonexistent file</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>Из-за этой ошибки отваливался модуль, страницы в админке, фичи... ерунда какаято.</p> <p> <a href="https://www.drupal.org/node/1716470">https://www.drupal.org/node/1716470</a></p> <p> тут советуют проверить, включен ли views_ui. Конечно включен.</p> <p> И для решения ошибки советуют закомментить строки где указывается файл класса.<br /> Но это плохое решение. Лучше разобраться где проблема.</p> <pre> 'form_wizard_class' =&gt; array( 'file' =&gt; 'views_ui_base_views_wizard.class.php', 'class' =&gt; 'ViewsUiBaseViewsWizard', ),</pre><p>Файл 'views_ui_base_views_wizard.class.php' лежит в модуле views_ui. Ctools не находит правильный путь - поможем ему!</p> <pre> 'path' =&gt; drupal_get_path('module', 'views') . '/plugins/views_wizard',</pre><p><a href="https://www.drupal.org/node/1824914">https://www.drupal.org/node/1824914</a></p> <p> ну и патчик. Спасибо B-prod<br /><a href="https://www.drupal.org/files/domain_views-fix-views_form_wizard-plugin-path-1824914-1.patch">https://www.drupal.org/files/domain_views-fix-views_form_wizard-plugin-path-1824914-1.patch</a></p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2016-02-18T15:33:24+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Thu, 02/18/2016 - 17:33</span> <div class="field field-node--field-download field-formatter-file-default field-name-field-download field-type-file field-label-above has-single"><h3 class="field__label">Download</h3><div class="field__items"><div class="field__item"><span class="file file--mime-text-x-diff file--text"> <a href="https://16rom.com/sites/default/files/blog-attached/domain_views-fix-views_form_wizard-plugin-path-1824914-1.patch" type="text/x-diff; length=484">domain_views-fix-views_form_wizard-plugin-path-1824914-1.patch</a></span> </div></div> </div> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--drupal"> <span class="field__item-wrapper"><a href="/ru/tags/drupal" property="schema:about" hreflang="ru">drupal</a></span> </div></div> </div> <section id="node-article-comment-node-article--2" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=291&amp;2=comment_node_article&amp;3=comment_node_article" token="gUGyJGEgKy0n-ilA4XNq5pPF86tX6YZvG_ZlQuyo098"></drupal-render-placeholder></div></section> Thu, 18 Feb 2016 15:33:24 +0000 admin_romcom 291 at https://16rom.com https://16rom.com/ru/blog/plugin-domain-plugin-type-viewsuiviewswizard-points-nonexistent-file#comments filefield_path nginx https://16rom.com/ru/blog/filefieldpath-nginx <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">filefield_path nginx</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>При использовании модуля filefield_paths и веб-сервера nginx есть проблема с отображением превью картинок image_style.</p> <p>filefield_paths генерирует превью во временной папке и путь system/temporary/*. Я использовал стандартный конфиг для друпала с сайта nginx.</p> <p>Для решения данной проблемы нужно в файле конфига</p> <pre> location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires max; log_not_found off; }</pre><p>убрать расширения картинок чтоб получилось</p> <pre> location ~* \.(js|css|ico)$ { expires max; log_not_found off; }</pre><p>И все заработает.</p> <p> </p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-11-07T09:37:50+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sat, 11/07/2015 - 11:37</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--web"> <span class="field__item-wrapper"><a href="/ru/tags/web" property="schema:about" hreflang="ru">web</a></span> </div><div class="field__item field__item--nginx"> <span class="field__item-wrapper"><a href="/ru/tags/nginx" property="schema:about" hreflang="ru">nginx</a></span> </div></div> </div> <section id="node-article-comment-node-article" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=278&amp;2=comment_node_article&amp;3=comment_node_article" token="OJWCYDDEp1tn9NSCbyQS-w3Uhmdw9jDHdYEUY_ogi9Y"></drupal-render-placeholder></div></section> Sat, 07 Nov 2015 09:37:50 +0000 admin_romcom 278 at https://16rom.com Colorbox slider-pro https://16rom.com/ru/blog/colorbox-slider-pro <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Colorbox slider-pro</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>Пришла идея сделать slider-pro в попапе colorbox через field formatter.</p> <p>Немного грязная реализация, нет нормальных настроек в форматтере поля. Но свою функцию выполняет.</p> <p>В приницпе, данный функционал подошел бы модулю <a href="https://www.drupal.org/project/slider_pro">https://www.drupal.org/project/slider_pro</a> в котором есть только реализацию для вьюх.</p> <p>Установка стандартная. После нее в настройке отображения должна появится опция "Image gallery in Colorbox". При отображении сущности в поле с картинками при выборанном форматтере будет показана ссылка open, после клика на которую откроется попап colorbox и в нем slider-pro.</p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-11-01T20:48:21+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sun, 11/01/2015 - 22:48</span> <div class="field field-node--field-download field-formatter-file-default field-name-field-download field-type-file field-label-above has-multiple"><h3 class="field__label">Download</h3><div class="field__items"><div class="field__item"><span class="file file--mime-application-octet-stream file--general"> <a href="https://16rom.com/sites/default/files/blog-attached/image_gallery_colorbox.tar.gz" type="application/octet-stream; length=2572">image_gallery_colorbox.tar.gz</a></span> </div><div class="field__item"><span class="file file--mime-application-zip file--package-x-generic"> <a href="https://16rom.com/sites/default/files/blog-attached/image_gallery_colorbox.zip" type="application/zip; length=8187">image_gallery_colorbox.zip</a></span> </div></div> </div> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--colorbox"> <span class="field__item-wrapper"><a href="/ru/tags/colorbox" property="schema:about" hreflang="ru">colorbox</a></span> </div></div> </div> <section id="node-article-comment-node-article--3" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=274&amp;2=comment_node_article&amp;3=comment_node_article" token="lW1dUcor1jtru3hib4CIJs6CXBcaeAoAiHFx2No2SaY"></drupal-render-placeholder></div></section> Sun, 01 Nov 2015 20:48:21 +0000 admin_romcom 274 at https://16rom.com https://16rom.com/ru/blog/colorbox-slider-pro#comments Colorbox views множественные изображения https://16rom.com/ru/blog/colorbox-views-mnozhestvennye-izobrazheniya <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Colorbox views множественные изображения</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p><em>Как во вьюхах отобразить ноды с неограниченным количеством изображений в colorbox по одному изображению превью.</em></p> <p>В общем, идея в том, есть у нас ноды с полем Изобржения с неограниченным количеством записей. Нужно сделать выборку по каким-то параметрам во вьюхе, отобразить превью первого изображения в нужном нам стиле, но по клику отобразить colorbox.</p> <p>Конечно, вам понадобятся модули views, libraries, colorbox и colorbox plugin.</p> <pre> $ drush en views libraries colorbox -y</pre><p>Drush подтянет все зависимости, вам останется только закинуть colorbox plugin в папку libraries.</p> <p><a href="https://github.com/jackmoore/colorbox/archive/1.x.zip">https://github.com/jackmoore/colorbox/archive/1.x.zip</a></p> <p><img alt="" src="http://16rom.com/sites/default/files/articles/cb_views_1.jpg" style="width: 710px; height: 573px;" /></p> <p>Порядок действий:</p> <ol><li> создаем вьюху блок/страница</li> <li> показать Поля</li> <li> В полях выбираем поле Изображения <ol><li> - исключить из вывода</li> <li> - средство форматирования “colorbox”</li> <li> - стиль изображения: Thumbnail</li> <li> - Content image style for first image : no special style</li> <li> - Colorbox image style: стиль для отображения в попапе.</li> <li> - Галерея: Одна галерея на материал</li> <li> - Настройка множественного поля:</li> <li> - отображать в одну линию</li> <li> - без разедилителя</li> <li> - Display 1 value</li> </ol></li> <li> Выбираем еще раз поле Изображения <ol><li> - исключить из вывода</li> <li> - средство форматирования “colorbox”</li> <li> - стиль изображения: Full</li> <li> - Content image style for first image : no special style</li> <li> - Colorbox image style: стиль для отображения в попапе ()</li> <li> - Галерея: Одна галерея на материал</li> <li> - Настройка множественного поля:</li> <li> - отображать в одну линию</li> <li> - без разедилителя</li> <li> - all values offset 1 == ставим сдвиг, потому что первым будет стоять изображение которое запускает попап.</li> </ol></li> <li> Добавляем поле Colorbox: Trigger Colorbox <ol><li> - поле триггера выбираем то поле, где превью картинки, в нашем примере это field_images.</li> <li> - всплывающее окно пишем токен поля, где большие изображения. [field_images_1] например, тк field_images мы поставили отображать только одно Изображение – превью.</li> </ol></li> </ol><p><img alt="" src="http://16rom.com/sites/default/files/articles/cb_views_2.jpg" style="width: 720px; height: 520px;" /></p> <p>Ставим блок на страницу или переходим по ссылке на страницу вьюхи и любуемся результатом.</p> <p>Из поля со множеством картинок мы отображаем первое превьюшкой (thumbnail) при клике на него открывается попап colorbox со всеми изображениями.</p> <p>Другие решения:</p> <p>Можно было бы отобразить все изображения и спрятать их по display: none.</p> <p>Или более приемлемый это в template.php темизацию запилить опять же с помощью display:none.</p> <p>Или можно написать свой view_mode и уже в нем кастомизировать вывод поля для сущности.</p> <p>Или заюзать colorbox_field_formatter.</p> <p><img alt="" src="http://16rom.com/sites/default/files/articles/cb_views_3.jpg" style="width: 558px; height: 502px;" /></p> <p><em>Но вьюхами удобней и быстрее.</em></p> <p>UPD: Был приятно удивлен увидев свой мануал на drupal.org <a href="https://www.drupal.org/node/1419098#comment-8883415">https://www.drupal.org/node/1419098#comment-8883415</a></p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-09-26T11:50:20+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sat, 09/26/2015 - 14:50</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--colorbox"> <span class="field__item-wrapper"><a href="/ru/tags/colorbox" property="schema:about" hreflang="ru">colorbox</a></span> </div><div class="field__item field__item--views"> <span class="field__item-wrapper"><a href="/ru/tags/views" property="schema:about" hreflang="ru">views</a></span> </div></div> </div> <section id="node-article-comment-node-article" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><article role="article" data-comment-user-id="0" id="comment-457" class="js-ajax-comments-id-457 comment js-comment comment--type-comment-node-article comment--view-mode-default by-anonymous has-title clearfix"> <div class="comment__container"><h3 class="comment__title comment__author h4"> <span lang="" typeof="schema:Person" property="schema:name" datatype="">Daniel</span> <mark class="comment__new marker marker--success hidden" data-comment-timestamp="1524591152"></mark> </h3> <div class="comment__meta"> <div class="comment__submitted"> <span class="comment__pubdate">Tue, 04/24/2018 - 20:32</span> </div> </div> <div class="comment__content"> <div class="clearfix text-formatted field field-comment--comment-body field-formatter-text-default field-name-comment-body field-type-text-long field-label-hidden has-single"><div class="field__items"><div class="field__item">Thank you so much ....really, really help me</div></div> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=457&amp;1=default&amp;2=en&amp;3=" token="TAKhdD5c74kzDMjNurA_05FetAwSehaM9Z27QrLBkw8"></drupal-render-placeholder></div> </div> </article> <div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=260&amp;2=comment_node_article&amp;3=comment_node_article" token="nTho8RJJHk8rm9YhENnc04_R58pxfFYDdBQM0A3NcLc"></drupal-render-placeholder></div></section> Sat, 26 Sep 2015 11:50:20 +0000 admin_romcom 260 at https://16rom.com Расширенные настройки темы https://16rom.com/ru/blog/rasshirennye-nastroyki-temy <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Расширенные настройки темы</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>Иногда бывает нужно расширить функционал настроек темы: табы, картинки и тд. Не помню точно где я это нашел, но это выручает.</p> <p>В файл theme-settings.php нужно записать alter на форму настроек темы:</p> <pre> function test_theme_form_system_theme_settings_alter(&amp;$form, &amp;$form_state) { $path_theme = drupal_get_path('theme', 'test_theme'); $form['global-settings'] = array( '#type' =&gt; 'vertical_tabs', '#description' =&gt; t('Layout'), '#weight' =&gt; -10, ); unset($form['theme_settings']); unset($form['logo']); unset($form['favicon']); require_once($path_theme . '/inc/settings.themevariables.inc'); $form['#submit'][] = 'test_theme_settings_form_submit'; // Get all themes. $themes = list_themes(); // Get the current theme $active_theme = $GLOBALS['theme_key']; $form_state['build_info']['files'][] = str_replace("/$active_theme.info", '', $themes[$active_theme]-&gt;filename) . '/theme-settings.php'; return $form; }</pre><p> </p> <p>С помощью FAPI создаем вертикальные вкладки $form['global-settings'].</p> <p>Убираем ненужные настройки</p> <pre> unset($form['theme_settings']); unset($form['logo']); unset($form['favicon']);</pre><p>Подключаем наш файл с массивом настроек. Можно и здесь все массивы описать, но это только создаст мусор.</p> <p><img alt="" src="http://16rom.com/sites/default/files/articles/simple-01.jpg" style="width: 731px; height: 649px;" /></p> <p>На событие формы #submit вешаем нашу функцию – это специально для обработки загруженных изображений, тк при загрзку они имеют статус временных и в будущем сделают вайп. В build_info подключаем файл с темой, чтоб его увидела форма на сабмит.</p> <p> </p> <p>В файле inc/settings.themevariables.inc у нас следующая инфа:</p> <pre> $form['global-settings']['theme-images'] = array( '#type' =&gt; 'fieldset', '#title' =&gt; 'Images', '#description' =&gt; '&lt;h3&gt;Theme images&lt;/h3&gt;', ); $themsevar_fields = array(); $themsevar_fields['text-theme-image'] = array( '#type' =&gt; 'managed_file', '#title' =&gt; t('Image'), '#required' =&gt; false, '#upload_location' =&gt; file_default_scheme() . '://images', '#default_value' =&gt; theme_get_setting('text-theme-image', 'test_theme'), '#upload_validators' =&gt; array( 'file_validate_extensions' =&gt; array('gif png jpg jpeg'), ), ); $form['global-settings']['theme-images'][] = _test_theme_form_settings_generate_i18($themsevar_fields);</pre><p> </p> <p>На примере с картинкой, создаем сначала филдсет, и в него добавляем элементы обработанные кастомной функцией. Она должна вернуть поля на всех доступных языков.</p> <pre> function _test_theme_form_settings_generate_i18($fields){ $lang_list = language_list(); $form = array(); foreach ($fields as $elem =&gt; $opt){ $form[$elem] = array( '#type' =&gt; 'fieldset', '#title' =&gt; $opt['#title'], '#collapsible' =&gt; TRUE, ); foreach ($lang_list as $pref =&gt; $lang){ if (!empty($lang-&gt;enabled)) { if (!in_array($opt['#type'], array('managed_file'))) { $def_val = theme_get_setting($elem . '-' . $lang-&gt;language); $form[$elem][$elem . '-' . $lang-&gt;language] = array( '#type' =&gt; $opt['#type'], ); if (is_array($def_val) &amp;&amp; $opt['#type'] == 'text_format') $form[$elem][$elem . '-' . $lang-&gt;language]['#default_value'] = $def_val['value']; else $form[$elem][$elem . '-' . $lang-&gt;language]['#default_value'] = $def_val; if (isset($opt['#format'])) $form[$elem][$elem . '-' . $lang-&gt;language]['#format'] = $opt['#format']; if (isset($opt['#wysiwyg'])) $form[$elem][$elem . '-' . $lang-&gt;language]['#title'] = $opt['#wysiwyg']; $form[$elem][$elem . '-' . $lang-&gt;language]['#title'] = $lang-&gt;name; } else { $form[$elem] = $opt; } } } } return $form; }</pre><p>Главное, что функция создает мультиязычные поля. И вам не нужно делать это для каждого элемента. Только изображения пропускаются.</p> <p><img alt="" src="http://16rom.com/sites/default/files/articles/image-01.jpg" style="width: 733px; height: 636px;" /></p> <p>Для обратного алгоритма – получения переенной из базы используется функция из файла template.php</p> <pre> /** * Get theme setting */ function _tt($param){ global $language; $val = theme_get_setting($param . '-' . $language-&gt;language, 'test_theme'); if (is_array($val)) return $val['value']; else return $val; }</pre><p>Так вот для обработки загруженных изображений используем:</p> <pre> function test_theme_settings_form_submit(&amp;$form, &amp;$form_state) { $image_fid = $form_state['values']['text-theme-image']; $image = file_load($image_fid); if (is_object($image)) { // Check to make sure that the file is set to be permanent. if ($image-&gt;status == 0) { // Update the status. $image-&gt;status = FILE_STATUS_PERMANENT; // Save the update. file_save($image); // Add a reference to prevent warnings. file_usage_add($image, 'test_theme', 'theme', 1); } } }</pre><p>Главное правильно прописать названия поля с изображением. В остальном проблем возникнуть не должно.</p> <p>Таким образом, можно расширить функционал темы для загрузки нескольких логотипов, сделать отдельную вкладку слайдшоу (слайдер, небольшая кастомная галерея). Имхо, это лучше чем плодить в базе ноды с полями, писать вьюмоды и тд.</p> <p>Для отображения картинок можно написать кастомную функцию в файле template.php:</p> <pre> function _test_theme_custom_image() { $image_fid = theme_get_setting('text-theme-image'); $image_style = ''; if (!empty($image_fid)){ $image = file_load($image_fid); if (is_object($image)) { $image_style = theme('image_style', array( 'style_name' =&gt; 'frontpage_slider', 'path' =&gt; $image-&gt;uri, 'attributes' =&gt; array( 'class' =&gt; array('big-image') ) )); } } $output = '&lt;div id="my-custom-image"&gt;' . $image_style . '&lt;/div&gt;'; return $output; }</pre><p>Теперь, вызывая функцию _test_theme_custom_image(), в page.tpl.php например, можно увидеть свою загруженную картинку.</p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-09-08T22:52:48+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Wed, 09/09/2015 - 01:52</span> <div class="field field-node--field-download field-formatter-file-default field-name-field-download field-type-file field-label-above has-single"><h3 class="field__label">Download</h3><div class="field__items"><div class="field__item"><span class="file file--mime-application-octet-stream file--general"> <a href="https://16rom.com/sites/default/files/blog-attached/test_theme.tar.gz" type="application/octet-stream; length=1827">test_theme.tar.gz</a></span> </div></div> </div> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--fapi"> <span class="field__item-wrapper"><a href="/ru/tags/fapi" property="schema:about" hreflang="ru">FAPI</a></span> </div><div class="field__item field__item--forms"> <span class="field__item-wrapper"><a href="/ru/tags/forms" property="schema:about" hreflang="ru">Forms</a></span> </div></div> </div> <section id="node-article-comment-node-article" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=256&amp;2=comment_node_article&amp;3=comment_node_article" token="e1oxym2Wh1irHA1Ds6WR6xrC3dK50bjTjbybNFGvvrs"></drupal-render-placeholder></div></section> Tue, 08 Sep 2015 22:52:48 +0000 admin_romcom 256 at https://16rom.com Drupal Webform label с тегами https://16rom.com/ru/blog/drupal-webform-label-s-tegami <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Drupal Webform label с тегами</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>В ооооочень редких случаях нужно вставить в тег label модуля webform другие теги, такие как strong, em и тд. Конечно, это очень крайний случай и только для продвинутых пользователей.</p> <p>Чтоб не сильно заморачиваться, можно в теме переопределить функцию theme_form_element_label($variables).<br /> Вставить стандартный код и дописать после $title = filter_xss_admin($element ['#title']);</p> <pre> if (isset($element['#webform_component']) &amp;&amp; isset($element['#webform_component']['name'])) { $title = filter_xss_admin($element['#webform_component']['name']); }</pre><p>Да, это решение для пользователей, которые знают что такое теги и как их нужно правильно применить.</p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-06-27T13:17:04+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sat, 06/27/2015 - 16:17</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div></div> </div> <section id="node-article-comment-node-article--4" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=229&amp;2=comment_node_article&amp;3=comment_node_article" token="UNDsuWu12EinqRFKkoKi8kz0Z84HyC3AqvLQnLyB_40"></drupal-render-placeholder></div></section> Sat, 27 Jun 2015 13:17:04 +0000 admin_romcom 229 at https://16rom.com https://16rom.com/ru/blog/drupal-webform-label-s-tegami#comments SEO оптимизация для Drupal сайта https://16rom.com/ru/blog/seo-optimizaciya-dlya-drupal-sayta <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">SEO оптимизация для Drupal сайта</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>Выложил небольшой модуль в песочницу по оптимизации drupal сайтов под SEO.<br /> Скачать его можно с песочницы <a href="https://www.drupal.org/sandbox/andrey_che/2499329">https://www.drupal.org/sandbox/andrey_che/2499329</a></p> <div> <label for="edit-seo-complex-absolute-urls"><strong>Absolute urls</strong> - </label></div> <div> <label for="edit-seo-complex-absolute-urls">конвертит все ссылки на сайте в абсолютные.</label></div> <div>  </div> <div> <label for="edit-seo-complex-redirect-lang-default"><strong>Redirect default language to /</strong> - </label></div> <div> Редиректит мультиланг сайт языка по-умолчанию на безпрефиксовый адрес. Кстати, выдает loop redirect вместе с модулем globalredirect. Нужно снять галку, если он включен.</div> <div>  </div> <div> <label for="edit-seo-complex-cycle-links"><strong>Remove cycle links</strong> -</label></div> <div> <label for="edit-seo-complex-cycle-links">Убирает циклические ссылки. Имеются в виду ссылки в меню и текущая страница. Страница не должна ссылаться сама на себя. Вмеcто &lt;a&gt; переписывается в &lt;span&gt;</label></div> <div>  </div> <div> <label for="edit-seo-complex-metatag-generator"><strong>Remove metatag generator</strong> -</label></div> <div> <label for="edit-seo-complex-metatag-generator"><strong>Remove system generator</strong> -</label></div> <div> убирает metatag геренатор. Прости меня, друпал. Но иногда такой шаг может отпугнуть говнохакеров от сайта, т.к. немного сложнее будет определить двиг сайта.</div> <div>  </div> <div> <strong>Add pager page number to title </strong>- </div> <div> тк на сайте в принципе нежелательны одинковые title, а вьюха постранично title не меняет. Этот параметр добавить номер страницы просматриваемой вьюхи (и не только).</div> <div>  </div> <div> <strong>Add metatag link alternate default </strong>- </div> <div> для мультиязычного сайта нужно дописывать в метатегах линки на доступные языки. Глянул в код, он не цниверсальный и писался под 3 языка. печаль.</div> <div>  </div> <div> <strong>Remove link shortlink default</strong> - </div> <div> Убираем шорлинк (системный путь) из метатегов.</div> <div>  </div> <div> Конечно, данный модуль не универсальное средство по оптимизации сайта для поисковых движков и продвижения. Но некоторые его параметры весьма кстати.<br /> Если будет нужно, выложу последний архив здесь.</div> <div>  </div> <div> Модуль не претендует на уникальность (пока что) и писался для определнных нужд. Если у вас есть пожелаения/замечания можете отписываться в камментах или в баглисте на <a href="https://drupal.org">д.орг</a></div> <div>  </div> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-06-27T10:18:01+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Sat, 06/27/2015 - 13:18</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--seo"> <span class="field__item-wrapper"><a href="/ru/tags/seo" property="schema:about" hreflang="ru">seo</a></span> </div><div class="field__item field__item--internet"> <span class="field__item-wrapper"><a href="/ru/tags/internet" property="schema:about" hreflang="ru">internet</a></span> </div></div> </div> <section id="node-article-comment-node-article" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><article role="article" data-comment-user-id="0" id="comment-394" class="js-ajax-comments-id-394 comment js-comment comment--type-comment-node-article comment--view-mode-default by-anonymous has-title clearfix"> <div class="comment__container"><h3 class="comment__title comment__author h4"> <span lang="" typeof="schema:Person" property="schema:name" datatype="">Дмитрий</span> <mark class="comment__new marker marker--success hidden" data-comment-timestamp="1478375110"></mark> </h3> <div class="comment__meta"> <div class="comment__submitted"> <span class="comment__pubdate">Sat, 11/05/2016 - 21:45</span> </div> </div> <div class="comment__content"> <div class="clearfix text-formatted field field-comment--comment-body field-formatter-text-default field-name-comment-body field-type-text-long field-label-hidden has-single"><div class="field__items"><div class="field__item">Здравствуйте, я не нашел ссылки на скачивание модуля в песочнице.</div></div> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=394&amp;1=default&amp;2=ru&amp;3=" token="BRrcFC4WPkwTHe0eJUV1jFxobtwq0x-1Mdos8et1t5M"></drupal-render-placeholder></div> </div> </article> <div class="indented"><article role="article" data-comment-user-id="1" id="comment-395" class="js-ajax-comments-id-395 comment js-comment comment--type-comment-node-article comment--view-mode-default by-node-author has-title clearfix"> <div class="comment__container"><h3 class="comment__title comment__author h4"> <span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span> <mark class="comment__new marker marker--success hidden" data-comment-timestamp="1478387026"></mark> </h3> <div class="comment__meta comment__meta--has-user-picture"> <div class="field field-user--user-picture field-formatter-image field-name-user-picture field-type-image field-label-hidden has-single"><figure class="field-type-image__figure image-count-1"><div class="field-type-image__item"> <img src="/sites/default/files/styles/thumbnail/public/pictures/picture-1-1359681000.jpg?itok=ATPGcyMD" width="99" height="100" alt="Profile picture for user admin_romcom" typeof="foaf:Image" class="image-style-thumbnail" /> </div> </figure></div> <div class="comment__submitted"> <span class="comment__pubdate">Sun, 11/06/2016 - 01:03</span> </div> </div> <div class="comment__content"> <p class="comment__parent visually-hidden">In reply to <a href="/ru/comment/394#comment-394" class="permalink" rel="bookmark" hreflang="ru">Здравствуйте, я не нашел</a> by <span lang="" typeof="schema:Person" property="schema:name" datatype="">Дмитрий</span></p><div class="clearfix text-formatted field field-comment--comment-body field-formatter-text-default field-name-comment-body field-type-text-long field-label-hidden has-single"><div class="field__items"><div class="field__item">добрый день. в песочницах нет ссылок на скачивание. клонировать репозиторий можно командой git clone --branch 7.x-1.x https://git.drupal.org/sandbox/andrey_che/2499329.git больше информации на этой странице https://www.drupal.org/project/2499329/git-instructions</div></div> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=395&amp;1=default&amp;2=ru&amp;3=" token="y9kV9etGKcKgsE-eybLSBb7CdJuVxPgJVlEhM8m2ys8"></drupal-render-placeholder></div> </div> </article> <div class="indented"><article role="article" data-comment-user-id="0" id="comment-396" class="js-ajax-comments-id-396 comment js-comment comment--type-comment-node-article comment--view-mode-default by-anonymous has-title clearfix"> <div class="comment__container"><h3 class="comment__title comment__author h4"> <span lang="" typeof="schema:Person" property="schema:name" datatype="">Дмитрий</span> <mark class="comment__new marker marker--success hidden" data-comment-timestamp="1478413094"></mark> </h3> <div class="comment__meta"> <div class="comment__submitted"> <span class="comment__pubdate">Sun, 11/06/2016 - 08:18</span> </div> </div> <div class="comment__content"> <p class="comment__parent visually-hidden">In reply to <a href="/ru/comment/395#comment-395" class="permalink" rel="bookmark" hreflang="ru">добрый день.</a> by <span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></p><div class="clearfix text-formatted field field-comment--comment-body field-formatter-text-default field-name-comment-body field-type-text-long field-label-hidden has-single"><div class="field__items"><div class="field__item">Спасибо!</div></div> </div> <drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=396&amp;1=default&amp;2=ru&amp;3=" token="PKuYBLv0NrpAd6Y_m4J3BVOfHCpWddHtpWl1WIpctLg"></drupal-render-placeholder></div> </div> </article> </div></div><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=228&amp;2=comment_node_article&amp;3=comment_node_article" token="6YVzfi6Et7wf0SywiMEcwCrnC34aAYkx3WUEOfHpHnU"></drupal-render-placeholder></div></section> Sat, 27 Jun 2015 10:18:01 +0000 admin_romcom 228 at https://16rom.com Обновить Drupal срочно https://16rom.com/ru/blog/obnovit-drupal-srochno <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">Обновить Drupal срочно</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p>Счастливые пользователи сайтов на свободном движке Drupal! Будте бдительны и не забывайте обновлять свои сайты!</p> <p>Каждый день на вас нацелены сотни пауков из ботнетов в поисках дыр по последним отчетам о безопасности движков.</p> <p>Стать жертвой можно в считанные секунды, не успев вовремя поставить обновление. Хвала вашему шаред хостингу, если он делает бекапы каждый день и хорошо если в них не завелся червь. Иначе плакали ваши кошечки и собачки с персонального бложика упавшего от рук школоты с червем/трояном.</p> <p>В теории, найдя дыру и запустив эксплоит, злоумышленик может закодировать сайт, БД и остальные данные до неузнаваимости и невостанавливаемого вида. И после восстановления бэкапа - он снова это сделает. И снова и снова... пока вы не обновитесь и не уберете дыру.</p> <p>Читайте доки на сайте <a href="http://drupal.org">drupal.org</a> про обновления. Или пишите мне <a href="http://16rom.com/ru/kontakty">со страницы Контакты</a> и мы вместе решим данный вопрос. Обновить друпал сайт и базу запросто. Остановите хакеров. Оптимизируйте сайт. Защищайте свою информацию.</p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-06-23T23:08:50+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Wed, 06/24/2015 - 02:08</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div><div class="field__item field__item--drupal-6"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-6" property="schema:about" hreflang="ru">drupal 6</a></span> </div></div> </div> <section id="node-article-comment-node-article--2" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=225&amp;2=comment_node_article&amp;3=comment_node_article" token="4v2qYZ4Be3h2o9KRYPW9FDotx6pvURxwPuq_UuprxGE"></drupal-render-placeholder></div></section> Tue, 23 Jun 2015 23:08:50 +0000 admin_romcom 225 at https://16rom.com drupal 7 system_settings_form добавить кнопку https://16rom.com/ru/blog/drupal-7-systemsettingsform-dobavit-knopku <span property="schema:name" class="field field-name-title field-formatter-string field-type-string field-label-hidden">drupal 7 system_settings_form добавить кнопку</span> <div property="schema:text" class="clearfix text-formatted field field-node--body field-formatter-text-default field-name-body field-type-text-with-summary field-label-hidden has-single"><div class="field__items"><div property="schema:text" class="field__item"><p><style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ p { margin-bottom: 0.1in; line-height: 120%; } /*--><!]]>*/ </style></p> <p style="margin-bottom: 0in; line-height: 100%">В большинстве случаев хватает обычной system_settings_forn для сохранения настроек. Но что делать, если нужно добавить доп. Кнопки в форму?</p> <p style="margin-bottom: 0in; line-height: 100%">Когда лень писать обработчик стандартных полей _submit, можно написать только один обработчик кнопки.</p> <p style="margin-bottom: 0in; line-height: 100%"> </p> <p style="margin-bottom: 0in; line-height: 100%">Пишем стандартную функцию формы.</p> <p style="margin-bottom: 0in; line-height: 100%">Сразу заполняем ее стандартной системной формой.</p> <p style="margin-bottom: 0in; line-height: 100%"> <style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ pre.cjk { font-family: "Droid Sans Fallback",monospace; }p { margin-bottom: 0.1in; line-height: 120%; } /*--><!]]>*/ </style></p> <pre class="western"> $form = system_settings_form($form);</pre><p> <style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ pre.cjk { font-family: "Droid Sans Fallback",monospace; }p { margin-bottom: 0.1in; line-height: 120%; } /*--><!]]>*/ </style></p> <p class="western">После этого подключаем поля, но в нашем примере – кнопку.</p> <p><style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ pre.cjk { font-family: "Droid Sans Fallback",monospace; }p { margin-bottom: 0.1in; line-height: 120%; } /*--><!]]>*/ </style></p> <pre style="margin-bottom: 0in; line-height: 100%;"> $form['actions']['custom_submit'] = array( '#type' =&gt; 'submit', '#value' =&gt; t('Custom submit'), ); $form['#submit'][] = '_mymodule_custom_submit';</pre><p style="margin-bottom: 0in; line-height: 100%"> <style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ p { margin-bottom: 0.1in; line-height: 120%; } /*--><!]]>*/ </style></p><p> Мы добавляем в массив сабмитов свой, который сработает после системного. Далее пишем функцию для обработки нажатия на кнопку.</p> <pre class="western"> function _mymodule_custom_submit($form, $form_state) { switch ($form_state['clicked_button']['#value']) { case t('Custom submit'): // тут код break; } }</pre><p> <style type="text/css"> <!--/*--><![CDATA[/* ><!--*/ p { margin-bottom: 0.1in; line-height: 120%; } /*--><!]]>*/ </style></p> <p style="margin-bottom: 0in; line-height: 100%">Таким образом, можно добавить свои кнопки в систменую форму настроек Вашего модуля и расширить стандартный функционал.</p> </div></div> </div> <span rel="schema:author" class="field field-name-uid field-formatter-author field-type-entity-reference field-label-hidden"><span lang="" about="/ru/userauth/1" typeof="schema:Person" property="schema:name" datatype="">Админ</span></span> <span property="schema:dateCreated" content="2015-06-02T21:00:43+00:00" class="field field-name-created field-formatter-timestamp field-type-created field-label-hidden">Wed, 06/03/2015 - 00:00</span> <div class="field field-node-field-tags field-entity-reference-type-taxonomy-term field-formatter-entity-reference-label field-name-field-tags field-type-entity-reference field-label-above"><h3 class="field__label">Теги</h3><div class="field__items"><div class="field__item field__item--drupal-7"> <span class="field__item-wrapper"><a href="/ru/tags/drupal-7" property="schema:about" hreflang="ru">drupal 7</a></span> </div></div> </div> <section id="node-article-comment-node-article--5" class="field field-node--comment-node-article field-formatter-comment-default field-name-comment-node-article field-type-comment field-label-hidden display-mode-threaded comment-bundle-comment-node-article comment-wrapper"> <a name="comments"></a><div class="comment-form-wrapper"> <h2 class="comment-form__title h3">Добавить комментарий</h2><drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=217&amp;2=comment_node_article&amp;3=comment_node_article" token="5sp9vzDdPNSpweOWq_0aEasJ-OQM0acism1D-1DPme0"></drupal-render-placeholder></div></section> Tue, 02 Jun 2015 21:00:43 +0000 admin_romcom 217 at https://16rom.com https://16rom.com/ru/blog/drupal-7-systemsettingsform-dobavit-knopku#comments