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; }
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'])))))); }