function loadImgDocTags(&$lNumTags, &$tags, $bHideRetired = true)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $tags = array();
     if ($bHideRetired) {
         $sqlHide = ' AND NOT dit_bRetired ';
     } else {
         $sqlHide = '';
     }
     $sqlStr = "SELECT\n               dit_lKeyID, dit_enumContext, dit_strDDLEntry,\n               dit_lSortIDX, dit_bRetired\n            FROM doc_img_tag_ddl\n            WHERE 1 {$this->sqlWhere} {$sqlHide}\n            ORDER BY dit_lSortIDX, dit_lKeyID;";
     $query = $this->db->query($sqlStr);
     $lNumTags = $query->num_rows();
     if ($lNumTags == 0) {
         $tags[0] = new stdClass();
         $tag =& $tags[0];
         $tag->lTagID = $tag->enumContext = $tag->strDDLEntry = $tag->lSortIDX = $tag->strIDType = $tag->enumEntryType = $tag->enumParentContext = $tag->bRetired = null;
     } else {
         $idx = 0;
         foreach ($query->result() as $row) {
             $tags[$idx] = new stdClass();
             $tag =& $tags[$idx];
             $tag->lTagID = (int) $row->dit_lKeyID;
             $tag->enumContext = $row->dit_enumContext;
             $tag->strDDLEntry = $row->dit_strDDLEntry;
             $tag->lSortIDX = (int) $row->dit_lSortIDX;
             // contextual info
             $tag->strIDType = imgDocTags\strXlateImgDocType($tag->enumContext, $tag->bImage);
             $tag->enumEntryType = $tag->bImage ? CENUM_IMGDOC_ENTRY_IMAGE : CENUM_IMGDOC_ENTRY_PDF;
             $tag->enumParentContext = imgDocTags\xlateContextViaTagType($tag->enumContext);
             $tag->bRetired = (bool) $row->dit_bRetired;
             ++$idx;
         }
     }
 }
 function addEdit($lDIT_ID, $enumContext = null)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     if (!bTestForURLHack('adminOnly')) {
         return;
     }
     $displayData = array();
     $displayData['lDIT_ID'] = $lDIT_ID = (int) $lDIT_ID;
     $bNew = $lDIT_ID <= 0;
     //---------------------------------
     // models and helpers
     //---------------------------------
     $this->load->helper('img_docs/img_doc_tags');
     $this->load->helper('img_docs/link_img_docs');
     $this->load->model('img_docs/mimg_doc_tags', 'cidTags');
     $params = array('enumStyle' => 'enpRpt');
     $this->load->library('generic_rpt', $params);
     $this->cidTags->loadSingleTag($lDIT_ID, $lNumTags, $tagInfo);
     $displayData['tag'] = $tag =& $tagInfo[0];
     if (!$bNew) {
         $enumContext = $tag->enumContext;
     }
     $displayData['enumContext'] = $enumContext;
     $displayData['strIDType'] = $strIDType = imgDocTags\strXlateImgDocType($enumContext, $bImage);
     $displayData['strContext'] = $strContext = imgDocTags\strXlateImgDocContext($enumContext);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtDDLEntry', 'Tag Entry', 'trim|required|callback_ufTagAddEditUnique[' . $lDIT_ID . ',' . $enumContext . ',' . $strContext . ']');
     if ($this->form_validation->run() == FALSE) {
         $this->load->library('generic_form');
         if (validation_errors() == '') {
             $displayData['strDDLEntry'] = htmlspecialchars($tag->strDDLEntry);
         } else {
             setOnFormError($displayData);
             $displayData['strDDLEntry'] = set_value('txtDDLEntry');
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/alists/showLists', 'Lists', 'class="breadcrumb"') . ' | ' . anchor('admin/admin_imgdoc_tags/viewTags/' . $enumContext, 'Tags for ' . $strContext, 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add new ' : 'Update ') . 'list entry';
         $displayData['title'] = CS_PROGNAME . ' | Personalization';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['bNew'] = $bNew;
         $displayData['mainTemplate'] = 'personalization/img_doc_tag_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $strDDLEntry = trim($_POST['txtDDLEntry']);
         if ($bNew) {
             $lNewSortIDX = $this->cidTags->lMaxSortIDX($enumContext) + 1;
             $lDIT_ID = $this->cidTags->addTagEntry($strDDLEntry, $enumContext, $lNewSortIDX);
             $this->session->set_flashdata('msg', 'The tag entry for <b>"' . $strContext . '"</b> was added');
         } else {
             $this->cidTags->updateTagEntry($strDDLEntry, $lDIT_ID);
             $this->session->set_flashdata('msg', 'The tag for <b>"' . $strContext . '"</b> was updated');
         }
         redirect('admin/admin_imgdoc_tags/viewTags/' . $enumContext);
     }
 }