Hook_install এ নতুন সামগ্রী প্রকার তৈরি করুন


11

মডিউলের হুক_ইনস্টল পদ্ধতিতে কীভাবে একটি নতুন সামগ্রীর প্রকার তৈরি করতে হয় তার কোনও সঠিক উদাহরণ আমাকে দেখাতে পারে ?

আমার জঞ্জাল পরিষ্কার করতে হুক_উনস্টল চলাকালীন আমার কী করা উচিত তাও জানতে চাই ; আমি পড়েছি কেবল বিষয়বস্তু অপসারণ সম্পর্কে কিছু বিতর্ক আছে।

এই কাজটি সম্পাদন করার সঠিক পদ্ধতির উদাহরণ আমি খুঁজে পাচ্ছি না, যে কোনও সাহায্যের প্রশংসা হবে!

উত্তর:


7

আপনার প্রশ্নের সঠিক উত্তর দিতে:

হুক ইনস্টলে একটি সামগ্রীর ধরণ তৈরি করা : আপনি বিষয়বস্তুর প্রকারটি তৈরি করতে নোড_ টাইপ_সেভ () ব্যবহার করেন, এখানে ওয়েবফর্ম.ইনস্টল থেকে একটি উদাহরণ রয়েছে:

  // Create the default webform type.
  $webform_type = array(
    'type' => 'webform',
    'name' => st('Webform'),
    'base' => 'node_content',
    'description' => st('Create a new form or questionnaire accessible to users. Submission results and statistics are recorded and accessible to privileged users.'),
    'custom' => TRUE,
    'modified' => TRUE,
    'locked' => FALSE,
  );

  $webform_type = node_type_set_defaults($webform_type);
  node_type_save($webform_type);
  node_add_body_field($webform_type);

হুক_উনস্টল-এ কী করবেন : মূলত নিজের পরে কেবল পরিষ্কার করুন, সুতরাং আপনার মডিউলটি তৈরি করা ভেরিয়েবলগুলি মুছুন (ভেরিয়েবল_ডেল () ব্যবহার করে ), মডিউল দ্বারা আপলোড করা কোনও ফাইল মুছুন ( ফাইল_মনেজড_ডিলেট_ড্রেসসিভ () ব্যবহার করে , সংজ্ঞায়িত সামগ্রীর প্রকারগুলি মুছুন ( নোড_টাইপ_ডিলেট () ব্যবহার করে ), প্রভৃতি

আশাকরি এটা সাহায্য করবে!


আপনাকে ধন্যবাদ, কোডিংয়ের পাশাপাশি এটি করার উপায়টিও জেনে রাখা ভাল এবং আনইনস্টলটি ব্যবহার করার জন্য আমার কিছু ভাল তথ্য পাওয়া দরকার
জেন পান্ড

কোন সমস্যা নেই, খুশি! :)
অ্যালেক্স ওয়েবার

11

কোডটিতে এই তথ্যটি রাখার সর্বোত্তম উপায়গুলির একটি হল বৈশিষ্ট্যগুলি ব্যবহার করা । ভয় কোডে লাগাতে পারে:

  • সামগ্রীর ধরণ
  • সিসিকে ক্ষেত্র
  • অনুমতিসমূহ
  • ভূমিকা

তালিকাটি এগিয়ে যায়।

বৈশিষ্ট্যগুলি সম্পর্কে একটি দুর্দান্ত বৈশিষ্ট্য হ'ল ড্রশ সংহতকরণ

drush featuresআপনাকে সাইটের সমস্ত বৈশিষ্ট্যগুলির একটি তালিকা দেবে এবং তাদের স্থিতি
drush features revert allসমস্ত বৈশিষ্ট্যগুলি কোডের মধ্যে ফিরিয়ে আনবে (মোতায়েনের পরে চলার জন্য সত্যই কার্যকর)

এই সাহায্য করে


সম্মত হয়েছে, যদিও এটি সরাসরি প্রশ্নের উত্তর দেয় না ...
অ্যালেক্স ওয়েবার

হ্যাঁ, আমি জানি এটি অনুরোধ করা সঠিক সমাধানটি সঠিক নয়, তবে শেষ পর্যন্ত তারা উভয়ই একই লক্ষ্য অর্জন করবে, এটি ঠিক যে একটি বজায় রাখা একটি দুঃস্বপ্ন হবে, এবং অন্যটি পয়েন্ট এবং ক্লিক এবং দারুণ ড্রশ সংহতকরণের সাথে সহজ হবে । বব তার জন্য কী কাজ করতে পারে তা স্থির করতে পারেন
wiifm

1
আবারও রাজি! ড্রশ + বৈশিষ্ট্যগুলি প্রথমে ভয় দেখানো হতে পারে তবে এটির হ্যাংটি পাওয়ার পরে এটি এত কার্যকর :) :)
অ্যালেক্স ওয়েবার

আমি একটি শট দেব, আমার মনে হয় আমি যদি কোনও কাস্টম সামগ্রী প্রকার রফতানি করতে পারি তবে সময়টি সাশ্রয় হবে তাই আমাকে সমস্ত ক্ষেত্রটি জ্যামের হাতে দিতে হবে না Thanks ধন্যবাদ!
জেন পান্ডা

3

ডি 7 উদাহরণ মডিউলটি পরীক্ষা করে দেখুন । নোড_সাম্পলিতে ইনস্টল এবং আনইনস্টল রয়েছে।

আপনি ইন্টারফেস সরঞ্জামগুলির সাহায্যে প্রকারটি বের করতে সক্ষম হবেন এবং তারপরে একটি বৈশিষ্ট্য তৈরি করুন (বৈশিষ্ট্যগুলি মডিউল সহ) এবং আপনার কাস্টম মডিউলের ইনস্টল ফাংশনে প্রাসঙ্গিক অংশগুলি বের করতে পারেন।


0

আপনি যদি কিছু ক্ষেত্রের সাথে একটি নতুন সামগ্রীর ধরণ তৈরি করতে চান তবে আপনি নীচের কোডটি ব্যবহার করতে পারেন।

এই কোডটি আমার পক্ষে নিখুঁতভাবে কাজ করে।

function HOOK_install() {

 /* CREATE THE CONTENT TYPE */
 $t = get_t();
 $node_example = array(
    'type' => 'slider',
    'name' => $t('Slider Content'),
    'base' => 'node_content',
    'description' => $t('Add slider content.'),
    'body_label' => $t('Slider Description')
 );
 $content_type = node_type_set_defaults($node_example);

// Create a custom Field with our required field-type.
$field = array(
  'field_slider_images' => array (
    'field_name' => 'field_slider_images',
    'type' => 'image',
  ),
 'field_slider_links' => array (
   'field_name' => 'field_slider_links',
   'type' => 'text',
   'entity_types' => array('node'),
  ),

);
foreach ($field as $fields) {
  field_create_field($fields);
}

// Create a instances of that Field.
$instance = array(
'field_slider_images' => array (
  'field_name' => 'field_slider_images',
  'entity_type' => 'node',
  'bundle' => 'slider',
  'label' => t('Slider Image'),
  'description' => 'Add Slider Image.',
  'settings' => array(
    'file_directory' => 'field/document',
    'file_extensions' => 'png PNG jpg jpeg JPG JPEG',
    'max_filesize' => '10MB',
    'title_field' => '',
  ),
  'widget' => array(
     'type' => 'image_image',
     'weight'=> 10,
  ),
  'formatter' => array(
    'label' => t('label'),
    'format' => 'image'
  ),
  'settings' => array(
    'file_directory' => 'slider-image', // save inside "public://photos"
    'max_filesize' => '4M',
    'preview_image_style' => 'thumbnail',
    'title_field' => TRUE,
    'alt_field' => FALSE,
  )
),
'field_slider_links' => array (
  'field_name' => 'field_slider_links',
  'entity_type' => 'node',
  'bundle' => 'slider',
  'label' => t('Slider Link'),
  'widget' => array('type' => 'text_textfield'),
 ),
);

foreach ($instance as $fieldinstance) {
 field_create_instance($fieldinstance);
}

$status = node_type_save($content_type);
node_add_body_field($content_type);

// Replacement rule for the messages.
$t_args = array('%name' => $content_type->name);
if ($status == SAVED_UPDATED) { // update case
 drupal_set_message($t('The content type %name has been updated.', $t_args));
} 
 elseif ($status == SAVED_NEW) { // create case
   drupal_set_message($t('The content type %name has been added.', $t_args));
   watchdog('node', 'Added content type %name.', $t_args, WATCHDOG_NOTICE, l($t('view'), 'admin/structure/types')); 
}

}

-1

আমি মাইস্পেস সিঙ্ক মডিউলটিতে এটি করেছি।
আমি পাইকার মনে করি একসাথে বিভিন্ন উত্স থেকে, তবে আমি মনে করি না সমস্ত উত্সগুলি কী ছিল। আমি কী করেছি তা দেখতে আপনি সেখানে গিট সংগ্রহস্থলটি ব্রাউজ করতে পারেন, তবে এটি মূলত ইনস্টল থাকা সিসির কন্টেন্ট কপি মডিউল সহ প্রতিটি সামগ্রীর প্রকারের রফতানি এবং আনইনস্টলটিতে সামগ্রীর প্রকারটি মোছার আগে সমস্ত নোড মুছে ফেলা হয়।


4
প্রশ্নটি ড্রুপাল-7 ট্যাগ করা অবস্থায়, মাইস্পেস সিঙ্ক মডিউলটি কেবলমাত্র দ্রুপাল 6.. এর জন্য উপলব্ধ content তবে কনটেন্ট টাইপ তৈরি করতে ব্যবহৃত এপিআই ড্রুপাল and এবং দ্রুপাল between এর মধ্যে অনেক পরিবর্তন হয়েছে
পিয়ারে বুয়েল

-1

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