Exemplo n.º 1
0
 public function link(array $data, $type)
 {
     if (!DataCenterPage::userCan('change')) {
         return false;
     }
     $link = DataCenterDBModelLink::newFromValues($data['row']);
     if ($link->get('quantity') == 0) {
         $link->delete();
     } else {
         $link->save();
     }
     return true;
 }
Exemplo n.º 2
0
 public function configure($path)
 {
     // Checks if...
     if (is_array($path['parameter']) && count($path['parameter']) >= 2 && isset(self::$options[$path['parameter'][0]]['gallery'])) {
         $modelLink = DataCenterDBModelLink::newFromValues(array('parent_type' => $path['type'], 'parent_id' => $path['id'], 'child_type' => $path['parameter'][0], 'child_id' => $path['parameter'][1]));
         $model = DataCenterDB::getModel($path['parameter'][0], $path['parameter'][1]);
         $modelLink->set('name', $model->get('kind'));
         $modelLink->set('quantity', 1);
         $formOptions = array('label' => 'attach', 'success' => array('page' => 'models', 'type' => $path['type'], 'action' => 'view', 'id' => $path['id']));
         $headingOptions = array('message' => 'attaching-type', 'subject' => DataCenterUI::message('type', $path['parameter'][0]));
     } else {
         $modelLink = DataCenterDB::getModelLink($path['parameter'][0]);
         $model = $modelLink->getModel();
         $formOptions = array('label' => 'save', 'hidden' => array('id'), 'success' => array('page' => 'models', 'type' => $path['type'], 'action' => 'view', 'id' => $path['id']));
         $headingOptions = array('message' => 'configuring-type', 'type' => 'attachment');
     }
     return DataCenterUI::renderLayout('columns', array(DataCenterUI::renderLayout('rows', array(DataCenterUI::renderWidget('heading', $headingOptions), DataCenterUI::renderWidget('form', array_merge_recursive($formOptions, array('do' => 'link', 'action' => array('page' => 'models'), 'failure' => $path, 'row' => $modelLink, 'hidden' => array('parent_type', 'parent_id', 'child_type', 'child_id'), 'fields' => array('name' => array('type' => 'string'), 'quantity' => array('type' => 'number', 'min' => 0, 'max' => 1000))))))), DataCenterUI::renderLayout('rows', array(DataCenterUI::renderWidget('heading', array('message' => 'model-type', 'type' => $path['type'])), DataCenterUI::renderWidget('details', array_merge(array('row' => $model), self::$options[$model->getType()]['details']))))));
 }