프론트 엔드의 휴지통 Joomla 기사


9

Joomlas Frontend에있을 때 "휴지통 기사"버튼을 추가하는 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를 전달해야합니다. 그런 다음 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();
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.