প্রথম পৃষ্ঠা থেকে "কোনও সম্মুখ পৃষ্ঠার সামগ্রী তৈরি করা হয়নি" বার্তাটি কীভাবে সরিয়ে ফেলা যায়?


14

আমি কেবল হোমপেজে ব্লক চাই। কারণ আমার কাছে কোনও নোড নেই, এবং হোমপৃষ্ঠাটি / নোড হিসাবে রাখতে চাই আমি একটি "প্রথম পৃষ্ঠার সামগ্রী তৈরি করা হয়নি" getting আমার পৃষ্ঠায় বার্তা।

আমি কিভাবে এই কাছাকাছি পেতে পারি?

উত্তর:


13

কে অনুমান করবে? তার জন্য একটি মডিউল আছে। পরীক্ষা করে দেখুন খালি প্রথম পৃষ্ঠা মডিউল। কেবলমাত্র 10 টি লাইন কোডের সাথে, এটি অবশ্যই সরল মডিউলগুলির মধ্যে একটি।


পার্শ্ব নোট হিসাবে, এই মডিউলটি "নতুন সামগ্রী যুক্ত করুন" লিঙ্কটিও সরিয়ে ফেলবে যা সাইটের প্রয়োজনীয় নয়, যদি নোড না থাকে।
kiamlaluno

2
সাবধান হন !! আপনাকে ছোট পরিবর্তনগুলির জন্য মডিউল যুক্ত করার দরকার নেই: আপনি নিজের টেম্পলেট ফাইলটিকে ওভাররাইড করতে এবং ফলঅনওনিং কোড যুক্ত করতে পারেন:function MYTHEME_preprocess_page(&$vars) { if (drupal_is_front_page()) { unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created" drupal_set_title(''); //removes welcome message (page title) }
হিমাংশু পাঠক

5
সাবধান হন? আজকাল মডিউল যুক্ত করা কি বিপজ্জনক? আসলে, আমি আপনার থিমটিতে স্টাফ রাখার বিষয়ে আরও যত্নশীল হতে চাই। আপনি নিজেকে প্রশ্নটি জিজ্ঞাসা করতে পারেন "যদি আমি কখনও অন্য থিমটি বেছে নিই, তবে কি এই পরিবর্তনটি থাকা উচিত?" উত্তরটি যদি হ্যাঁ হয় তবে তা আপনার থিমের সাথে অন্তর্ভুক্ত নয়।
মার্চভ্যানেজেন্ড

@ হিমাংশুপাঠক থিমের কোড যুক্ত করা এড়ানো সহজ কারণ এটি সহজ, বিশেষত যখন আচরণ কোনও থিমের উপর নির্ভর করে না (যার অর্থ আপনি যে থিমটিতে যুক্ত করছেন কোডটি প্রতিটি থিমে যুক্ত করা উচিত)।
কিমলালুনো

ধন্যবাদ, সেক্ষেত্রে আমাদের ডান MYTHEMEদ্বারা প্রতিস্থাপন করা দরকার MYMODULE?
হিমাংশু পাঠক

9

আপনি আপনার থিমের টেম্পলেট ফাইলটিতে এটি করতে পারেন:

function MYTHEME_preprocess_page(&$vars) {
  if (drupal_is_front_page()) {
    unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is created"
    drupal_set_title(''); //removes welcome message (page title)
  }
}

এটা drupal8 জন্য কাজ করে?
গুরু

যদিও আমি চেষ্টা করে দেখিনি এবং আমি অনুমান করি না
হিমাংশু পাঠক

আমি কোনও সাইটের জন্য আমি যে থিমটি ব্যবহার করি সেগুলি থেকে স্বাধীনভাবে চাই এমন কোনও থিমের জন্য কোড যুক্ত করব না add
কিমলালুনো

2

"কোনও বিষয়বস্তু বার্তা নেই" লুকানোর জন্য একটি দ্রুত সিএসএসের কাজটি কেবল আপনার সিএসএস ফাইলে নিম্নলিখিত লাইনটি যুক্ত করে:

 #first-time {display:none;}

1
এটি করা একটি বিপজ্জনক জিনিস। এটি
গুগলের

আমি আপনার সাথে একমত. এটি সেরা সমাধান নয়। এটি একটি কার্যনির্বাহী। বেশি না.
xaa

1

"কোনও সামনের পৃষ্ঠার সামগ্রী এখনও তৈরি করা হয়নি" বার্তাটি। পৃষ্ঠার কলব্যাক থেকে আপনি যে পৃষ্ঠাটি প্রথম পৃষ্ঠা হিসাবে ব্যবহার করছেন, নোড_পেজ_ডেফল্ট () , যা নীচের কোডটি ধারণ করে তা দেখানো হয়েছে ।

  $select = db_select('node', 'n')
    ->fields('n', array('nid', 'sticky', 'created'))
    ->condition('n.promote', 1)
    ->condition('n.status', 1)
    ->orderBy('n.sticky', 'DESC')
    ->orderBy('n.created', 'DESC')
    ->extend('PagerDefault')
    ->limit(variable_get('default_nodes_main', 10))
    ->addTag('node_access');

  $nids = $select->execute()->fetchCol();

  if (!empty($nids)) {
    $nodes = node_load_multiple($nids);
    $build = node_view_multiple($nodes);

    // 'rss.xml' is a path, not a file, registered in node_menu().
    drupal_add_feed('rss.xml', variable_get('site_name', 'Drupal') . ' ' . t('RSS'));
    $build['pager'] = array(
      '#theme' => 'pager', 
      '#weight' => 5,
    );
    drupal_set_title('');
  }
  else {
    drupal_set_title(t('Welcome to @site-name', array('@site-name' => variable_get('site_name', 'Drupal'))), PASS_THROUGH);

    $default_message = '<p>' . t('No front page content has been created yet.') . '</p>';

    // …
  }

এটি কেবল আউটপুট কারণ সাইটের নোড নেই; বার্তাটি ব্লকযুক্ত (বা না থাকা) প্রথম পৃষ্ঠার সাথে সম্পর্কিত নয়।

আপনি যদি সেই প্রথম পৃষ্ঠাটি রাখতে চান তবে সেই বার্তাটি না দেখে আপনি একটি মডিউলে নিম্নলিখিত হুকটি প্রয়োগ করতে পারেন।

function mymodule_page_alter(&$page) {
  if (isset($page['default_message']['#markup']) && is_string($page['default_message']['#markup'])) {
    $page['default_message']['#markup'] = strtr($page['default_message']['#markup'], '<p>' . t('No front page content has been created yet.') . '</p>', '');
  }
}

অন্য বিকল্পটি সেটিংস.এফপি ফাইলের শেষে নিম্নলিখিত কোড যুক্ত করা হবে।

$conf['locale_custom_strings_en'][''] = array(
  'No front page content has been created yet.' => '',
);

আপনি যদি আপনার ওয়েবসাইটে অন্য ভাষা সক্ষম করে থাকেন তবে আপনি প্রতিটি ভাষার জন্য অনুরূপ এন্ট্রি যুক্ত করতে পারেন। উদাহরণস্বরূপ, ইতালীয় ভাষাতে প্রবেশের কোডটি নীচের একটি হবে। (এর _enসাথে প্রতিস্থাপন করা হয় _it।)

$conf['locale_custom_strings_it'][''] = array(
  'No front page content has been created yet.' => '',
);

এই পদ্ধতিটি ব্যবহার করে, "কোনও সামনের পৃষ্ঠার সামগ্রী এখনও তৈরি করা হয়নি।" এটি কেবল প্রথম পৃষ্ঠায় নয়, যেখানে ব্যবহৃত হয় সেখানে প্রতিস্থাপন করা হবে। এই স্ট্রিংটি কেবলমাত্র প্রথম পৃষ্ঠায় ব্যবহৃত হয়, যখন প্রথম পৃষ্ঠাটি ডিফল্ট হয়। আমি জানি না যে অন্য কোনও মডিউল সেই স্ট্রিংটি ব্যবহার করছে কিনা, তবে সেই স্ট্রিংটি খালি স্ট্রিংয়ের সাথে প্রতিস্থাপন করার আগে $conf['locale_custom_strings_en'][''], আমি এটি পরীক্ষা করে দেখব যে এটি কোনও সক্ষম মডিউল নেই যা এটি ব্যবহার করে (নোড মডিউল ব্যতীত)।


যাইহোক, এটি আমার হোমপেজ থেকে বিদ্যমান সমস্ত ব্লকগুলি সরিয়ে দেবে? আমি আবার তাদের আবার করতে হবে? অথবা এটি কেবল যে বার্তাটি আমি চাই না তা থেকে মুক্তি পাবে?
ব্যবহারকারী 12804

কোনও পৃষ্ঠার জন্য পৃষ্ঠা কলব্যাক পরিবর্তন করা সেই পৃষ্ঠায় নির্ধারিত ব্লকগুলিকে পরিবর্তন করে না, সুতরাং উত্তর দুটি প্রশ্নেরই নয়।
kiamlaluno

দুঃখিত, অন্য একটি প্রশ্ন। আমি কোন মডিউল এটি রাখা উচিত? আপনি যদি সেই প্রথম পৃষ্ঠাটি রাখতে চান তবে সেই বার্তাটি না দেখে আপনি মডিউলে নিম্নলিখিত হুকটি প্রয়োগ করতে পারেন। ফাংশন mymodule_page_alter (& $ পৃষ্ঠা) {যদি (isset ($ পৃষ্ঠা ['default_message'] [['# চিহ্নিতকরণ']]) && is_string ($ পৃষ্ঠা ['ডিফল্ট_মেসেজ'] ['# চিহ্নিতকরণ'])) $ $ পৃষ্ঠা ['ডিফল্ট_মেসেজ] '] [' # মার্কআপ '] = স্ট্র্ট ($ পৃষ্ঠা [' ডিফল্ট_মেসেজ '] [[' # চিহ্নিতকরণ '],' <p> '। টি (' কোনও সম্মুখ পৃষ্ঠার সামগ্রী এখনও তৈরি করা হয়নি। ')।' </ p > ',' '); }}
ব্যবহারকারী 12804

আপনি যদি সাইটটি কাস্টমাইজ করতে ইতিমধ্যে একটি তৈরি না করেন তবে আপনাকে একটি মডিউল তৈরি করতে হবে।
kiamlaluno

1

সমস্ত নতুন প্রকল্পের জন্য আমার কাছে একটি টেম্পলেট রয়েছে যা এতে রয়েছে:

  1. "হোম" এর মতো জেনেরিক পাথের জন্য একটি নতুন মেনু কলব্যাক করতে হুক_মেনু ()
  2. "হোম" এর জন্য পৃষ্ঠা কলব্যাক যা এতে একটি জায়গার সাথে একটি স্ট্রিং ফেরত দেয় '' (কারণ আপনি যদি খালি স্ট্রিং ফিরিয়ে দেন ওমেগা "স্মার্ট" হওয়ার চেষ্টা করে)
  3. একটি শক্তিশালী রফতানি যা সাইটের হোমপৃষ্ঠাটি আমার "হোম" url এ সেট করে

এটাই হ'ল, আমাকে আর কখনও তীব্র ডিফল্ট নোড পৃষ্ঠার সাথে ডিল করতে হবে না।


আপনি কেন রফতানি করেন এবং কেবল আপনার হুক_নেবল () ভেরিয়েবল_সেট ('সাইট_ফ্রন্টপেজ', 'হোম') এ সেট করেন না; কেবল একটি নোট
প্যান ক্রোনো

1

বিষয়বস্তু অঞ্চলে রাখা অন্যান্য সামগ্রীর সাথে বিভ্রান্ত না করে এই ত্রুটি থেকে মুক্তি পাওয়ার জন্য এটি একটি দুর্দান্ত স্নিপেট । এটি কেবল এই ত্রুটিটি আড়াল করবে এবং অন্যান্য সামগ্রীগুলি সাধারণত দেখায়।

এই স্নিপেটটি সরান এ পোস্ট করা হয়েছে "এখনও কোনও সম্মুখ পৃষ্ঠার সামগ্রী তৈরি করা হয়নি"। ডিফল্ট ড্রুপাল ইনস্টলেশন

/**
 * Implements template_preprocess_page().
 */

  function YOUR_THEME_preprocess_page(&$vars) {
   // Remove the "No front page content has been created yet.".
     if (isset($vars['page']['content']['system_main']['default_message'])) {
        unset($vars['page']['content']['system_main']['default_message']);
      }
  }

0

আপনার পৃষ্ঠা.tpl.php পৃষ্ঠায় হুক করুন - front.tpl.php এবং আপনি যা চান হুকিং উপভোগ করতে চান :-)


তার জন্য ধন্যবাদ. আমি কীভাবে এই দুটি টেম্পলেটগুলিকে "হুক" করব? এটি কি "এখনও কোনও সম্মুখ পৃষ্ঠার সামগ্রী তৈরি করা হয়নি" থেকে মুক্তি পাবে? হোমপেজে পাঠ্য?
ব্যবহারকারী 12804

উভয় টেম্পলেট হুক করার দরকার নেই কেবল এই পদক্ষেপগুলি অনুসরণ করুন:
সোমিক

1) মোট পেজ.tpl.php সামগ্রীটি আপনার হুক করা ফ্রন্টে টুপিএলপিপি করুন 2) তারপরে চেকের জন্য উপরে আপনার নাম বা আমার নাম লিখুন এবং আপনার বাড়িকে রিফ্রেশ করুন 3) আপনি যদি নিজের নাম কনফিগারেশনটি> পারফরম্যান্স-> পরিষ্কার না পান তবে সমস্ত ক্যাশে হার্ড রিফ্রেশ প্রথম পৃষ্ঠা
সোমিক

2
যদি একাধিক থিম সক্ষম থাকে তবে আমি বরং এই পদ্ধতিটি অনুসরণ করব না।
কিমলালুনো

0

ড্রুপালের অ্যাডমিন ইন্টারফেস থেকে এটি করার কোনও উপায় আছে কিনা তা আমি নিশ্চিত নই।

এটি সম্পাদন করার একটি উপায়, যা আমি জানি, তা হল ifআপনার একটি বিবৃতি যুক্ত করা page.tpl.php। একটি লাইন এটির মতো সন্ধান করুন:

<?php print render($page['content']); ?>` 

... এবং এটিকে পরিবর্তন করুন:

<?php if (!$is_front): ?>
  <?php print render($page['content']); ?>
<?php endif; ?>

এটি মূলত সমস্ত পৃষ্ঠায় মূল পৃষ্ঠার সামগ্রী মুদ্রণ করবে যা প্রথম পৃষ্ঠা নয়। তবে, এটি আপনাকে আপনার পৃষ্ঠার মাঝখানে ফাঁক করে দেবে with

বার্তিক থিমে মন্তব্য করার পরে।

সুতরাং, আপনি আপনার আরও কয়েকটি সামঞ্জস্য করতে ভাল করতে পারেন page.tpl.phpএবং আশেপাশের আরও কয়েকটি ধারক ট্যাগকে অন্তর্ভুক্ত করতে পারেন। হোম পৃষ্ঠার জন্য প্রথম সাইডবারের উপরে শিরোনামটি রেখে, ট্যাম্পলেটটি আরও পরিবর্তন করা:

<?php if ($is_front): ?>
  <?php if ($title): ?>
    <h1 class="title" id="page-title">
      <?php print $title; ?>
    </h1>
  <?php endif; ?>
<?php endif; ?>

... এবং প্রাথমিক ifবিবৃতিটি সরানো এবং এটি কেবলমাত্র সামগ্রী ধারকের ভিতরে রেখে দেওয়া:

<div id="content" class="column">
  <?php if (!$is_front): // Moved the if statement over here.... ?>
    <div class="section">
      <?php if ($page['highlighted']): ?>
        <div id="highlighted"><?php print render($page['highlighted']); ?>
        </div>
      <?php endif; ?>
      <a id="main-content"></a>
      <?php print render($title_prefix); ?>
      <?php if ($title): ?>
        <h1 class="title" id="page-title">
          <?php print $title; ?>
        </h1>
      <?php endif; ?>
      <?php print render($title_suffix); ?>
      <?php if ($tabs): ?>
        <div class="tabs">
          <?php print render($tabs); ?>
        </div>
      <?php endif; ?>
      <?php print render($page['help']); ?>
      <?php if ($action_links): ?>
        <ul class="action-links">
          <?php print render($action_links); ?>
        </ul>
      <?php endif; ?>
        <?php print render($page['content']); ?>
      <?php print $feed_icons; ?>

    </div>
  <?php endif;  // ...and closed it here. ?>
</div> <!-- /.section, /#content -->

... নিম্নলিখিত ফলাফল পেয়েছে:

সামগ্রীটি সরানো হয়েছে এবং শিরোনাম বজায় রেখেছে।


এই অত্যন্ত অত্যধিক হল: এটা সব সামগ্রী সরাতে করার প্রয়োজন নেই $page['content']
কিমলালুনো

এর পরিবর্তে আপনি কী পরামর্শ করবেন?
ব্যবহারকারী 12804


0

আমি জানি না আপনি ছেলেরা এতো জটিল করে কেন। (আচ্ছা আবাদের উপায়গুলি কাজ করে কিনা আমি জানি না, তবে যদি এটি কাজ না করে তবে নীচের সমাধানটি ব্যবহার করুন।

পৃষ্ঠা.tpl.php এ আপনাকে কোডের এই অংশটি খুঁজে পেতে হবে:

(ভাল আমি এটি আমার অভিযোজিত থিম 7x-3.2)

<?php if ($title): ?>
<h1 id="page-title">
<?php print $title; ?>
</h1>
<?php endif; ?>

আপনাকে যা করতে হবে তা হ'ল এটি মুছতে! সমস্ত লাইন।

পিএইচপি এই অংশটি সহজভাবে বলে:

যদি "শিরোনাম" উপস্থিত থাকে তবে এটিকে H1 ফন্ট আকারে মুদ্রণ করুন। কোডটি সেই অঞ্চলে ওয়েবসাইটটিতে এটি মুদ্রিত হয় Ad

আপনার সাবটাইটেমে পেজ.টিপিএলপিএফপি না থাকলে আপনি এটির মূল থিমটি খুঁজে বের করতে হবে এবং তারপরে এটিকে মূল থিম হিসাবে একই জায়গায়, আপনার সাবটমিতে অনুলিপি করতে হবে।

এটিতে এটি /templates/page.tpl.php

এর অর্থ হল যে আপনার অভিযোজিত থিমের সাবটিমে আপনাকে "টেম্পলেট" নামে ফোল্ডার তৈরি করতে হবে এবং তারপরে সেখানে পেইজ.টিপিএল.পিপি অনুলিপি করতে হবে এবং তারপরে উপরে বর্ণিত কোডের অংশটি মুছতে হবে।

আপনি কোর থিমটিতে কোনও পরিবর্তন না করা গুরুত্বপূর্ণ!


0

এই কোডটি page.tpl.php এ রাখুন

if(drupal_is_front_page()) {

unset($page['content']['system_main']['default_message']);

}

অথবা

unset($page['content']['system_main']['default_message']);

পৃষ্ঠায় - front.tpl.php



0

বেটার অর্জন এই কাজ সেট করা থাকে না $page['content']['system_main']['default_message']hook_preprocess_theme বা page.tpl.phpবা page--front.tpl.php

অনুসন্ধান

<?php print render($page['content']); ?>

এবং নীচের কোড দিয়ে প্রতিস্থাপন।

<?php  if(drupal_is_front_page()){
            unset($page['content']['system_main']['default_message']);
            } 
        print render($page['content']); 
    ?>

অথবা

  function MYTHEME_preprocess_page(&$vars) { 
       if (drupal_is_front_page()) { 
            unset($vars['page']['content']['system_main']['default_message']); //will remove message "no front page content is    created"
     }
    }

উপভোগ করুন !!


0

ড্রুপাল 8 এ, একই "কোনও সামনের পৃষ্ঠার সামগ্রী এখনও তৈরি করা হয়নি"। এছাড়াও প্রদর্শিত হয়, যেমন আপনি কোনও নতুন সাইট তৈরি করার ঠিক পরে এবং এর প্রথম পৃষ্ঠাটি (হোমপেজ) দেখার জন্য। আপনি যদি এটিকে প্রতিস্থাপন করতে বা অপসারণ করতে চান তবে জিনিসগুলি সরলীকৃত করা হয়েছে ... যা যা প্রয়োজন তা ঠিক এরকম:

  • নেভিগেট করুন /admin/structure/views/view/frontpage("সম্মুখ পৃষ্ঠায়" নামটি দর্শন সম্পাদনা করতে)।
  • "কোনও ফলাফলের আচরণ নয়" এর মধ্যে এটি সম্পাদনা করতে "গ্লোবাল: অবিলম্বে পাঠ্য" লিঙ্কটি ব্যবহার করুন। হয় বার্তাটি পরিবর্তন করুন (= "কোনও সামনের পৃষ্ঠার সামগ্রী এখনও তৈরি করা যায়নি।") আপনি যা যা চান তেমন করুন বা এটি পুরোপুরি সরিয়ে ফেলুন।
  • পরিবর্তনগুলি সংরক্ষণ করতে ভুলবেন না ।

আপনার পরিবর্তনগুলি যাচাই করতে, প্রথম পৃষ্ঠায় ব্রাউজ করুন। প্রয়োজনে বার্তাটি আরও টিউন করতে উপরের পদক্ষেপগুলি পুনরাবৃত্তি করুন।

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