Exemple #1
0
$categoriesOverview->setColumnAlignByArray(array('left', 'left', 'left', 'left', 'right'));
$categoriesOverview->addRowHeadingByArray($columnHeading);
$sql = 'SELECT *
          FROM ' . TBL_CATEGORIES . '
         WHERE (  cat_org_id  = ' . $gCurrentOrganization->getValue('org_id') . '
               OR cat_org_id IS NULL )
           AND cat_type   = \'' . $getType . '\'
      ORDER BY cat_sequence ASC';
$categoryStatement = $gDb->query($sql);
$flagTbodyWritten = false;
$flagTbodyAllOrgasWritten = false;
$category = new TableCategory($gDb);
// Get data
while ($cat_row = $categoryStatement->fetch()) {
    $category->clear();
    $category->setArray($cat_row);
    if ($category->getValue('cat_system') == 1 && $getType === 'USF') {
        // da bei USF die Kategorie Stammdaten nicht verschoben werden darf, muss hier ein bischen herumgewurschtelt werden
        $categoriesOverview->addTableBody('id', 'cat_' . $category->getValue('cat_id'));
    } elseif ($category->getValue('cat_org_id') == 0 && $getType === 'USF') {
        // Kategorien über alle Organisationen kommen immer zuerst
        if (!$flagTbodyAllOrgasWritten) {
            $flagTbodyAllOrgasWritten = true;
            $categoriesOverview->addTableBody('id', 'cat_all_orgas');
        }
    } else {
        if (!$flagTbodyWritten) {
            $flagTbodyWritten = true;
            $categoriesOverview->addTableBody('id', 'cat_list');
        }
    }
    // falls eine Kategorie von allen Orgas auf eine Bestimmte umgesetzt wurde oder anders herum,
    // dann muss die Sequenz fuer den alle Kategorien dieses Typs neu gesetzt werden
    if (isset($_POST['cat_org_id']) && $_POST['cat_org_id'] != $cat_org_merker) {
        $sequenceCategory = new TableCategory($gDb);
        $sequence = 0;
        $sql = 'SELECT *
                  FROM ' . TBL_CATEGORIES . '
                 WHERE cat_type = "' . $getType . '"
                   AND (  cat_org_id  = ' . $gCurrentOrganization->getValue('org_id') . '
                       OR cat_org_id IS NULL )
              ORDER BY cat_org_id ASC, cat_sequence ASC';
        $categoriesStatement = $gDb->query($sql);
        while ($row = $categoriesStatement->fetch()) {
            ++$sequence;
            $sequenceCategory->clear();
            $sequenceCategory->setArray($row);
            $sequenceCategory->setValue('cat_sequence', $sequence);
            $sequenceCategory->save();
        }
    }
    $gNavigation->deleteLastUrl();
    unset($_SESSION['categories_request']);
    header('Location: ' . $gNavigation->getUrl());
    exit;
} elseif ($getMode === 2) {
    // delete category
    try {
        if ($category->delete()) {
            echo 'done';
        }
    } catch (AdmException $e) {
    $headline = $gL10n->get('SYS_CREATE_VAR', $headline);
}
$gNavigation->addUrl(CURRENT_URL, $headline);
// UserField-objekt anlegen
$category = new TableCategory($gDb);
if ($getCatId > 0) {
    $category->readDataById($getCatId);
    // Pruefung, ob die Kategorie zur aktuellen Organisation gehoert bzw. allen verfuegbar ist
    if ($category->getValue('cat_org_id') > 0 && $category->getValue('cat_org_id') != $gCurrentOrganization->getValue('org_id')) {
        $gMessage->show($gL10n->get('SYS_NO_RIGHTS'));
    }
}
if (isset($_SESSION['categories_request'])) {
    // durch fehlerhafte Eingabe ist der User zu diesem Formular zurueckgekehrt
    // nun die vorher eingegebenen Inhalte ins Objekt schreiben
    $category->setArray($_SESSION['categories_request']);
    if (!isset($_SESSION['categories_request']['show_in_several_organizations'])) {
        $category->setValue('cat_org_id', $gCurrentOrganization->getValue('org_id'));
    }
    unset($_SESSION['categories_request']);
}
// create html page object
$page = new HtmlPage($headline);
// add back link to module menu
$categoryCreateMenu = $page->getMenu();
$categoryCreateMenu->addItem('menu_item_back', $gNavigation->getPreviousUrl(), $gL10n->get('SYS_BACK'), 'back.png');
// show form
$form = new HtmlForm('categories_edit_form', $g_root_path . '/adm_program/modules/categories/categories_function.php?cat_id=' . $getCatId . '&type=' . $getType . '&mode=1', $page);
// systemcategories should not be renamed
$fieldPropertyCatName = FIELD_REQUIRED;
if ($category->getValue('cat_system') == 1) {