public static function doUpdateIndex(Page $page) { // Re-index related pages $pages = $page->getDependantPages(); $pages[] = $page; foreach ($pages as $page) { Curry_Backend_Indexer::updateItem($page); } }
public function render(Curry_Backend $backend, array $params) { $modelClass = $this->modelForm->getModelClass(); $item = $this->getSelection($params); if (!isset($item)) { $item = new $modelClass(); $relatedItem = $this->getParentSelection($params); if ($relatedItem) { $relations = PropelQuery::from($modelClass)->getTableMap()->getRelations(); foreach ($relations as $relation) { if ($relation->getRightTable()->getPhpName() == get_class($relatedItem) && in_array($relation->getType(), array(RelationMap::MANY_TO_ONE))) { $item->{'set' . $relation->getName()}($relatedItem); } } } } $form = clone $this->modelForm; $form->setOptions(array('method' => 'post', 'action' => (string) url('', $params))); $buttons = array('save'); $form->addElement('submit', 'save', array('label' => 'Save')); if (!$item->isNew() && $this->parentView instanceof Curry_ModelView_List && $this->parentView->hasAction('delete')) { $form->addElement('submit', 'delete', array('label' => 'Delete', 'class' => 'btn btn-danger', 'onclick' => "return confirm('Do you really want to delete this item? This cannot be undone.');")); $buttons[] = 'delete'; } $form->addDisplayGroup($buttons, 'save_group', array('class' => 'horizontal-group')); $form->fillForm($item); if (isPost() && $form->isValid($_POST)) { if ($form->delete && $form->delete->isChecked()) { $backend->createModelUpdateEvent($modelClass, $item->getPrimaryKey(), 'delete'); $item->delete(); if ($item instanceof Curry_ISearchable) { Curry_Backend_Indexer::removeItem($item); } $backend->addMainContent('<p>The item has been deleted.</p>'); return; } $form->fillModel($item); $this->triggerCallback($this->preSave, $item, $form); $item->save(); $this->triggerCallback($this->postSave, $item, $form); $form->fillForm($item); $backend->createModelUpdateEvent($modelClass, $item->getPrimaryKey(), 'update'); if ($item instanceof Curry_ISearchable) { Curry_Backend_Indexer::updateItem($item); } if (isAjax()) { return ''; } } $this->triggerCallback($this->preRender, $item, $form); $backend->addMainContent($form); }
public function show(Request $request) { $modelClass = $this->modelForm->getModelClass(); $item = $this->getSelection(); if (!isset($item) || !$item instanceof $modelClass) { $item = new $modelClass(); $relatedItem = $this->parent instanceof AbstractBackend ? $this->parent->getSelection() : null; if ($relatedItem) { $relations = \PropelQuery::from($modelClass)->getTableMap()->getRelations(); foreach ($relations as $relation) { if ($relation->getRightTable()->getPhpName() == get_class($relatedItem) && in_array($relation->getType(), array(\RelationMap::MANY_TO_ONE))) { $item->{'set' . $relation->getName()}($relatedItem); } } } } $form = clone $this->modelForm; $buttons = array('save'); $form->addField('save', array('type' => 'submit', 'label' => 'Save', 'class' => 'btn btn-primary')); if (!$item->isNew() && $this->parent instanceof ListView && $this->parent->hasAction('delete')) { $form->addField('delete', array('type' => 'submit', 'label' => 'Delete', 'class' => 'btn btn-danger', 'onclick' => "return confirm('Do you really want to delete this item? This cannot be undone.');")); $buttons[] = 'delete'; } //$form->addDisplayGroup($buttons, 'save_group', array('class' => 'horizontal-group')); $form->fillForm($item); if ($request->isMethod('POST') && $form->isValid($request->request->all())) { if ($form->delete && $form->delete->isChecked()) { //$this->createModelUpdateEvent($modelClass, $item->getPrimaryKey(), 'delete'); $item->delete(); if ($item instanceof \Curry_ISearchable) { \Curry_Backend_Indexer::removeItem($item); } $this->addMainContent('<p>The item has been deleted.</p>'); return parent::render(); } $form->fillModel($item); $this->triggerCallback($this->preSave, $item, $form); $item->save(); $this->triggerCallback($this->postSave, $item, $form); $form->fillForm($item); //$this->createModelUpdateEvent($modelClass, $item->getPrimaryKey(), 'update'); if ($item instanceof \Curry_ISearchable) { \Curry_Backend_Indexer::updateItem($item); } if ($request->isXmlHttpRequest()) { return \Symfony\Component\HttpFoundation\Response::create(''); } } $this->triggerCallback($this->preRender, $item, $form); $this->addMainContent($form); return parent::render(); }