নির্দিষ্ট কাস্টম সামগ্রী প্রকারের প্রবেশের জন্য প্রার্থী পৃষ্ঠার টেম্পলেট ফাইলের নাম


11

আমি একটি ড্রুপাল 7 ওয়েবসাইটে কাজ করছি। আমি কাজের জন্য কাস্টম সামগ্রী প্রকার তৈরি করেছি। আমার অনেকগুলি ক্ষেত্র রয়েছে এবং এর মধ্যে কয়েকটি পৃষ্ঠার বিন্যাসের সাথে প্রতিটি প্রবেশের জন্য নির্দিষ্ট পৃষ্ঠাগুলির মতো সম্পর্কিত related সুতরাং এই নির্দিষ্ট সামগ্রীর ধরণের জন্য আমার কাস্টম পৃষ্ঠা.tpl প্রয়োজন।

তাই আমি থিম বিকাশকারী মডিউলটি সক্রিয় এবং খোলার চেষ্টা করেছি এবং এই নির্দিষ্ট সামগ্রীর ধরণের পৃষ্ঠার প্রবেশের জন্য প্রার্থীর নাম পেতে বডি এরিয়ায় ক্লিক করেছি। এবং এটি আমাকে নীচের স্ক্রিনটি দেয় যা আমার কাছে কিছু বোঝায় না: / যখন আমি নোড অঞ্চলটি ক্লিক করি তবে এটি ঠিক আছে, এটি নোড দেয় - work.tpl.php, তবে আমার পৃষ্ঠার জন্য প্রয়োজন। আমি "পৃষ্ঠা - work.tpl.php" চেষ্টা করেছিলাম, এটি কার্যকর হয়নি।

আমি কী মিস করছি?

এখানে চিত্র বর্ণনা লিখুন

উত্তর:


12
function mytheme_process_page(&$variables) {
    $variables['theme_hook_suggestions'][] = 'page__'. $variables['node']->type;
}

আপনার মেশিন-পঠনযোগ্য সামগ্রীর ধরণের নামটি "ওয়ার্ক", পৃষ্ঠা - work.tpl.php কাজ করবে বলে ধরে নেওয়া হচ্ছে।

পড়ুন এই থ্রেডে আরও তথ্যের জন্য।


কি দারুন! এটা দুর্দান্ত কাজ! আমি এখন পৃষ্ঠায় সম্বোধন করতে পারি - work.tpl.php এখন :) যদিও এটি ঠিকঠাক কাজ করে, আমি d.pr/EaMa হিসাবে একটি ত্রুটি বার্তা পেয়েছি আমি googled এবং সমাধান করার চেষ্টা করেছি, এখনও চেষ্টা করছি ... কোনও ধারণা? আপনার সময় জন্য অনেক ধন্যবাদ !!
দ্রুপাল লোক

ওহ আমার ধারণা এটি থিম বিকাশকারী মডিউলটির কারণে হয়েছিল। আমি মডিউলটি অক্ষম করেছি এবং ত্রুটি চলে গেছে :) অনেক অনেক ধন্যবাদ!
দ্রুপাল লোক 14

2

টেমপ্লেট.এফপি ইন যোগ করুন:

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

আপনি বাদ দিতে পারেন str_replace(); কোন সংস্করণটি আপনার পক্ষে সবচেয়ে ভাল কাজ করে তা পরীক্ষা করুন।

তারপরে, একটি টেমপ্লেট ফাইল তৈরি করুন যার ফাইল নাম পৃষ্ঠা page- [সামগ্রী_প্রকার] .tpl.php। (বিষয়বস্তুর ধরণের মেশিনের নাম দিয়ে [সামগ্রী_প্রকার] প্রতিস্থাপন করুন))

Http://drupal.org/node/1089656# মন্তব্য-4426790 দেখুন ।


1

আপনি যদি নোড আইডিও চান তবে এটি ব্যবহার করুন।

function mytheme_process_page(&$variables) {
  if (isset($variables['node'])) { 
    $variables['theme_hook_suggestions'][] = 'page__type__'. $variables['node']->type;
    $variables['theme_hook_suggestions'][] = 'page__node__' . $variables['node']->nid;
  }
}

0

প্রতিটি কন্টেন্ট টাইপের জন্য আলাদা আলাদা টেম্পলেট থাকা দ্রুপালের লোকদের মতে ভাল অভ্যাস নয়। এই কারণে আপনি page--work.tpl.phpপ্রার্থী টেমপ্লেট ফাইলের তালিকায় খুঁজে পাবেন না। তারা মনে করেন যে কেবল নোড টেম্পলেট ফাইলগুলি আলাদা হওয়া উচিত। তবে আপনি যদি হ্যাক করতে চান তবে এগিয়ে যান।

সামগ্রীর ধরণের উপর ভিত্তি করে পাথ সেট আপ করতে পাথের নাম ব্যবহার করুন। এবং তারপরে এই কোডটি .োকান

 if (module_exists('path')) {
    $alias = drupal_get_path_alias(str_replace('/edit','',$_GET['q']));
    if ($alias != $_GET['q']) {
      $template_filename = 'page';
      foreach (explode('/', $alias) as $path_part) {
        $template_filename = $template_filename . '-' . $path_part;
        $vars['template_files'][] = $template_filename;
      }
    }
  }

মধ্যে phptemplate_preprocess_page(&$vars)ফাংশন template.phpথিম ফোল্ডারে।

আপনি কোডটি আরও কার্যকর করার জন্য কিছুটা পরিবর্তন করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.