मैं अपने घटक से #__content पर एक लेख कैसे जोड़ूं?


11

मेरे घटक को गैर-पारंपरिक तरीके से फ्रंट-एंड से लेख जोड़ना होगा। मुझे लगता है कि मैं उन्हें MySQL के साथ सम्मिलित कर सकता हूं, लेकिन मैं ऐसा करने के लिए मुख्य कार्यों का उपयोग करना चाहता हूं (यदि यह संभव है)।

घटक \ com_content में कोड का अध्ययन करने के बाद, मुझे हर उस चीज़ से थोड़ा अभिभूत होना चाहिए जो होने की आवश्यकता है, और उम्मीद कर रहा था कि मैं बस इसे ओवरकंप्लीकेट कर रहा हूं।

जूमला में इसके उदाहरण हैं, या इसे पूरा करने के लिए उठाए जाने वाले कदमों का एक सम्मेलन?

जवाबों:


6

मॉडल फ़ाइल खोलें और मॉडल वर्ग के अंदर इन पंक्तियों को जोड़ें:

public function getContentTable($type = 'Content', $prefix = 'JTable', $config = array())
{
    return JTable::getInstance($type, $prefix, $config);
}

अब आप लेख जोड़ने के लिए मॉडल वर्ग के अंदर एक विधि को परिभाषित कर सकते हैं। कुछ इस तरह:

public function addArticle()
{
    $table = $this->getContentTable();
    $table->title = "Foo";
    $table->alias = "foo";
    // or
    // $table->alias = JApplication::stringURLSafe($table->title);
    $table->catid = 2;
    $table->state = 1;
    // and so on!
    // then save it
    $table->save();
}

1

मुझे भी लेखों को अपरंपरागत तरीके से लोड करना था। मैं इसके लिए जूमला कोड का बहुत अधिक लाभ उठाने में सक्षम था। आपको अपनी आवश्यकताओं के आधार पर इसे समायोजित करने की आवश्यकता है।

यह फ़ंक्शन एक आर्टेलिस को एक आईडी (संख्यात्मक) या एक उपनाम दिया जाएगा।

    function loadArticle($id){

            $app = JFactory::getApplication();
            $db = JFactory::getDBO();
            $query = $db->getQuery(true);
            $selects = array('a.introtext','a.publish_up','a.publish_down');
            $query->select($selects);
            $query->from('#__content as a');

            // select the alias or id
            $where = 'a.title = ' . $db->q(NNText::html_entity_decoder($id));
            $where .= ' OR a.alias = ' . $db->q(NNText::html_entity_decoder($id));
            if (is_numeric($id)) {
                    $where .= ' OR a.id = ' . $id;
            }

            $query->where('(' . $where . ')');

            // check the publish and unpublish dates
            $now = JFactory::getDate('now','UTC');
            $nullDate = $db->getNullDate();

            $query->where('a.state = 1');

            $query->where('( a.publish_up = ' . $db->q($nullDate) . ' OR a.publish_up <= ' . $db->q($now) . ' )');
            $query->where('( a.publish_down = ' . $db->q($nullDate) . ' OR a.publish_down >= ' . $db->q($now) . ' )');

            $db->setQuery($query);
            $article = $db->loadObject();
            return $article;
    }

यह एक लेख प्राप्त करने के लिए एक अच्छा साफ शुरुआत बिंदु की तरह दिखता है, लेकिन मुझे एक लेख को जोड़ने की जरूरत है ...
अल नाइट

क्षमा करें, मुझे गलत लगा
ContextSwitch
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.