Не создается в шаблоне отдельная страница по типу материала

Главные вкладки

Аватар пользователя alex290 alex290 10 января 2017 в 13:10

Народ помогите никак не могу сделать отдельную темизацию в Drupal 7

Я сделал так
в template.php

<?php 

function velotemplates_preprocess_page(&$vars$hook) {
  if (isset(
$vars['node'])) {
  
// If the node type is "blog" the template suggestion will be "page--node--blog.tpl.php".
   
$vars['theme_hook_suggestions'][] = 'page__node__' str_replace('_''--'$vars['node']->type);
  }
}

function 

velotemplates_theme() {
    
$items = array();
    
    
$items['user_login'] = array(
        
'render element' => 'form',
        
'path' => drupal_get_path('theme''velotemplates') . '/templates',
        
//define the file name
        
'template' => 'user-login',
        
'preprocess functions' => array(
            
'velotemplates_preprocess_user_login'
        
),
    );
    return 
$items;
}
?>

Создаю файл page--node--article.tpl.php тоесть темизировть отдельно по типу статья

Очистил кеш
http://dl3.joxi.net/drive/2017/01/10/0012/1159/824455/55/23730eaa02.jpg
обновляюсь и ничего

что я сделал нитак...

Комментарии

Аватар пользователя BatKor BatKor 10 января 2017 в 14:49
<?php
function Theme_name_preprocess_page(&$variables)
{
    if (isset(
$variables['node'])) {
        
$variables['theme_hook_suggestions'][] = 'page__type__' $variables['node']->type;
        
$variables['theme_hook_suggestions'][] = 'page__node__' $variables['node']->type;
    }

}

?>
Аватар пользователя alex290 alex290 10 января 2017 в 16:05

Я так тоже делал

<?php
function velotemplates_preprocess_page(&$variables)
{
    if (isset(
$variables['node'])) {
        
$variables['theme_hook_suggestions'][] = 'page__type__' $variables['node']->type;
        
$variables['theme_hook_suggestions'][] = 'page__node__' $variables['node']->type;
    }
}
?>

Резуьтата тоже нет

файл называл и page--node-article.tpl.php и page--type-article.tpl.php

Я делал по разному на разных форумах лазил и что-то не идет

Аватар пользователя BatKor BatKor 10 января 2017 в 17:28

"тьфу ты" не то вам скинул вам дал
function name_theme_preprocess_node(&$vars)
{
$vars['theme_hook_suggestions'][] = 'node__' . $vars['type'] . '__' . $vars['view_mode'];
}

Аватар пользователя bumble bumble 10 января 2017 в 19:12
1

alex290 wrote:

файл называл и page--node-article.tpl.php и page--type-article.tpl.php

Нужно page--node--article.tpl.php и page--type--article.tpl.php

Шаблоны поместить в папку темы и сбросить кеш. Тестировать на странице соответствующего типа материала.

И, если используете $vars['node']->type - его наличие и нужно проверять.

Аватар пользователя alex290 alex290 10 января 2017 в 16:25

Я просил помощи а не критики... Я взял этот код с форума.. Там ребята написали что работает.. Но у меня почему-то не идет

Аватар пользователя alex290 alex290 10 января 2017 в 18:03

А что там может быть кроме article может я что не понимаю

str_replace меня смущает только

по идее должно быть page--node--article

Аватар пользователя BatKor BatKor 10 января 2017 в 18:04

Да там если тип(машинное имя материала) если _ то будет -- зачем менять. на --. если, помоему шаблонизатор сделает превратит в --. и тогда смысл заменять _ на --

Аватар пользователя alex290 alex290 10 января 2017 в 19:23

Я читал ту статью и делал так

<?php
function velotemplates_preprocess_page(&$variables) {
  if (
$variables['node']->type != "") {
    
$variables['template_files'][] = "page-node-" $variables['node']->type;
  }
}
?>

и делал файл page-node-article.tpl.php

Результат ноль