নোড প্রকারে html.tpl.php ওভাররাইড করুন


17

আমার থিমের জন্য আমার টেম্পলেট.এফপি ফাইলটিতে আমি নিম্নলিখিতটি চেষ্টা করেছি:

function media_preprocess_page(&$vars, $hook) {
  if (isset($vars['node'])) 
  {
      // If the node type is "blog" the template suggestion will be "html--blog.tpl.php".
       $vars['theme_hook_suggestions'][] = 'html__'.$vars['node']->type;

      // If the node type is "blog" the template suggestion will be "page--blog.tpl.php".
       $vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->type;

      // If the node id is "33" the template suggestion will be "page--33.tpl.php".
       $vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->nid;    
  }

    //Create page suggestion for first part of url-alias
    $url_alias = drupal_get_path_alias($_GET['q']);
    $parts = explode('/', $url_alias);

    $vars['theme_hook_suggestions'][] = 'page__'.$parts[0].'__alias';  
}

এটি পৃষ্ঠার জন্য কাজ করে - nodetype.tpl.php, তবে html - nodetype.tpl.php এর জন্য নয়

আপনি হয়ত জিজ্ঞাসা করছেন কেন আপনাকে নোডের প্রকারে html.tpl.php টেম্পলেটটি ওভাররাইড করতে হবে? এটি কারণ কারণ এখানে আমি এই বিশেষ নোডের জন্য অন্তর্ভুক্ত করতে চাই না যে মার্কআপ আছে।

উত্তর:


28

প্রিপ্রোসেস ফাংশনটির নাম প্রক্রিয়াধীন থিম / টেমপ্লেটের উপর ভিত্তি করে। Html.tpl.php ফাইলটি প্রিপ্রসোস করতে আপনার ব্যবহার করতে হবে hook_preprocess_html():

function media_preprocess_html(&$vars) {
  $node = menu_get_object();

  if ($node && $node->nid) {
    $vars['theme_hook_suggestions'][] = 'html__' . $node->type;
  }
}

3

@ ক্লাইভ পদ্ধতিটি খুব স্মার্ট।

Html.tpl.php ফাইলে থাকাকালীন আপনি খেয়াল করুন যে আপনি যে কন্টেন্টের সাথে কাজ করছেন সেগুলি পড়তে পারেন $variables['classes']যা আপনাকে এর মতো কিছু দেবেhtml not-front not-logged-in no-sidebars page-node page-node- page-node-5638 node-type-CONTENT-TYPE-NAME

এটির সাহায্যে আপনি html.tpl.php ফাইলটি এর সাথে কীভাবে আচরণ করছেন তা পরিবর্তন করতে পারবেন:

if (strpos($variables['classes'],'node-type-YOUR-CONTENT-TYPE') == true ) {
  echo 'Do something special  for YOUR-CONTENT-TYPE ';
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.