フロントエンドのゴミ箱Joomla記事


9

私は、Joomlasフロントエンドにいるときに「ゴミ箱の記事」ボタンを追加するJoomla 3.x用の小さなプラグインを開発しています。下のスクリーンショットを参照してください。

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

まず、リクエストで記事IDを渡す必要があります。次に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();
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.