前端的垃圾桶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'));
    }
 }

我现在正在从事工作经验,我问我的导师如何将文章状态更改为已删除。他给了我函数内的代码,并告诉我应该可以以某种方式对其进行修改,以便控制器可以在文章上执行保存功能。

我已经尝试并阅读了这些内容,但似乎并没有得到很好的记录。任何帮助将不胜感激,因为我不太确定如何进行。

谢谢。

Answers:


9

首先,您需要在请求中传递商品ID。然后您可以使用JTableclass更新状态:

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();
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.