is_published Ajax

Web-разработка

Автор: Александр Степанов

1 нояб. 2011 г., 09:09:34  722


Полезный хак, можно использовать не только для изменения статуса публиции статьи, я например заюзал ее для активации пользователей, если кому не пришло письмо для активации акка.

Для работы с AJAX используем jQuery. Для этого добавляем в

/backend/config/view.yml следующее javascripts: [jq/jquery.pack.js] или любой имеющуюся у вас библиотеку jQuery.
Затем в /backend/templates/layout.php добавляем такой код

Добавляем новый метод executeSwitchStatus в модуль my_module 

public function executeSwitchStatus($request){ $myObject = xxxPeer::retrieveByPk($this->getRequestParameter('id')); $currentStatus = $myObject->getIsPublished(); $newStatus = ($currentStatus == 1 ? 0 : 1); $myObject->setIsPublished($newStatus); $myObject->save(); $isAjax = $request->isXmlHttpRequest(); if ($isAjax){ return $this->renderText($newStatus); } else { //do something if not AJAX }//if }//change status

Выходит нечто такое =) 

Ajax+symfony