Стаття "Trash Joomla" на фронті


9

Я розробляю невеликий плагін для Joomla 3.x, який додає кнопку "Сміття статті", коли ви знаходитесь у Joomlas Frontend. Дивіться скріншот нижче.

http://imgur.com/NYLGRdY

Тепер у мене є цей дзвінок AJAX, який відбувається при натисканні на пункт списку.

Ось код:

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

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

І файл помічника PHP.

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

Я зараз займаюся досвідом роботи, і я запитав мого наставника, як я повинен змінити стан статті до кошика. І він дав мені код всередині функції і сказав мені, що я повинен мати змогу змінити його якимось чином, щоб контролер виконав функцію збереження на статті.

Я спробував і прочитав цю інформацію, але, здається, це не так добре зафіксовано. Будь-яка допомога буде дуже вдячна, оскільки я не зовсім впевнений, як мені діяти.

Дякую.

Відповіді:


9

Перш за все, вам потрібно передати ідентифікатор статті зі своїм запитом. Тоді ви можете використовувати JTableклас для оновлення стану:

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();
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.