Пример #1
0
 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;
 }
Пример #2
0
 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>');
     }
 }
Пример #3
0
 public function render(Curry_Backend $backend, array $params)
 {
     $backend->addMainContent($this->getHtml($params));
 }
Пример #4
0
 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);
 }