Kosz Joomla Artykuł w interfejsie


9

Tworzę małą wtyczkę do Joomla 3.x, która dodaje przycisk „Artykuły o koszu”, gdy jesteś w Joomlas Frontend. Zobacz zrzut ekranu poniżej.

http://imgur.com/NYLGRdY

Teraz mam to wywołanie AJAX, które dzieje się po kliknięciu elementu listy.

Oto kod:

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

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

I plik PHP pomocnika.

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

Mam teraz doświadczenie zawodowe i zapytałem mojego mentora, jak powinienem zmienić stan artykułu na śmieci. Dał mi kod wewnątrz funkcji i powiedział, że powinienem być w stanie go w jakiś sposób zmodyfikować, aby sterownik wykonał funkcję zapisywania w artykule.

Próbowałem i czytałem o tych rzeczach, ale nie wydaje się, żeby były one tak dobrze udokumentowane. Każda pomoc byłaby bardzo mile widziana, ponieważ nie jestem do końca pewien, jak powinienem postępować.

Dzięki.

Odpowiedzi:


9

Przede wszystkim musisz podać identyfikator artykułu wraz z prośbą. Następnie możesz użyć JTableklasy, aby zaktualizować stan:

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();
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.