Question

I would like to insert an article inside my component, does someone have an example on how to do that?

Article would be selected from backend.

Was it helpful?

Solution

In the Back-End you will selected the article, the ID of article will be stored in a database in component params (config.xml) or custom component params table.

In you custom component

  1. Store Article Id to variable
  2. Query the database #__content table with Article ID
  3. Display the article

For example

 //
 // 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;
    }

To make pop-up select in the back end, edit your component's config.xml

add addpath to the <params> elements

<!-- 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="" />

You will also need to add config button to the toolbar on the component's default view

// Add this code in the display() method of the view
// @todo change com_mycomponent to your component's name
JToolBarHelper::preferences('com_mycomponent')   
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top