Trash Joomla Artículo en frontend

9

Estoy desarrollando un pequeño complemento para Joomla 3.x que agrega un botón "Artículo basura" cuando estás en Joomlas Frontend. Ver captura de pantalla a continuación.

http://imgur.com/NYLGRdY

Ahora tengo esta llamada AJAX que ocurre cuando haces clic en el elemento de la lista.

Aquí está el código:

request = {
          "option" : "com_ajax",
          "plugin" : "deletearticle"
          "data"   : "test",
          "format" : "raw"  
};

$.ajax({
       type : "POST",
       data : request,
       success: function (response) {
           $("p:first").html("Data: " + response)
      } 
});

Y el archivo PHP auxiliar.

<?php 
 jimport('joomla.plugin.plugin');
 class plgAjaxDeletearticle extends JPlugin
 {
    function onAjaxDeletearticle()
    {
        $controller = JControllerLegacy::getInstance('Content');
        $controller->execute(JFactory::getApplication()->input->get('task'));
    }
 }

Ahora mismo estoy haciendo experiencia laboral y le pregunté a mi mentor cómo debería cambiar el estado del artículo a basura. Y él me dio el código dentro de la función y me dijo que debería poder modificarlo de alguna manera, para que el controlador ejecute una función de guardar en el artículo.

He intentado leer sobre estas cosas, pero no parece estar tan bien documentado. Cualquier ayuda sería muy apreciada ya que no estoy muy seguro de cómo proceder.

Gracias.

Patric Gustafsson
fuente

Respuestas:

9

En primer lugar, debe pasar la identificación del artículo con su solicitud. Luego puede usar la JTableclase para actualizar el estado:

public function onAjaxDeletearticle()
{
    // Get id from the request
    $id = JFactory::getApplication()->input->getInt('data');

    // Get the new instance of #__content table
    $table = JTable::getInstance('content');

    // Load the article data by id
    $table->load($id);

    // Set the state to 'trashed'
    $table->state = -2;

    // Store the article
    $table->store();
}
Dmitry Rekun
fuente