private static function renderModel($parameters, $structure, $level = 0) { $xmlOutput = ''; foreach ($structure as $model) { $modelLink = DataCenterDB::getModelLink($model->get('link')); if (!DataCenterPage::userCan('change')) { $rowAttributes = array(); } elseif ($level == 0 && count($parameters['link']) > 0) { $rowAttributes = array_merge(array('class' => 'link'), DataCenterXml::buildLink($parameters['link'], $model)); } else { $rowAttributes = array('class' => 'mute'); } $xmlOutput .= DataCenterXml::row($rowAttributes, DataCenterXml::cell(DataCenterXml::div(array('style' => 'padding-left:' . $level * 15 . 'px'), $modelLink->get('name'))) . DataCenterXml::cell(array('align' => 'right'), $modelLink->get('quantity')) . DataCenterXml::cell($model->get('name')) . DataCenterXml::cell(DataCenterUI::message('type', $model->getType()))); $xmlOutput .= self::renderModel($parameters, $model->getStructure(), $level + 1); } return $xmlOutput; }
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'])))))); }