ড্রুপাল 7-এ আমি কীভাবে মেন্যু পুনর্নির্মাণ ফাংশনটিকে কল করব?


13

আমি মেনু_আরবিল্ড () ফাংশনটি কল করতে চাই তবে কোড স্নিপেটটি ঠিক কোথায় পেস্ট করবে তা সম্পর্কে আমি নিশ্চিত নই।

আমি আমার স্থানীয় দৃষ্টান্তের মধ্যে আপডেট.এফপিপি ফাইলটি কোথাও পাই না ।

আমি এটি চেষ্টা করার কারণটি হ'ল আমি সমস্ত নোড মুছে ফেলেছি তবে সেগুলি এখনও মেনু কাঠামোর অধীনে প্রদর্শিত হচ্ছে।


আপনি আপডেটের পরে ড্রুপাল মেনু পুনর্নির্মাণ করতে চান বা কী?
Aboodred1

আপডেট.এফপি ড্রুপাল রুট ফোল্ডারে থাকবে অর্থাত্‍ /var/www/htdocs/drupalএটিকে সংশোধন করা খারাপ ধারণা। আপনি কেন মেনু_রেইল বিল্ড করতে চান তা সম্পর্কে আরও বিশদ যুক্ত করতে পারেন?
গুডস্পিনিপি

আবুড্রেড 1, হ্যাঁ, আমি সমস্ত নোড মোছার পরে ড্রুপাল মেনুটি পুনরায় তৈরি করতে চাই। 2-স্ট্রোকার, drupal.stackexchange.com/ প্রশ্নগুলি
588606

@ ব্যবহারকারী 12804, আপনি কি নোড-সম্পর্কিত মেনুতে নিশ্চিত? যদি তা হয় তবে আমি ইতিমধ্যে অন্য প্রশ্নের উত্তর দিয়েছি।
সিথু

উত্তর:


5

নিম্নলিখিত বিষয়বস্তু সহ একটি ফাইল তৈরি করুন এবং কেবল ড্রুপাল রুট ডিরেক্টরিতে ড্রপ করুন। বলা যাক menu-rebuild.php। এটি চালান http://example.com/menu-rebuild.php

<?php
error_reporting(E_ALL);
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

menu_rebuild();


15

দ্রুপাল 7

আপনি যদি ড্রাশ ব্যবহার করছেন তবে আপনি চালাতে পারেন:

drush eval 'menu_rebuild();'

যদি কাজ না করে, দেখুন: পিএইচপি মারাত্মক ত্রুটি থাকা অবস্থায় মেনু পুনর্নির্মাণ কীভাবে করবেন?

দ্রুপাল ঘ

drush php-eval 'drupal_rebuild_theme_registry()'

memcached

আপনি যদি মেমক্যাচ ব্যবহার করছেন তবে আপনাকে এটি পুনরায় চালু করতে হবে।

লিনাক্সে: /etc/init.d/memcached restart

ওএস এক্সে (যদি হোমব্রু ব্যবহার করা হয়): brew services restart memcached


এটি সহজেই করার জন্য সঠিক ড্রাশ কমান্ডের পক্ষে ভোট দিন, তবে আপনার অবশ্যই অবশ্যই যুক্ত করা উচিত যে কিছু ক্ষেত্রে আপনাকে উপরের @ ভালক দ্বারা উল্লিখিত পছন্দ করার আগে সংশ্লিষ্ট ডেটাবেস টেবিলগুলি খালি করতে হবে
নীলসুন

11

ডাটাবেস স্কিমা খুলুন, তারপরে নিম্নলিখিত এসকিউএল কোয়েরিগুলির সাথে মেনু_লিংক এবং মেনু_রউটার টেবিলের সমস্ত সামগ্রী মুছুন:

DELETE FROM menu_links;
DELETE FROM menu_router;

তারপরে http://example.com/update.php চালান । এটি মেনু_রেইবিল্ড () কল করবে, যা এই সারণীগুলিকে 'টাটকা' ডেটা সহ বিশিষ্ট করবে। এটি "পিএইচপি মারাত্মক ত্রুটি: মেমরির বাইরে" আমার কিছু মেনুগুলিকে গোলমেলে পরিণত করার পরে এটি আমার পক্ষে কাজ করেছিল।

তবে সচেতন থাকুন, এটি আপনাকে সমস্ত কাস্টম মেনু মুছে ফেলবে যা আপনাকে ম্যানুয়ালি পুনর্নির্মাণ করতে হবে। এটি এড়ানোর জন্য আপনি মেনু_আউটার এবং মেনু_লিংকগুলি থেকে কিছু নির্বাচিত রেকর্ড মুছে ফেলার সাথে কিছুটা খেলতে পারেন তবে আমার পক্ষে এটি কার্যকর হয়নি।

এবং টেবিলগুলি থেকে সামগ্রী মোছার আগে আপনার ডাটাবেস এবং সাইট ডিরেক্টরিটিকে ব্যাক-আপ করতে ভুলবেন না।


2
প্রয়োজনীয় অতিরিক্ত তথ্যের জন্য ভোট দিন, যে কখনও কখনও আপনাকে অবশ্যই মেনু_রবিল্ডের আগে দায়বদ্ধ ডেটাবেস টেবিলগুলি খালি করতে হবে। দীর্ঘমেয়াদী অভিজ্ঞতা থেকে এটি এখানে নিশ্চিত হয়েছে ...
নীলসুন

3

বিভিন্ন উপায়ে একটি দম্পতি:

  1. হুক_আপডেট_এনmenu_rebuild() থেকে কল করুন
  2. দ্রুপাল অ্যাডমিন থেকে একটি মেনু সেটিংস ফর্ম সম্পাদনা করুন এবং সংরক্ষণ করুন।
  3. কমান্ড লাইন থেকে, ড্রশ সহ: drush cc menu

ধন্যবাদ. আমি কি ড্রশ ছাড়াই এটি করতে পারি?
ব্যবহারকারী 12804

হ্যাঁ, উপরের 3 টি পদ্ধতির যেকোনটি নিজেই কাজ করবে।
ডেভিড থমাস

পুনঃ দ্রুপাল প্রশাসক থেকে একটি মেনু লিঙ্ক সম্পাদনা করুন এবং সংরক্ষণ করুন। কাজ করে না, ইতিমধ্যে কয়েকবার চেষ্টা করেছি ...
ব্যবহারকারীর 12804

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

2

যাওয়া admin/config/development/performanceএবং "সব পরিষ্কার ক্যাশে" বোতামে ক্লিক মেনু পুনর্নির্মিত, সেইসাথে পরিষ্কার টেমপ্লেট, ব্লক, পৃষ্ঠা, ইত্যাদি ক্যাশে করা হতে হবে।


থ্যাঙ্কস পেনটেন, আমি বেশ কয়েকবার চেষ্টা করেছি, তবে ভাগ্য নেই। মুছে ফেলা নোডগুলি এখনও নেভিগেশন মেনু কাঠামোতে প্রদর্শিত হচ্ছে :(
ব্যবহারকারী 12804


0

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

এখানে এসকিউএল কোয়েরি রয়েছে:

DELETE FROM menu_links WHERE menu_name='management' 

মেনুটি পুনঃনির্মাণ করতে বেশিরভাগ সময় প্রয়োজন হয় যখন কিছু সত্যই ভাঙা হয় এবং ড্রুপাল মাঝখানে এটি ঠিক করতে পারে না। এজন্য আমি বরং বলস পদ্ধতিটি সুপারিশ করব কারণ পুরোপুরি পুনরায় সেট করা এই জাতীয় প্রশ্নের আরও ভাল উত্তর, যদি আরও বিশদ বিবরণ না দেওয়া হয় তবে কী ভাঙা রয়েছে।
নীলসুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.