public function Edit($pa_values = null, $pa_options = null) { AssetLoadManager::register('bundleableEditor'); $t_element = $this->getElementObject(); $t_restriction = new ca_metadata_type_restrictions(null, true); $this->view->setVar('available_settings', $t_element->getAvailableSettings()); $this->view->setVar('type_list', $t_restriction->getTypeListsForTables()); $va_initial_values = array(); if ($t_element->getPrimaryKey()) { $va_sub_elements = array(); /* BaseModel::getHierarchyChildren orders by PK, but we need to order by rank */ $vo_db = new Db(); $qr_result = $vo_db->query("\n\t\t\t\tSELECT cmel.*, cme.* \n\t\t\t\tFROM ca_metadata_elements cme\n\t\t\t\tLEFT JOIN ca_metadata_element_labels AS cmel ON cme.element_id = cmel.element_id\n\t\t\t\tWHERE\n\t\t\t\t\tcme.parent_id = ?\n\t\t\t\tORDER BY\n\t\t\t\t\tcme.rank\n\t\t\t", (int) $t_element->get('element_id')); while ($qr_result->nextRow()) { $va_row = $qr_result->getRow(); if (!$va_row['name']) { $va_row['name'] = $va_row['element_code']; } $va_sub_elements[$qr_result->get('element_id')][$qr_result->get('locale_id')] = $va_row; } $va_sub_elements = caExtractValuesByUserLocale($va_sub_elements); $this->view->setVar('sub_elements', $va_sub_elements); // get restrictions $this->view->setVar('type_restrictions', $va_type_restrictions = $t_element->getTypeRestrictions()); $va_restriction_settings = $t_restriction->getAvailableSettings(); if (is_array($va_type_restrictions)) { foreach ($va_type_restrictions as $va_restriction) { if ($t_restriction->load($va_restriction['restriction_id'])) { foreach ($va_restriction_settings as $vs_setting => $va_setting_info) { if (!is_array($va_settings = $t_restriction->getSettings())) { $va_settings = array(); } $va_initial_values[$t_restriction->getPrimaryKey()] = array_merge($t_restriction->getFieldValuesArray(), $va_settings); } } } } } $this->view->setVar('initial_restriction_values', $va_initial_values); if ($vn_parent_id = $this->request->getParameter('parent_id', pInteger)) { $this->view->setVar('parent_id', $vn_parent_id); } $this->view->setVar('t_restriction', $t_restriction); $this->render('elements_edit_html.php'); }