Pergunta

Gostaria de inserir um artigo dentro do meu componente, alguém tem um exemplo de como fazer isso?

O artigo seria selecionado no back -end.

Foi útil?

Solução

No back-end, você selecionou o artigo, o ID do artigo será armazenado em um banco de dados nos parâmetros do componente (config.xml) ou tabela de parâmetros de componentes personalizados.

Em seu componente personalizado

  1. ID do artigo da loja para variável
  2. Consulte o banco de dados #__content Tabela com ID do artigo
  3. Exibir o artigo

Por exemplo

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

Para fazer o pop-up selecionar no back-end, edite o seu componente config.xml

adicionar addpath para o <params> elementos

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

Você também precisará adicionar config botão para a barra de ferramentas na visualização padrão do componente

// Add this code in the display() method of the view
// @todo change com_mycomponent to your component's name
JToolBarHelper::preferences('com_mycomponent')   
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top