public function processLists($f_callback = null) { require_once __CA_MODELS_DIR__ . "/ca_lists.php"; require_once __CA_MODELS_DIR__ . "/ca_list_items.php"; if ($this->ops_base_name) { // "merge" profile and its base $va_lists = array(); foreach ($this->opo_base->lists->children() as $vo_list) { $va_lists[self::getAttribute($vo_list, "code")] = $vo_list; } foreach ($this->opo_profile->lists->children() as $vo_list) { $va_lists[self::getAttribute($vo_list, "code")] = $vo_list; } } else { $va_lists = $this->opo_profile->lists->children(); } $vn_i = 0; $vn_num_lists = sizeof($va_lists); foreach ($va_lists as $vo_list) { $vs_list_code = self::getAttribute($vo_list, "code"); $t_list = $this->opb_updating ? ca_lists::find(array('list_code' => $vs_list_code), array('returnAs' => 'firstModelInstance')) : $this->opb_updating; // if it doesn't exist create a new one $t_list = $t_list ? $t_list : new ca_lists(); $t_list->setMode(ACCESS_WRITE); $vb_hierarchical = self::getAttribute($vo_list, "hierarchical"); $vb_system = self::getAttribute($vo_list, "system"); $vb_voc = self::getAttribute($vo_list, "vocabulary"); $vn_def_sort = self::getAttribute($vo_list, "defaultSort"); if (is_callable($f_callback)) { $vn_i++; $f_callback($vs_list_code, $vn_i, $vn_num_lists); } $t_list->set("list_code", $vs_list_code); $t_list->set("is_system_list", intval($vb_system)); $t_list->set("is_hierarchical", $vb_hierarchical); $t_list->set("use_as_vocabulary", $vb_voc); if ($vn_def_sort) { $t_list->set("default_sort", (int) $vn_def_sort); } if ($t_list->getPrimaryKey()) { $t_list->update(); } else { $t_list->insert(); } if ($t_list->numErrors()) { $this->addError("There was an error while inserting list {$vs_list_code}: " . join(" ", $t_list->getErrors())); } else { self::addLabelsFromXMLElement($t_list, $vo_list->labels, $this->opa_locales); if ($t_list->numErrors()) { $this->addError("There was an error while inserting list label for {$vs_list_code}: " . join(" ", $t_list->getErrors())); } if ($vo_list->items) { if (!$this->processListItems($t_list, $vo_list->items, null)) { return false; } } } } return true; }
<?php $vs_list_code = $this->getVar("list_code"); $va_list_items = array(); if ($vs_list_code) { $t_list = ca_lists::find(array('list_code' => $vs_list_code), array('returnAs' => 'firstmodelinstance')); if ($t_list) { $va_list_items = $t_list->getItemsForList($vs_list_code, array('directChildrenOnly' => true, 'extractValuesByUserLocale' => true, 'enabledOnly' => true, 'sort' => __CA_LISTS_SORT_BY_RANK__)); $vn_selected_top_level_item_id = array_shift(array_keys($va_list_items)); } } ?> <div class="container subhomebody"> <div class="row"> <div class="col-sm-3 mainmenu"> <!--main menu will go here--> <ol id="tocMenu"> <?php foreach ($va_list_items as $vn_i => $va_item) { if ($vn_i == $vn_selected_top_level_item_id) { $vs_selected = "class='selected'"; } else { $vs_selected = ''; } print "<li {$vs_selected} id='item_{$va_item['item_id']}'><a href='#' onclick='return caFrontLoadSubList({$vn_i});'>" . $va_item['name_plural'] . "</a></li>\n"; } $va_selected_item = $va_list_items[$vn_selected_top_level_item_id]; ?> </ol> </div><!-- end col --> <div class="col-sm-9"> <h1 id="tocTopTitle"><?php