मुद्दा
ऐसी सुविधा को अनइंस्टॉल करना जो एक कंटेंट टाइप बनाता है, पर "डिलीट" लिंक को छुपाता है admin/structure/types
।
ऐसी सुविधा को अनइंस्टॉल करना जो एक कंटेंट टाइप बनाता है, पर "डिलीट" लिंक को छुपाता है admin/structure/types
।
जवाबों:
hook_uninstall()
FEATURE_NAME.install फ़ाइल का उपयोग करना और सामग्री प्रकार की स्थिति बदलना, इसलिए सिस्टम को लगता है कि यह एक अनलॉक, कस्टम सामग्री प्रकार है।
मैंने इसे d.org पर भी पोस्ट किया है ।
<?php
/**
* Implements hook_uninstall().
*/
function FEATURE_NAME_uninstall() {
// List custom content types added by this feature
$custom_ctypes = array(
'blog',
);
// Go through each and unlock the content type
foreach ($custom_ctypes as $ctype) {
db_query("UPDATE {node_type} SET `custom` = 1, locked = 0 WHERE type = :ctype", array(':ctype' => $ctype));
}
// Clean Drupal cache; this is necessary for the "Delete" link to appear
// next to the content type created by the feature.
drupal_flush_all_caches();
}
इससे उस सामग्री प्रकार के लिए "हटाएं" बटन दिखाई देगा, इसलिए आप इसे व्यवस्थापक से हटा सकते हैं।
आशा है कि यह किसी की मदद करता है!
node_type_delete($ctype);
के लिए लूप में क्वेरी के बाद सामग्री प्रकार ऐड जोड़ें ।
mysql> UPDATE node_type SET custom = 1, locked = 0 WHERE type = '<content type machine name>';
मेरे लिए, समाधान हटाना पृष्ठ को मैन्युअल रूप से लोड करना था क्योंकि सामग्री प्रकार पृष्ठ पर कोई "हटाएं" लिंक नहीं है। ऐसा करने के लिए, आपको बस उसी URL संरचना का अनुसरण करके URL का निर्माण करना होगा, जो अन्य सामग्री प्रकारों के लिए हटाए गए पृष्ठ के रूप में हो:
व्यवस्थापक / संरचना / प्रकार / प्रबंधन / YOUR_CONTENT_TYPE_MACHINE_NAME / हटाएँ
इससे कंटेंट टाइप डिलीट कन्फर्मेशन पेज सामने आया, जिसने मुझे कंटेंट टाइप डिलीट करने की अनुमति दी।
संदर्भ के लिए, Drupal.org पर इस धागे को देखें:
https://drupal.org/node/1055460#comment-7297680
सादर,
@cmsdave
.info
फाइल को एडिट करना होगा और कंटेंट टाइप को हटाना होगा, तब यह वास्तव में डिलीट हो जाएगा।
उपरोक्त विधि टैक्सोनॉमी को नष्ट नहीं करती है, लेकिन इसे मॉड्यूल को अक्षम और अनइंस्टॉल करने के बाद निम्नलिखित जोड़कर प्राप्त किया जा सकता है:
// Delete taxonomies.
$machine_names = array('taxonomy_a', 'taxonomy_b');
foreach ($machine_names as $machine_name) {
$taxonomy = taxonomy_vocabulary_machine_name_load($machine_name);
taxonomy_vocabulary_delete($taxonomy->vid);
}
एक और समाधान जो मेरे लिए सीधे मेरी विकास साइट के डेटाबेस में काम करता है। अपने डेटाबेस का बैकअप हमेशा याद रखें।
मैन्युअल रूप से एक सामग्री प्रकार को हटाने के लिए जो कि एक सुविधा # 16 द्वारा बनाया गया था जो कि नेदजो बताता है कि निम्नलिखित है:
- सुविधा को अक्षम करें। मैंने कभी-कभी इसके साथ समस्याओं में भाग लिया है - एक सुविधा अक्षम नहीं होगी। इस स्थिति में, फीचर मॉड्यूल कोड को हटा दें।
- डिलीट की जाने वाली सामग्री के प्रकार का मशीन नाम निर्धारित करें, जैसे, 'mytype'।
- डेटाबेस में, डिफ़ॉल्ट पर नोड_टाइप तालिका मानों को वापस कर दें जैसे कि सामग्री प्रकार को UI के माध्यम से मैन्युअल रूप से बनाया गया था:
mysql> UPDATE node_type SET module = 'node', custom = 1, modified = 1, locked = 0 WHERE type = 'mytype';
- सामग्री प्रकार परिवर्तन उपलब्ध है यह सुनिश्चित करने के लिए स्पष्ट कैश।
- UI पर व्यवस्थापक / संरचना / प्रकारों के माध्यम से, सामग्री प्रकार हटाएं।
यदि आप admin_menu मॉड्यूल का उपयोग करते हैं , तो आप तब भी पुल-डाउन मेनू में डिलीट लिंक देखेंगे संरचना / सामग्री प्रकार / [सामग्री प्रकार नाम] / हटाएं, भले ही वे सामग्री प्रकार पृष्ठ पर प्रदर्शित न हों।
मैं कहूंगा कि इस डिलीट लिंक का उपयोग करना बहुत सुरक्षित है यदि आप आश्वस्त करते हैं कि इस सामग्री प्रकार का कोई अन्य संदर्भ नहीं है।