Sampah Artikel Joomla di frontend

9

Saya sedang mengembangkan plugin kecil untuk Joomla 3.x yang menambahkan tombol "Trash article" ketika Anda berada di Joomlas Frontend. Lihat tangkapan layar di bawah ini.

http://imgur.com/NYLGRdY

Sekarang saya memiliki panggilan AJAX ini yang terjadi ketika Anda mengklik item daftar.

Berikut kodenya:

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

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

Dan file bantuan PHP.

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

Saya sekarang sedang melakukan pengalaman kerja dan saya bertanya kepada mentor saya bagaimana saya harus mengubah status artikel menjadi sampah. Dan dia memberi saya kode di dalam fungsi dan mengatakan kepada saya bahwa saya harus dapat memodifikasinya dengan cara tertentu, sehingga controller akan menjalankan fungsi save pada artikel.

Saya sudah mencoba dan membaca tentang hal-hal ini tetapi sepertinya tidak terlalu terdokumentasi dengan baik. Bantuan apa pun akan sangat dihargai karena saya tidak yakin bagaimana saya harus melanjutkan.

Terima kasih.

Patric Gustafsson
sumber

Jawaban:

9

Pertama-tama Anda harus memberikan ID artikel dengan permintaan Anda. Kemudian Anda bisa menggunakan JTablekelas untuk memperbarui status:

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
sumber