public static function addLanguageForm(Curry_Backend $backend, $user = null) { if (!$user) { $user = User::getUser(); } $languages = LanguageQuery::create()->useUserLanguageQuery()->filterByUser($user)->endUse()->find()->toKeyValue('Langcode', 'Name'); if (!count($languages)) { throw new Exception('You do not have access to any languages.'); } $langcode = null; if (isset($_GET['langcode'])) { $langcode = $_GET['langcode']; } if (!array_key_exists($langcode, $languages)) { $langcode = null; } if ($langcode === null) { $langcode = array_keys($languages); $langcode = array_shift($langcode); } if (empty($_GET['action'])) { header('cache-control: no-store'); // dont store state as this may cause problem with the form below $backend->addMainContent(self::getLanguageForm($languages, $langcode)); } return $langcode; }
public function render(Curry_Backend $backend, array $params) { $item = $this->getSelection($params); if (!isset($item)) { throw new Exception('No item to delete'); } $name = method_exists($item, '__toString') ? '`' . htmlspecialchars((string) $item) . '`' : 'this item'; if (isPost() && $_POST['do_delete']) { $pk = $item->getPrimaryKey(); $item->delete(); // Trigger update event $backend->createModelUpdateEvent($this->modelClass, $pk, 'update'); if ($item instanceof Curry_ISearchable) { Curry_Backend_Indexer::removeItem($item); } $backend->addMainContent('<p>' . $name . ' has been deleted.</p>'); } else { $backend->addMainContent('<form method="post" action="' . url('', $params) . '">' . '<input type="hidden" name="do_delete" value="1" />' . '<p>Do you really want to delete ' . $name . '?</p>' . '<button type="submit" class="btn btn-danger">Delete</button>' . '</form>'); } }
public function render(Curry_Backend $backend, array $params) { $backend->addMainContent($this->getHtml($params)); }
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); }