Joomla 将文章插入组件

Posted

技术标签:

【中文标题】Joomla 将文章插入组件【英文标题】:Joomla insert article into component 【发布时间】:2011-04-20 18:24:07 【问题描述】:

我想在我的组件中插入一篇文章,有人有如何做到这一点的示例吗?

文章将从后端选择。

【问题讨论】:

【参考方案1】:

在后端您将选择文章,文章的 ID 将存储在组件参数 (config.xml) 或自定义组件参数表中的数据库中。

在你的自定义组件中

    将文章 ID 存储到变量中 用文章ID查询数据库#__content表 显示文章

例如

 //
 // Function for your model
 //
/**
 *
 * @return object 
 * 
 * Object will have following structure 
 * 
 * Field            Type    
 * ----------------------------------        
 * id               "int(11) unsigned"
 * title            varchar(255)
 * alias            varchar(255)
 * title_alias    varchar(255)
 * introtext        mediumtext
 * fulltext         mediumtext
 * state            tinyint(3)
 * sectionid        "int(11) unsigned"
 * mask             "int(11) unsigned"
 * catid            "int(11) unsigned"
 * created          datetime
 * created_by      "int(11) unsigned"
 * created_by_alias varchar(255)
 * modified         datetime
 * modified_by  "int(11) unsigned"
 * checked_out  "int(11) unsigned"
 * checked_out_time datetime
 * publish_up      datetime
 * publish_down  datetime
 * images           text
 * urls             text
 * attribs          text
 * version          "int(11) unsigned"
 * parentid         "int(11) unsigned"
 * ordering         int(11)
 * metakey          text
 * metadesc         text
 * access           "int(11) unsigned"
 * hits             "int(11) unsigned"
 * metadata         text
 */
 public function getMyArticle() 

        //  Get Component parameters (config.xml)
        $params = JComponentHelper::getParams('com_mycomponent');

        //  Get Specific parameter
        $myArticleId = (int) $params->get('articleId', 0);

        //  Make sure parameter is set and is greater than zero
        if ($myArticleId > 0) 

            //  Build Query
            $query = "SELECT * FROM #__content WHERE id = $myArticleId";

            //  Load query into an object
            $db = JFactory::getDBO();
            $db->setQuery($query);
            return $db->loadObject();
        

        //
        return null;
    

要在后端弹出选择,请编辑组件的config.xml

addpath 添加到<params> 元素

<!-- Add the path to content elements -->
<params addpath="/administrator/components/com_content/elements">
   <!-- Add Select Article param -->
   <param name="articleId" type="article" default="0" label="Select Article" description="" />

您还需要在组件默认视图的工具栏上添加config 按钮

// Add this code in the display() method of the view
// @todo change com_mycomponent to your component's name
JToolBarHelper::preferences('com_mycomponent')   

【讨论】:

谢谢! :) 它正在工作,但更进一步如何使弹出选择表单在后端选择文章? 这是一个很好的例子,但是我希望在相同的设置页面上不使用参数和首选项。只是带有按钮的简单表单 你可以做到。最好发布一个新问题,我会回答新问题。有问题就跑题了。

以上是关于Joomla 将文章插入组件的主要内容,如果未能解决你的问题,请参考以下文章

Joomla! 2.5 生成的URL中的组件菜单类型参数

joomla微信

如何使用自定义插件将值插入 Joomla 2.5 DB

Joomla - 在我的组件中显示一篇文章

在mysql表中插入html代码

Joomla 3.5.1 在选择单独的组件视图时询问文章