/** * * Save the Cms page data */ public static function saveAll($id, $params, $locale = 1) { $i = 0; // Set the new values if (is_numeric($id)) { $cmspages = Doctrine::getTable('Cmspages')->find($id); } else { $cmspages = new CmsPages(); $cmspages->publishedat = date('Y-m-d H:i:s'); } $cmspages->title = $params['title']; $cmspages->body = $params['body']; $cmspages->keywords = $params['keywords']; $cmspages->blocks = $params['blocks']; $cmspages->layout = $params['layout']; $cmspages->xmllayout = $params['xmllayout']; $cmspages->var = !empty($params['var']) ? Shineisp_Commons_UrlRewrites::format($params['var']) : Shineisp_Commons_UrlRewrites::format($params['title']); $cmspages->pagelayout = $params['pagelayout']; $cmspages->parent_id = $params['parent_id']; $cmspages->showinmenu = $params['showinmenu'] ? true : false; $cmspages->showonrss = $params['showonrss'] ? true : false; $cmspages->blog = $params['blog'] ? true : false; $cmspages->showonrss = $params['showonrss'] ? true : false; $cmspages->active = $params['active'] ? true : false; if ($cmspages->trySave()) { if (is_numeric($cmspages['page_id'])) { // Clear old reference records by page_id CmsPagesData::deleteItems($cmspages['page_id']); // Save the page translation references $PageData = new Doctrine_Collection('CmsPagesData'); foreach ($params['language_id'] as $idlang) { $PageData[$i]->page_id = $cmspages['page_id']; $PageData[$i]->language_id = $idlang; $i++; } $PageData->save(); } } $id = is_numeric($id) ? $id : $cmspages->getIncremented(); return $id; }