/** * Create new element * * @param AM_Model_Db_Page $oPage * @param AM_Model_Db_Field $oField * @return AM_Model_Db_Element */ public static function getElementForPageAndField(AM_Model_Db_Page $oPage, AM_Model_Db_Field $oField) { $iMaxWeight = AM_Model_Db_Table_Abstract::factory('element')->getMaxElementWeight($oPage, $oField); $oElement = new AM_Model_Db_Element(); $oElement->setPage($oPage); $oElement->weight = is_null($iMaxWeight) ? 0 : ++$iMaxWeight; $oElement->page = $oPage->id; $oElement->field = $oField->id; $oElement->save(); return $oElement; }
/** * Create new element or return exists * * @param AM_Model_Db_Page $oPage * @param AM_Model_Db_Field $oField * @return AM_Model_Db_Element */ public static function getElementForPageAndField(AM_Model_Db_Page $oPage, AM_Model_Db_Field $oField) { $oElement = AM_Model_Db_Table_Abstract::factory('element')->findOneBy(array('page' => $oPage->id, 'field' => $oField->id)); if (!is_null($oElement)) { return $oElement; } $oElement = new AM_Model_Db_Element(); $oElement->setPage($oPage); $oElement->page = $oPage->id; $oElement->field = $oField->id; $oElement->save(); return $oElement; }