Вывод поля ноды или термина в page.html.twig

У ноды и у термина таксономии можно создавать поля. Например, поле альтернативного заголовка. Пусть его машинное имя будет field_h1. Вывод значения этого поля в шаблоне page.html.twig для ноды делается так: {{ node.field_h1.value }} Чтобы выводить поле термина таксономии подобным образом, нужно воспользоваться хуком hook_preprocess_page. В файл mytheme.theme пишем: function mytheme_preprocess_page(&$variables) { if (\Drupal::routeMatch()->getRouteName() == ‘entity.taxonomy_term.canonical’) … Читать далее

JQuery Once()

Профессионально не могу объяснить что делает функция once(). На примере, в нее обернут код, копирующий содержимое элемента в поле формы. Если обертку не использовать, содержимое будет скопировано в поле дважды. На практике, если по каким-то причинам появляется дублирование, пробуйте переместить код в тело этой функции. (function ($) { Drupal.behaviors.myCode = { attach : function(context, settings) … Читать далее

Вывод Field Collection кодом

Все будет в файле node.tpl.php. Если несколько коллекций, в начале один раз получаем объект ноды: if (arg(0) == ‘node’ && is_numeric(arg(1))) { $nid = arg(1); $node = node_load($nid); } А потом, выводим поля коллекции. Например, коллекция «field_phones» с полями «field_telecom» и «field_phone_number»: $items = field_get_items(‘node’, $node, ‘field_phones’); foreach ($items as $item) { $fc_value = field_collection_field_get_entity($item); … Читать далее

Микро-разметка организации

<div itemscope itemtype=»http://schema.org/Organization»> <div itemprop=»name» class=»title»>ИП Иванов Иван Иванович</div> <link itemprop=»url» href=»https://stebenkov.ru/»> <div itemprop=»address» itemscope itemtype=»http://schema.org/PostalAddress»> <span itemprop=»postalCode»>414056</span>, <span itemprop=»addressCountry»>Россия</span>, <span itemprop=»addressRegion»>Астраханская область</span>, <span itemprop=»addressLocality»>Астрахань</span>, <span itemprop=»streetAddress»>Иванова, 567</span> </div> <div class=»item»>Телефон: <a href=»tel:88000000000″><span itemprop=»telephone»>+7(800) 000-00-00</span></a></div> <div class=»item»>E-mail: <a href=»mailto:feedback@stebenkov.ru»><span itemprop=»email»>feedback@stebenkov.ru</span></a></div> </div> В таком варианте валидатор https://search.google.com/structured-data/testing-tool/u/0/?hl=ru не показывает не заполненных полей и предупреждений.

Как сделать телефон кликабельным?

Дано: [html] <div class="tel">8 (800) 000-00-00</div> [/html] Код должен быть таким: [html] <a href="tel:88000000000">8 (800) 000-00-00</a> [/html] Если нет возможности изменить код, то можно сделать так: [js] var tel_element = $(‘.tel’); var tel_str = tel_element.text(); var tel_number = tel_str.replace(/[^+\d]+/g, ""); tel_element.html(‘<a href="tel:’ + tel_number + ‘">’ + tel_str + ‘</a>’); [/js]

Представления в базе данных MySQL

Например, удобно сделать для поиска по нескольким таблицам. CREATE OR REPLACE VIEW tbl_view_search AS SELECT CONCAT(‘post_’, id) AS id, id AS source_id, text, CONCAT(‘/’, url) AS url, title, logo AS img, NULL AS price FROM posts UNION SELECT CONCAT(‘product_’, id) AS id, id AS source_id, text, CONCAT(‘/path/to/’, url) AS url, title, img, price FROM products; … Читать далее

Замена пароля Drupal 6

[php] $host = ‘localhost’; // адрес сервера $database = ‘dbname’; // имя базы данных $user = ‘username’; // имя пользователя $password = ‘parol’; // пароль // подключаемся к серверу $link = mysqli_connect($host, $user, $password, $database) or die("Ошибка " . mysqli_error($link)); // выполняем операции с базой данных $query ="UPDATE users SET pass = MD5(‘newparol’) WHERE uid … Читать далее