मैं कुछ सामग्री प्रकारों को हटा क्यों नहीं सकता?


19

मेरे पास एक ड्रुपल 7 साइट है, और सामग्री प्रकार मेनू के तहत, केवल कुछ प्रकारों में 'ऑपरेशन' कॉलम के तहत एक 'डिलीट' लिंक है।

सभी प्रकार की सामग्री में 'संपादित करें', 'फ़ील्ड प्रबंधित करें' और 'प्रदर्शन प्रबंधन' के लिए लिंक हैं, लेकिन कुछ में केवल 'हटाएं' हैं, जबकि अन्य नहीं हैं।

मैंने अपने उपयोगकर्ता के लिए अपनी अनुमति की जाँच की, और मेरे पास है Administer content types- लेकिन यह सभी सामग्री प्रकारों के लिए एक वैश्विक अनुमति प्रतीत होती है, इसलिए मुझे अभी भी समझ में नहीं आया कि कुछ क्यों हटाये जा रहे हैं जबकि अन्य नहीं हैं।

केवल कुछ सामग्री प्रकारों में ही डिलीट ऑपरेशन क्यों होता है?

जवाबों:


15

आप केवल उन सामग्री प्रकारों को हटा सकते हैं जो मैन्युअल रूप से (के माध्यम से admin/structure/types/add) बनाए गए हैं ।

जिन सामग्री प्रकारों में डिलीट लिंक नहीं है, उन्हें प्रोग्रामेटिक रूप से इंस्टॉल किए गए मॉड्यूल द्वारा बनाया जाता है और आपके द्वारा उन्हें अनइंस्टॉल करने के बाद हटा दिया जाएगा ।


5
यदि कोई व्यक्ति अभी भी यहां है - मेरे पास एक सामग्री प्रकार है जो प्रोग्रामेटिक रूप से बनाया गया था, लेकिन साइट के कोड से इसके सभी निशान हटा दिए जाने के बाद भी मैं अभी भी अपनी साइट पर लटका हुआ हूं - इसके लिए अभी भी प्रविष्टियां हैं {menu_links } और {menu_router} और पसंद है, इसलिए यह अभी भी "सामग्री बनाएँ" मेनू और पसंद में दिखाई दे रहा है। कुछ स्पष्ट रूप से रास्ते में गड़बड़ हो गया है; क्या डेटाबेस को हैक करने के इस (उघ) से छुटकारा पाने का कोई अच्छा तरीका है, जिसे मैं वास्तव में नहीं करना चाहूंगा?
जिम मिलर

मेरी भी यही समस्या है। एक मल्टीसाइट पर, मैंने फीचर्स की मदद से एक कंटेंट टाइप तैयार किया, और दूसरे पर एक्सपोर्ट किया। अब मैंने संबंधित मॉड्यूल हटा दिए लेकिन सामग्री प्रकार अभी भी यहां है।

3
आपके पास शायद है, लेकिन सिर्फ चेकिंग - क्या आपने मॉड्यूल को अनइंस्टॉल करने के साथ-साथ उन्हें अक्षम भी किया है?
user56reinstatemonica8


मुझे नहीं पता कि यह उत्तर पहले सही था, लेकिन यह निश्चित रूप से ड्रुपल 7.23 के साथ अब भी सही नहीं है। सामग्री प्रकार हटाए जा सकते हैं, भले ही वे कैसे बनाए गए हों।
कारी गृहिणी

30

यूआरएल पर जाकर उन्हें हटाएं /admin/structure/types/manage/content-machine-name/delete

सामग्री-मशीन-नाम उस सामग्री प्रकार का मशीन नाम है जिसे आप हटाना चाहते हैं। इसके अलावा, सुनिश्चित करें कि आप मशीन के नाम पर डैश का उपयोग करते हैं, फिर अंडरस्कोर करें।


1
बहुत बढ़िया, यह बहुत अच्छी तरह से काम किया! मैंने एंटरप्राइज़ ब्लॉग और एंटरप्राइज़ FAQ को वापस स्थापित किया, लेकिन उनका उपयोग नहीं किया। सामग्री प्रकार स्क्रीन ने उन सामग्री प्रकारों को हटाने का विकल्प नहीं दिया, इसलिए आपका तरीका एक स्वागत योग्य राहत थी!
हॉकी 2112

1
मुझे इसके काम करने की उम्मीद नहीं थी, लेकिन इसने खूबसूरती से काम किया। फीचर मॉड्यूल का उपयोग करके जोड़े गए सामग्री प्रकारों को निकालने के लिए बढ़िया है।
Citricguy

हां! यह टिप कमाल की थी। अच्छा काम करता है।
बोरियाना डिटेचेवा

यह वास्तविक समाधान है :)
पेटग्रुस

यह काम करता है, हालांकि, अगर "हटाएं" लिंक स्वाभाविक रूप से दिखाई नहीं देता है, तो इसका मतलब है कि इसे हटाना सुरक्षित नहीं हो सकता है। एक बार इसका उपयोग करने के बाद कोई सामग्री प्रकार नहीं होते हैं, कोई निर्भरता, कोई कैश्ड सामग्री और चर और सुविधाएँ जो इसका उपयोग कर रहे हैं, लिंक दिखाई देगा। इसलिए, मैं सावधानी के साथ इसका उपयोग करने की सलाह देता हूं।
क्रिस्टिया

2

जैसा कि hpn उल्लेख किया गया है आप केवल उन सामग्री प्रकारों को हटा सकते हैं जो मैन्युअल रूप से बनाए गए हैं।

लेकिन कभी-कभी चीजें आसानी से नहीं होती हैं। निम्न चरणों ने सामग्री प्रकारों को हटाने में मदद की है। इसे आज़माने से पहले आपको डेटाबेस का बैकअप लेना होगा।

[करने के लिए मैन्युअल रूप से बनाया गया था कि किसी सामग्री प्रकार को नष्ट 1 # 16 Nedjo drupal.org में पता चलता है:

  • सुविधा को अक्षम करें। मैंने कभी-कभी इसके साथ समस्याओं में भाग लिया है - एक सुविधा अक्षम नहीं होगी। इस स्थिति में, फीचर मॉड्यूल कोड को हटा दें।
  • डिलीट की जाने वाली सामग्री के प्रकार का मशीन नाम निर्धारित करें, जैसे, 'mytype'।
  • डेटाबेस में, डिफ़ॉल्ट पर नोड_टाइप तालिका मानों को वापस कर दें जैसे कि सामग्री प्रकार को UI के माध्यम से मैन्युअल रूप से बनाया गया था:

mysql> UPDATE node_type SET module = 'node', custom = 1, modified = 1, locked = 0 WHERE type = 'mytype';

  • सामग्री प्रकार परिवर्तन उपलब्ध है यह सुनिश्चित करने के लिए स्पष्ट कैश।
  • UI पर व्यवस्थापक / संरचना / प्रकारों के माध्यम से, सामग्री प्रकार हटाएं।

उपरोक्त कदम वह है जो इससे पहले मेरी मदद कर चुका है जब मैंने उन समस्याओं को पाया है।


1

सामग्री प्रकार प्रदान करने वाले मॉड्यूल को अक्षम करना पहला कदम होना चाहिए। यदि सामग्री प्रकार एक सुविधा द्वारा प्रदान किया गया था, तो आपको अभी भी सामग्री प्रकार को हटाने की आवश्यकता होगी।

एक अच्छी तरह से बनाए गए फ़ीचर के लिए, एक सामग्री प्रकार को हटाने की सुविधा फ़ीचर को अक्षम करने के बाद आएगी। यह एक फीचर के तहत किसी कंटेंट टाइप को हटाने से ज्यादा पसंद किया जाता है, क्योंकि उस फीचर में करंट फंक्शनलिटी या फ्यूचर अपडेट के लिए कंटेंट टाइप की जरूरत पड़ सकती है।

ध्यान दें कि जब आप फ़ीचर इंटरफ़ेस है (बल्कि मूर्खतापूर्ण) यह दावा करते हुए कि आप टकराव के कारण किसी मॉड्यूल को अक्षम नहीं कर सकते, तब भी आप फ़ीचर मॉड्यूल (व्यवस्थापक / मॉड्यूल) को अक्षम कर सकते हैं।

और अगर आप इंटरफ़ेस के माध्यम से कुछ भी नहीं करना चाहते हैं, और बस कोड करना चाहते हैं, तो यहां एक अपडेट हुक का एक उदाहरण है जो कॉमन्स विकी और पोस्ट फीचर्स को अक्षम कर देगा और फिर उनके द्वारा प्रदान की जाने वाली सामग्री प्रकारों को हटा देगा।

<?php
/**
 * Remove unused features and content types.
 */
function example_update_7001() {
  // Delete one (spam) piece of wiki content.
  node_delete(2731);
  // Disable Feature modules.
  module_disable(array('commons_wikis_pages', 'commons_wikis', 'commons_posts'));
  // Delete content types.
  node_type_delete('wiki');
  node_type_delete('post');
}
?>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.