Пример #1
0
 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');
 }