Drupal 7

php strtolower() not working in drupal

Если у вас не работает в друпале стандартная PHP функция strtolower($string), то заместо неё нужно использовать родную друпаловску функция -> drupal_strtolower($text)

Пример

drupal_strtolower($text);
$text = 'Hello, Grand Mother!';
print $text; // would print hello, grand mother!

Убрать двоеточие из label в drupal

При помощи скрипта ниже можно убрать тупое двоеточие в друпаловском label...

<script type="text/javascript">
function nocolons(){
doclabs = new Array;
doclabs = document.getElementsByTagName('label');
if (doclabs.length) {
  for (i=0; i<doclabs.length; i++ ){
    labtext = doclabs[i].innerHTML;
    if (labtext.indexOf("?") > 0) {
doclabs[i].innerHTML = labtext.replace(":","");
    }
  }
}
}
onload=nocolons;
</script>

Темизация breadcrumb D7

Способ ниже заменяет стандартный знак "»" на "›" (Или на любой на ваше усмотрение).
В template.php переписываем функцию phptemplate_breadcrumb($breadcrumb).

/**
 * Return a themed breadcrumb trail.
 *
 * @param $breadcrumb
 *   An array containing the breadcrumb links.
 * @return a string containing the breadcrumb output.
 */

function kazpost_breadcrumb($variables) {
  $breadcrumb = $variables['breadcrumb'];
  if (!empty($breadcrumb)) {
    return '<div class="breadcrumb">'. implode(' → ', $breadcrumb) .'</div>';
  }
}

Пример из d.org:

<?php

Print block anywhere in tpl.php files

Есть 2 способа (По крайней мере - которые я знаю) при помощи которых можно программно вывести любой блок в шаблоне вашей темы, например page.tpl.php.

Способ №1. module_invoke()

<?php
$block = module_invoke('module_name', 'block_view', 'block_name');
print render($block);
?>

Минус данного метода заключается в том, если у вас включен модуль Contextual links, он не будет работать. Т.е. будет выведено только само тело блока.

Способ №2. block_load()

<?php
$block = block_load('module_name', 'block_name');

Drupal & jQuery - $ is not a function

Если вы пытаетесь добавить свой jQuery код в друпал и вы получаете ошибку $ is not a function. Решение этой проблемы ниже:

Переименуйте все знаки ($) на jQuery

$().ready(function() {
   $("#select_me").show();
});

На

jQuery().ready(function() {
   jQuery("#select_me").show();
});

Убрать системное сообщение на главной D7

В template.php:

// remove fucking welcome message from front page
function THEMENAME_preprocess_page(&$vars, $hook) {
    unset($vars['page']['content']['system_main']['default_message']);
}

А заголовок скрываем при помощи CSS хака:

.front h1#page-title { display:none; }

Темизация поиска в D7

Темизация формы поиска в блоке выведенного в определенном регионе.
В template.php добавляем следущий код:

function kazpost_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'search_block_form') {
    $form['search_block_form']['#title'] = t('Search'); // Change the text on the label element
    $form['search_block_form']['#title_display'] = 'invisible'; // Toggle label visibilty
    $form['search_block_form']['#size'] = 40;  // define size of the textfield
        $deftext = t('Srch');

No pager on front page and elsewhere

Если у вас возникла проблема - не появляется PAGER на главной странице и еще либо где-то, то одна из возможных причин - это кастомный блок созданный при помощи Views. При создании кастомных блоков во вьюхе нужно обязательно указать - не использовать страничную навигацию PAGER, т.к. у них одинаковые ID и будет конфликт.

После того как вы выключите постраничную навигацию у кастомного блока созданного при помощи вьюхи → должен появиться PAGER

Syndicate content