/** * Save page and term relations * @param AM_Model_Db_Page $oPage * @return AM_Model_Db_Term */ public function saveToPage(AM_Model_Db_Page $oPage) { $oTermPage = AM_Model_Db_Table_Abstract::factory('term_page')->findOneBy(array('page' => $oPage->id, 'term' => $this->id)); if (is_null($oTermPage)) { $oTermPage = new AM_Model_Db_TermPage(); $oTermPage->page = $oPage->id; $oTermPage->term = $this->id; $oTermPage->save(); if ($this->_isToc()) { $oPage->toc = $this->id; $oPage->save(); } } return $this; }
/** * Filter for toc field * @param integer $iValue * @return integer */ public function preSetToc($iValue) { $iValue = intval($iValue); $oTermTable = AM_Model_Db_Table_Abstract::factory('term'); /* @var $oTermTable AM_Model_Db_Table_Term */ $oTermTable->removeTocFromPage($this); //Checking that page has id if (0 !== $iValue && !empty($this->id)) { $oTermPage = new AM_Model_Db_TermPage(); $oTermPage->term = $iValue; $oTermPage->page = $this->id; $oTermPage->save(); } return $iValue; }