নোড তৈরি হওয়ার সময় পাথ ওরফে প্রগ্রেমেটিক তৈরি করুন


8

আমার কাছে একটি কাস্টম সামগ্রী রয়েছে যা মডিউল দ্বারা তৈরি। নোড তৈরি হওয়ার সময় আমি কি আমার কাস্টম সামগ্রীর প্রকারের পথের নামটি সেট করতে ব্যবহার করতে পারি?

আমার ক্ষেত্রগুলির একটি হ'ল একটি আলফা-সংখ্যাসূচক কোড এবং আমি সেই পথে ব্যবহার করতে চাই। উদাহরণস্বরূপ: 'ইভেন্ট / myc0d3'

আমি লক্ষ্য করেছি যে এই ফাংশনটি ( পথ_সেট_ালিয়াস ) 6-তে বিদ্যমান ছিল, কিন্তু আমি 7 এর সমতুল্য খুঁজে পাচ্ছি না এবং আমি জানি না যে আমি এটি কোথায় ডাকব।

উত্তর:


10

হুক ব্যবহারের পরিবর্তে, পাঠাটো মডিউলটি ব্যবহার করা উচিত যেখানে আপনি নির্দিষ্ট প্যাটার্নটি নির্ধারণ করতে পারেন যে কীভাবে সামগ্রীতে প্রকারের ( উপাখণ্ডার/admin/config/search/path/patterns ) উপকরণ তৈরি করা হয়। সেখানে আপনি প্রতিস্থাপনের ধরণগুলি ব্যবহার করতে পারেন বা নিজের কোড কোড ব্যবহার করতে পারেন। এটি অনেক পরিষ্কার পদ্ধতি।

অন্যথায় আপনি চেষ্টা করতে পারেন hook_node_presave($node)এবং সরাসরি নামটি পরিবর্তন করতে পারেন :

$node->path['pathauto'] = 0; // Required only if Pathauto is enabled.
$node->path['alias'] = "foo/bar";

অথবা path_save(&$path)সরাসরি নীচের মতো ফাংশনটি ব্যবহার করুন :

$path = array('source' => "node/$node->nid", 'alias' => 'foo/bar');
path_save($path);

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

9

ফাংশনটিকে এখন প্যাথ_স্যাভ () বলা হয় , উদাহরণের জন্য path_taxonomy_term_insert () দেখুন ।


4
আপনার এই উত্তরটি কেবল অফসাইট সংস্থানগুলিতে লিঙ্ক না করার জন্য সত্যই প্রসারিত করা উচিত, তবে লিঙ্কগুলি যতক্ষণ না তারা বৈধ থাকে, দরকারী ছিল।
ড্রকর্ড

9

hook_node_insert () আমার ক্ষেত্রে কাজ করছে না এবং কিছু অনুসন্ধানের সাথে আমি এই ব্লগ পোস্টটি নিয়ে এসেছি । আমি হুক_ইনসর্ট () একইভাবে এবং প্রিস্টোতে প্রয়োগ করেছি

/**
 * Implements hook_insert().
 */
function mymodule_insert($node) {
    // Set the URL alias
    if (empty($node->path['alias'])) {
        $node->path['alias'] = 'slug/' . $node->nid;
    }
}

2
লক্ষ্য করা যায় যে hook_insert()মডিউল প্রয়োগকারী যখন কোনও সামগ্রী ধরণের সংজ্ঞা দিচ্ছে কেবল তখনই এটি ব্যবহৃত হয়; হুক অন্য মডিউল থেকে সংজ্ঞায়িত সামগ্রীর ধরণের জন্য নোডে কাজ করতে ব্যবহার করা যাবে না।
কিমলালুনো

ঠিক এই কারণেই কেবল নিবন্ধগুলিতে লিঙ্ক স্থাপন করার পরামর্শ দেওয়া হয়নি, পরিবর্তে উত্তরের প্রসারিত করা এবং সেই নিবন্ধগুলি থেকে মূল দরকারী তথ্য বের করা - যে 'ব্লগ পোস্ট' লিঙ্কটি আর বৈধ নয় এবং ফলাফল 404
তিতি

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