it-swarm-vi.com

Thùng rác Bài viết Joomla ở frontend

Tôi đang phát triển một plugin nhỏ cho Joomla 3.x có thêm nút "Thùng rác" khi bạn ở trong Joomlas Frontend. Xem ảnh chụp màn hình bên dưới.

http://imgur.com/NYLGRdY

Bây giờ tôi có cuộc gọi này AJAX xảy ra khi bạn nhấp vào mục danh sách.

Đây là mã:

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

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

Và người trợ giúp PHP.

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

Bây giờ tôi đang làm kinh nghiệm làm việc và tôi đã hỏi người cố vấn của mình rằng tôi nên thay đổi trạng thái bài viết thành thùng rác như thế nào. Và anh ấy đưa cho tôi mã bên trong hàm và nói với tôi rằng tôi sẽ có thể sửa đổi nó theo một cách nào đó, để bộ điều khiển sẽ thực thi chức năng lưu trên bài viết.

Tôi đã thử và đọc những thứ này nhưng dường như nó không phải là tài liệu tốt. Bất kỳ trợ giúp sẽ được đánh giá rất cao vì tôi không chắc chắn tôi nên tiến hành như thế nào.

Cảm ơn.

9
Patric Gustafsson

Trước hết bạn cần vượt qua ID bài viết với yêu cầu của bạn. Sau đó, bạn có thể sử dụng lớp JTable để cập nhật trạng thái:

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();
}
9
Dmitry Rekun