예제 #1
0
             mysql_query("ALTER TABLE" . $_SESSION['db_bdd'] . ".`{$table[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");
         }
     }
     echo 'document.getElementById("res_step3").innerHTML = "Done!";';
     echo 'document.getElementById("loader").style.display = "none";';
     echo 'document.getElementById("but_next").disabled = "";';
     echo 'document.getElementById("but_launch").disabled = "disabled";';
     mysql_close($db_tmp);
     break;
     #==========================
 #==========================
 case "step4":
     //include librairies
     require_once "../sources/NestedTree.class.php";
     //Build tree
     $tree = new NestedTree($_SESSION['tbl_prefix'] . 'nested_tree', 'id', 'parent_id', 'title');
     // Database
     $res = "";
     @mysql_connect($_SESSION['db_host'], $_SESSION['db_login'], $_SESSION['db_pw']);
     @mysql_select_db($_SESSION['db_bdd']);
     $db_tmp = mysql_connect($_SESSION['db_host'], $_SESSION['db_login'], $_SESSION['db_pw']);
     mysql_select_db($_SESSION['db_bdd'], $db_tmp);
     ## Populate table MISC
     $val = array(array('admin', 'max_latest_items', '10', 0), array('admin', 'enable_favourites', '1', 0), array('admin', 'show_last_items', '1', 0), array('admin', 'enable_pf_feature', '0', 0), array('admin', 'menu_type', 'context', 0), array('admin', 'log_connections', '0', 0), array('admin', 'time_format', 'H:i:s', 0), array('admin', 'date_format', 'd/m/Y', 0), array('admin', 'duplicate_folder', '0', 0), array('admin', 'duplicate_item', '0', 0), array('admin', 'number_of_used_pw', '3', 0), array('admin', 'manager_edit', '1', 0), array('admin', 'cpassman_dir', '', 0), array('admin', 'cpassman_url', '', 0), array('admin', 'favicon', '', 0), array('admin', 'activate_expiration', '0', 0), array('admin', 'pw_life_duration', '30', 0), array('admin', 'maintenance_mode', '1', 1), array('admin', 'cpassman_version', $k['version'], 1), array('admin', 'ldap_mode', '0', 0), array('admin', 'richtext', 0, 0), array('admin', 'allow_print', 0, 0), array('admin', 'show_description', 1, 0), array('admin', 'anyone_can_modify', 0, 0), array('admin', 'nb_bad_authentication', 0, 0), array('admin', 'restricted_to_roles', 0, 0), array('admin', 'utf8_enabled', 1, 0), array('admin', 'custom_logo', '', 0), array('admin', 'custom_login_text', '', 0), array('admin', 'log_accessed', '1', 1), array('admin', 'send_stats', empty($_SESSION['send_stats']) ? '0' : $_SESSION['send_stats'], 1));
     $res1 = "na";
     foreach ($val as $elem) {
         //Check if exists before inserting
         $res_tmp = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM " . $_SESSION['tbl_prefix'] . "misc WHERE type='" . $elem[0] . "' AND intitule='" . $elem[1] . "'"));
         if ($res_tmp[0] == 0) {
             $res1 = mysql_query("INSERT INTO `" . $_SESSION['tbl_prefix'] . "misc` (`type`, `intitule`, `valeur`) VALUES ('" . $elem[0] . "', '" . $elem[1] . "', '" . $elem[2] . "');");
             if (!$res1) {
             echo '$("#div_add_group").dialog("open");';
             echo 'document.getElementById("addgroup_show_error").innerHTML = "' . $txt['error_group_exist'] . '";';
             echo '$("#addgroup_show_error").show();';
             $create_new_folder = false;
         }
     }
     if ($create_new_folder == true) {
         $new_id = $db->query_insert("nested_tree", array('parent_id' => $_POST['parent_id'], 'title' => mysql_real_escape_string(stripslashes($_POST['title'])), 'personal_folder' => 0, 'renewal_period' => mysql_real_escape_string(stripslashes($_POST['renewal_period'])), 'bloquer_creation' => '0', 'bloquer_modification' => '0'));
         //Add complexity
         $db->query_insert("misc", array('type' => 'complex', 'intitule' => $new_id, 'valeur' => $_POST['complex']));
         //Add this folder to the role the creator has
         foreach (array_filter(explode(';', $_SESSION['fonction_id'])) as $role_id) {
             $db->query_insert("roles_values", array('folder_id' => $new_id, 'role_id' => $role_id));
         }
         require_once 'NestedTree.class.php';
         $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
         $tree->rebuild();
         //Get user's rights
         IdentificationDesDroits($_SESSION['groupes_visibles'] . ';' . $new_id, $_SESSION['groupes_interdits'], $_SESSION['is_admin'], $_SESSION['fonction_id'], true);
         //Reload page
         echo 'RefreshPage("form_groupes");';
     }
     break;
     //CASE where to update the associated Function
 //CASE where to update the associated Function
 case "fonction":
     $val = explode(';', $_POST['valeur']);
     $valeur = $_POST['valeur'];
     //Check if ID already exists
     $data = $db->fetch_row("SELECT authorized FROM " . $pre . "rights WHERE tree_id = '" . $val[0] . "' AND fonction_id= '" . $val[1] . "'");
     if (empty($data[0])) {
예제 #3
0
<?php

####################################################################################################
## File : items.php
## Author : Nils Laumaillé
## Description : Items page
##
## DON'T CHANGE !!!
##
####################################################################################################
require_once "sources/NestedTree.class.php";
$tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
$tree->rebuild();
$tst = $tree->getDescendants();
//Définir liste des utilisateurs existants
$liste_utilisateurs = array();
$tmp = "";
$rows = $db->fetch_all_array("SELECT id,login,email FROM " . $pre . "users ORDER BY login ASC");
foreach ($rows as $record) {
    $liste_utilisateurs[$record['login']] = array("id" => $record['id'], "login" => $record['login'], "email" => $record['email']);
    $tmp .= $record['id'] . '.' . $record['login'] . ";";
}
//Build list of visible folders
$select_visible_folders_options = "";
//Choses cachées
echo '
<input type="hidden" name="hid_cat" id="hid_cat" />
<input type="hidden" id="complexite_groupe" />
<input type="text" style="display:none;" name="selected_items" id="selected_items" />
<input type="hidden" name="input_liste_utilisateurs" id="input_liste_utilisateurs" value="' . $tmp . '" />
<input type="hidden" id="bloquer_creation_complexite" />
예제 #4
0
     echo '[{"text":"' . $text . '"}]';
     break;
     //CHANGE FORBIDDEN GROUPS
 //CHANGE FORBIDDEN GROUPS
 case "open_div_forgroups":
     //Check KEY
     if ($_POST['key'] != $_SESSION['key']) {
         //error
         exit;
     }
     $text = "";
     //Refresh list of existing functions
     $data_user = $db->fetch_row("SELECT groupes_interdits FROM " . $pre . "users WHERE id = " . $_POST['id']);
     $user = explode(';', $data_user[0]);
     require_once "NestedTree.class.php";
     $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
     $tree_desc = $tree->getDescendants();
     foreach ($tree_desc as $t) {
         if (in_array($t->id, $_SESSION['groupes_visibles']) && !in_array($t->id, $_SESSION['personal_visible_groups'])) {
             $text .= '<input type="checkbox" id="cb_change_forgroup-' . $t->id . '"';
             $ident = "";
             for ($y = 1; $y < $t->nlevel; $y++) {
                 $ident .= "&nbsp;&nbsp;";
             }
             if (in_array($t->id, $user)) {
                 $text .= ' checked';
             }
             $text .= '>&nbsp;' . $ident . $t->title . '<br />';
             $prev_level = $t->nlevel;
         }
     }
예제 #5
0
         // send as HTML
         $mail->Subject = $txt['forgot_pw_email_subject_confirm'];
         $mail->AltBody = strip_tags($txt['forgot_pw_email_body']) . " " . $new_pw_not_crypted;
         $mail->Body = $txt['forgot_pw_email_body'] . " " . $new_pw_not_crypted;
         //send email
         if ($mail->Send()) {
             echo 'done';
         } else {
             echo $mail->ErrorInfo;
         }
     }
     break;
 case "get_folders_list":
     /* Get full tree structure */
     require_once "NestedTree.class.php";
     $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
     $folders = $tree->getDescendants();
     $arrOutput = array();
     /* Build list of all folders */
     $folders_list = "\\'0\\':\\'" . $txt['root'] . "\\'";
     foreach ($folders as $f) {
         //Be sure that user can only see folders he/she is allowed to
         if (!in_array($f->id, $_SESSION['forbiden_pfs'])) {
             $display_this_node = false;
             // Check if any allowed folder is part of the descendants of this node
             $node_descendants = $tree->getDescendants($f->id, true, false, true);
             foreach ($node_descendants as $node) {
                 if (in_array($node, $_SESSION['groupes_visibles'])) {
                     $display_this_node = true;
                     break;
                 }
예제 #6
0
     echo '[{"result" : "pf_done"}]';
     break;
     ###########################################################
     #CASE for deleting all items from DB that are linked to a folder that has been deleted
 ###########################################################
 #CASE for deleting all items from DB that are linked to a folder that has been deleted
 case "admin_action_db_clean_items":
     //Libraries call
     require_once "NestedTree.class.php";
     require_once "main.functions.php";
     //init
     $folders_ids = array();
     $text = "";
     $nb_items_deleted = 0;
     // prepare full tree
     $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
     // Get an array of all folders
     $folders = $tree->getDescendants();
     foreach ($folders as $folder) {
         if (!in_array($folder->id, $folders_ids)) {
             array_push($folders_ids, $folder->id);
         }
     }
     $items = $db->fetch_all_array("SELECT id,label FROM " . $pre . "items WHERE id_tree NOT IN(" . implode(',', $folders_ids) . ")");
     foreach ($items as $item) {
         $text .= $item['label'] . "[" . $item['id'] . "] - ";
         //Delete item
         $db->query("DELETE FROM " . $pre . "items WHERE id = " . $item['id']);
         //log
         $db->query("DELETE FROM " . $pre . "log_items WHERE id_item = " . $item['id']);
         $nb_items_deleted++;
예제 #7
0
function IdentificationDesDroits($groupes_visibles_user, $groupes_interdits_user, $is_admin, $id_fonctions, $refresh)
{
    global $server, $user, $pass, $database, $pre;
    //include librairies
    require_once "NestedTree.class.php";
    require_once "class.database.php";
    $db = new Database($server, $user, $pass, $database, $pre);
    $db->connect();
    //Check if user is ADMINISTRATOR
    if ($is_admin == 1) {
        $groupes_visibles = array();
        $_SESSION['groupes_visibles'] = array();
        $_SESSION['groupes_interdits'] = array();
        $_SESSION['personal_visible_groups'] = array();
        $_SESSION['groupes_visibles_list'] = "";
        $rows = $db->fetch_all_array("SELECT id FROM " . $pre . "nested_tree WHERE personal_folder = '0'");
        foreach ($rows as $record) {
            array_push($groupes_visibles, $record['id']);
        }
        $_SESSION['groupes_visibles'] = $groupes_visibles;
        //Exclude all PF
        $_SESSION['forbiden_pfs'] = array();
        $sql = "SELECT id FROM " . $pre . "nested_tree WHERE personal_folder = 1";
        if (isset($_SESSION['settings']['enable_pf_feature']) && $_SESSION['settings']['enable_pf_feature'] == 1) {
            $sql .= " AND title != '" . $_SESSION['user_id'] . "'";
        }
        //Get ID of personal folder
        $pf = $db->fetch_array("SELECT id FROM " . $pre . "nested_tree WHERE title = '" . $_SESSION['user_id'] . "'");
        if (!empty($pf[0])) {
            if (!in_array($pf[0], $_SESSION['groupes_visibles'])) {
                array_push($_SESSION['groupes_visibles'], $pf[0]);
                array_push($_SESSION['personal_visible_groups'], $pf[0]);
                //get all descendants
                $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title', 'personal_folder');
                $tree->rebuild();
                $tst = $tree->getDescendants($pf[0]);
                foreach ($tst as $t) {
                    array_push($_SESSION['groupes_visibles'], $t->id);
                    array_push($_SESSION['personal_visible_groups'], $t->id);
                }
            }
        }
        $_SESSION['groupes_visibles_list'] = implode(',', $_SESSION['groupes_visibles']);
        $_SESSION['is_admin'] = $is_admin;
        //Check if admin has creating Folders and Roles
        $ret = $db->fetch_row("SELECT COUNT(*) FROM " . $pre . "nested_tree");
        $_SESSION['nb_folders'] = $ret[0];
        $ret = $db->fetch_row("SELECT COUNT(*) FROM " . $pre . "roles_title");
        $_SESSION['nb_roles'] = $ret[0];
    } else {
        //init
        $_SESSION['groupes_visibles'] = array();
        $_SESSION['groupes_interdits'] = array();
        $_SESSION['personal_visible_groups'] = array();
        $groupes_visibles = array();
        $groupes_interdits = array();
        $groupes_interdits_user = explode(';', TrimElement($groupes_interdits_user, ";"));
        if (!empty($groupes_interdits_user) && count($groupes_interdits_user) > 0) {
            $groupes_interdits = $groupes_interdits_user;
        }
        $_SESSION['is_admin'] = $is_admin;
        $fonctions_associees = explode(';', TrimElement($id_fonctions, ";"));
        $new_liste_gp_visibles = array();
        $liste_gp_interdits = array();
        $list_allowed_folders = array();
        $list_forbiden_folders = array();
        //build Tree
        require_once "NestedTree.class.php";
        $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
        //rechercher tous les groupes visibles en fonction des roles de l'utilisateur
        foreach ($fonctions_associees as $role_id) {
            if (!empty($role_id)) {
                //Get allowed folders for each Role
                $rows = $db->fetch_all_array("SELECT folder_id FROM " . $pre . "roles_values WHERE role_id=" . $role_id);
                foreach ($rows as $record) {
                    if (isset($record['folder_id']) && !in_array($record['folder_id'], $list_allowed_folders)) {
                        array_push($list_allowed_folders, $record['folder_id']);
                    }
                }
            }
        }
        // => Build final lists
        //Clean arrays
        $allowed_folders_tmp = array();
        $list_allowed_folders = array_unique($list_allowed_folders);
        //Add user allowed folders
        $allowed_folders_tmp = array_unique(array_merge($list_allowed_folders, explode(';', TrimElement($groupes_visibles_user, ";"))));
        //Exclude from allowed folders all the specific user forbidden folders
        $allowed_folders = array();
        foreach ($allowed_folders_tmp as $id) {
            if (!in_array($id, $groupes_interdits_user)) {
                array_push($allowed_folders, $id);
            }
        }
        //Clean array
        $list_allowed_folders = array_filter(array_unique($list_allowed_folders));
        //Exclude all PF
        $_SESSION['forbiden_pfs'] = array();
        $sql = "SELECT id FROM " . $pre . "nested_tree WHERE personal_folder = 1";
        if (isset($_SESSION['settings']['enable_pf_feature']) && $_SESSION['settings']['enable_pf_feature'] == 1) {
            $sql .= " AND title != '" . $_SESSION['user_id'] . "'";
        }
        $pfs = $db->fetch_all_array($sql);
        foreach ($pfs as $pf_id) {
            array_push($_SESSION['forbiden_pfs'], $pf_id['id']);
        }
        //Get ID of personal folder
        if (isset($_SESSION['settings']['enable_pf_feature']) && $_SESSION['settings']['enable_pf_feature'] == 1) {
            $pf = $db->fetch_row("SELECT id FROM " . $pre . "nested_tree WHERE title = '" . $_SESSION['user_id'] . "'");
            if (!empty($pf[0])) {
                if (!in_array($pf[0], $list_allowed_folders)) {
                    //get all descendants
                    $ids = $tree->getDescendants($pf[0], true);
                    foreach ($ids as $id) {
                        array_push($list_allowed_folders, $id->id);
                        array_push($_SESSION['personal_visible_groups'], $id->id);
                    }
                }
            }
        }
        $_SESSION['groupes_visibles'] = $list_allowed_folders;
        $_SESSION['groupes_visibles_list'] = implode(',', $list_allowed_folders);
    }
}
예제 #8
0
  */
 case 'lister_items_groupe':
     $arbo_html = $html = "";
     $folder_is_pf = $show_error = 0;
     $items_id_list = $rights = array();
     //Build query limits
     if (empty($_POST['start'])) {
         $start = 0;
         $html = '<ul class="liste_items">';
     } else {
         $start = $_POST['start'];
         $html = '<ul class="liste_items" style="">';
     }
     //Prepare tree
     require_once "NestedTree.class.php";
     $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
     $arbo = $tree->getPath($_POST['id'], true);
     foreach ($arbo as $elem) {
         if ($elem->title == $_SESSION['user_id'] && $elem->nlevel == 1) {
             $elem->title = $_SESSION['login'];
             $folder_is_pf = 1;
         }
         if (empty($arbo_html)) {
             $arbo_html = htmlspecialchars(stripslashes($elem->title), ENT_QUOTES);
         } else {
             $arbo_html .= " » " . htmlspecialchars(stripslashes($elem->title), ENT_QUOTES);
         }
     }
     //check if this folder is a PF. If yes check if saltket is set
     if ((!isset($_SESSION['my_sk']) || empty($_SESSION['my_sk'])) && $folder_is_pf == 1) {
         $show_error = "is_pf_but_no_saltkey";
예제 #9
0
<?php

// no direct access
defined('PARENT_FILE') or die('Restricted access');
if ($this->authorize()) {
    // start tree class
    $tree = new NestedTree($this->registry->core . 'menu_items', $this->registry->params['id'], 'item');
    $rows = $tree->numDecendants(true);
    $menuBar = array('menus' => '/menu/overview', 'new_link' => '/menu/view/id-' . $this->registry->params['id'] . '/action-new');
    $this->content .= $this->makeToolbar($menuBar, 24);
    if ($rows > 0) {
        $items = $tree->getDecendants(true);
        $c = 0;
        $data = array();
        foreach ($items as $row) {
            if ($row['depth'] > 0) {
                if ($row['depth'] > 1) {
                    $r = str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;', $row['depth'] - 1);
                    $r .= "&bull;&nbsp;" . $row['item'];
                    $data[$c][] = $r;
                } else {
                    $data[$c][] = $row['item'];
                }
                $data[$c][] = '<a href="/menu/view/id-' . $this->registry->params['id'] . '/action-edit/item-' . $row['item_id'] . '"><img src="/images/24x24/Edit3.png" class="Tips" title="Edit Item" rel="Click to edit the ' . $row['item'] . ' menu" /></a>';
                $data[$c][] = '<a href="/menu/view/id-' . $this->registry->params['id'] . '/action-delete/item-' . $row['item_id'] . '" ><img src="/images/24x24/DeleteRed.png" class="Tips" title="Delete item" rel="Click to delete the ' . $row['category'] . ' item" /></a>';
                $c++;
            }
        }
        $header = array('Menu Item', '', '');
        $table = $this->dataTable($data, $header);
    } else {
예제 #10
0
 * @copyright 	(c) 2009-2011 Nils Laumaillé
 * @licensing 	CC BY-ND (http://creativecommons.org/licenses/by-nd/3.0/legalcode)
 * @link		http://cpassman.org
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */
if (!isset($_SESSION['CPM']) || $_SESSION['CPM'] != 1) {
    die('Hacking attempt...');
}
/* load help*/
require_once 'includes/language/' . $_SESSION['user_language'] . '_admin_help.php';
/* Get full tree structure */
require_once "sources/NestedTree.class.php";
$tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
$tst = $tree->getDescendants();
/* Build list of all folders */
if ($_SESSION['is_admin'] == 1 || $_SESSION['can_create_root_folder'] == 1) {
    $folders_list = "\\'0\\':\\'" . $txt['root'] . "\\'";
} else {
    $folders_list = "";
}
$ident = "";
foreach ($tst as $t) {
    if (in_array($t->id, $_SESSION['groupes_visibles']) && !in_array($t->id, $_SESSION['personal_visible_groups'])) {
        if ($t->nlevel == 1) {
            $ident = ">";
        }
        if ($t->nlevel == 2) {
            $ident = "->";
예제 #11
0
 protected function queryMenu($menu_id)
 {
     $menu = array();
     if ($this->status == "LI") {
         $status = "LO";
     } else {
         $status = "LI";
     }
     $tree = new NestedTree($this->db_table . 'menu_items', $menu_id, 'item');
     $decendants = $tree->getDecendants(true);
     $search_categories = null;
     if ($decendants) {
         foreach ($decendants as $key => $value) {
             $search_categories .= $decendants[$key]['item_id'] . ',';
         }
         $search_categories = substr($search_categories, 0, -1);
         $fields = 'item_id, item, status, url, enssl, page_id';
         $join = array($this->registry->core . 'menu_link_status', $this->db_table . 'menu_urls');
         $result = $this->registry->db->getResult($fields, 'menu_items', $join, array('WHERE' => "status != '" . $status . "'", 'AND' => 'item_id IN (' . $search_categories . ')', 'ORDER BY' => 'lft ASC'));
     } else {
         $result = false;
     }
     if ($result) {
         foreach ($result as $row) {
             $menu[] = Uthando::objectToArray($row);
         }
         foreach ($menu as $key => $value) {
             $return_menu[$key] = $value;
             if (is_numeric($value['page_id'])) {
                 $page = $this->registry->db->getResult('page', $this->db_table . 'pages', null, array('WHERE' => 'page_id=' . $value['page_id']), false);
                 $return_menu[$key]['page'] = $page->page;
             }
             $return_menu[$key]['lft'] = $decendants[$key]['lft'];
             $return_menu[$key]['rgt'] = $decendants[$key]['rgt'];
             $return_menu[$key]['depth'] = $decendants[$key]['depth'] - 1;
         }
         if ($return_menu) {
             foreach ($return_menu as $key => $value) {
                 $category[$key] = $value['lft'];
             }
             array_multisort($category, SORT_ASC, $return_menu);
         }
         return $return_menu;
     } else {
         return false;
     }
 }
예제 #12
0
파일: home.php 프로젝트: sleepy909/cpassman
 * @author		Nils Laumaillé
 * @version 	2.0
 * @copyright 	(c) 2009-2011 Nils Laumaillé
 * @licensing 	CC BY-ND (http://creativecommons.org/licenses/by-nd/3.0/legalcode)
 * @link		http://cpassman.org
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 */
if (!isset($_SESSION['CPM']) || $_SESSION['CPM'] != 1) {
    die('Hacking attempt...');
}
//Call nestedtree library and load full tree
require_once "sources/NestedTree.class.php";
$tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
$tree->rebuild();
$full_tree = $tree->getDescendants();
echo '
            <div style="line-height: 24px;margin-top:10px;min-height:220px;">
            <span class="ui-icon ui-icon-person" style="float: left; margin-right: .3em;">&nbsp;</span>
            ' . $txt['index_welcome'] . ' <b>' . $_SESSION['login'] . '</b><br />';
//Check if password is valid
if (empty($_SESSION['last_pw_change']) || $_SESSION['validite_pw'] == false) {
    echo '
                <div style="margin:auto;padding:4px;width:300px;"  class="ui-state-focus ui-corner-all">
                	<h3>' . $txt['index_change_pw'] . '</h3>
                    <div style="height:20px;text-align:center;margin:2px;display:none;" id="change_pwd_error" class=""></div>
                    <div id="pw_strength" style="margin:0 0 10px 30px;"></div>
                    <table>
                        <tr>
예제 #13
0
<?php

// no direct access
defined('PARENT_FILE') or die('Restricted access');
if ($this->authorize()) {
    $tree = new NestedTree($this->registry->core . 'menu_items', null, 'item');
    $tree->linked_columns = array('menu_type' => $this->registry->core . 'menu_types');
    $menus = $tree->getTopLevelTree();
    if (count($menus) > 0) {
        $c = 0;
        $data = array();
        foreach ($menus as $row) {
            $tree->setId($row['item_id']);
            $num_items = $tree->numDecendants(true);
            $data[$c] = array($row['item'], $row['menu_type'], '' . $num_items . '', '<a href="/menu/edit/id-' . $row['item_id'] . '"  style="text-decoration:none;" ><img src="/templates/' . $this->get('admin_config.site.template') . '/images/24x24/Edit3.png" class="Tips" title="Edit Menu" rel="Click to edit the ' . $row['item'] . ' menu" /></a>', '<a href="/menu/view/id-' . $row['item_id'] . '"  style="text-decoration:none;" ><img src="/templates/' . $this->get('admin_config.site.template') . '/images/24x24/Preview.png" class="Tips" title="View Menu" rel="Click to view the ' . $row['item'] . ' items" /></a>', '<a href="/menu/delete/id-' . $row['item_id'] . '"><img src="/templates/' . $this->get('admin_config.site.template') . '/images/24x24/DeleteRed.png" class="Tips" title="Delete Menu" rel="Click to delete the ' . $row['item'] . ' menu" /></a>');
            $c++;
        }
        $header = array('Menu', 'Menu Type', 'Items', '', '', '');
        $table = $this->dataTable($data, $header);
    } else {
        $params = array('TYPE' => 'info', 'MESSAGE' => '<h2>There are currently no records.</h2>');
    }
    $menuBar = array('new_menu' => '/menu/new');
    $this->content .= $this->makeToolbar($menuBar, 24);
    if (count($menus) > 0) {
        $this->content .= '<div id="tableWrap">';
        $this->content .= $table->toHtml();
        $this->content .= '</div>';
    } else {
        $this->content .= $this->message($params);
    }
예제 #14
0
/**
 * UpdateCacheTable()
 *
 * Update the CACHE table
 */
function UpdateCacheTable($action, $id = "")
{
    global $db, $server, $user, $pass, $database, $pre;
    //include librairies
    require_once "NestedTree.class.php";
    //Build tree
    $tree = new NestedTree($pre . 'nested_tree', 'id', 'parent_id', 'title');
    //Rebuild full cache table
    if ($action == "reload") {
        //truncate table
        $db->query("TRUNCATE TABLE " . $pre . "cache");
        //reload date
        $sql = "SELECT *\r\n                FROM " . $pre . "items\r\n                WHERE inactif=0";
        $rows = $db->fetch_all_array($sql);
        foreach ($rows as $reccord) {
            //Get all TAGS
            $tags = "";
            $item_tags = $db->fetch_all_array("SELECT tag FROM " . $pre . "tags WHERE item_id=" . $reccord['id']);
            foreach ($item_tags as $item_tag) {
                if (!empty($item_tag['tag'])) {
                    $tags .= $item_tag['tag'] . " ";
                }
            }
            //form id_tree to full foldername
            $folder = "";
            $arbo = $tree->getPath($reccord['id_tree'], true);
            foreach ($arbo as $elem) {
                if ($elem->title == $_SESSION['user_id'] && $elem->nlevel == 1) {
                    $elem->title = $_SESSION['login'];
                }
                if (empty($folder)) {
                    $folder = stripslashes($elem->title);
                } else {
                    $folder .= " » " . stripslashes($elem->title);
                }
            }
            //store data
            $db->query_insert("cache", array('id' => $reccord['id'], 'label' => $reccord['label'], 'description' => $reccord['description'], 'tags' => $tags, 'id_tree' => $reccord['id_tree'], 'perso' => $reccord['perso'], 'restricted_to' => $reccord['restricted_to'], 'login' => $reccord['login'], 'folder' => $folder));
        }
        //UPDATE an item
    } else {
        if ($action == "update_value") {
            //get new value from db
            $sql = "SELECT label, description, id_tree, perso, restricted_to, login\r\n                FROM " . $pre . "items\r\n                WHERE id=" . $id;
            $row = $db->query($sql);
            $data = $db->fetch_array($row);
            //Get all TAGS
            $tags = "";
            $item_tags = $db->fetch_all_array("SELECT tag FROM " . $pre . "tags WHERE item_id=" . $id);
            foreach ($item_tags as $item_tag) {
                if (!empty($item_tag['tag'])) {
                    $tags .= $item_tag['tag'] . " ";
                }
            }
            //form id_tree to full foldername
            $folder = "";
            $arbo = $tree->getPath($data['id_tree'], true);
            foreach ($arbo as $elem) {
                if ($elem->title == $_SESSION['user_id'] && $elem->nlevel == 1) {
                    $elem->title = $_SESSION['login'];
                }
                if (empty($folder)) {
                    $folder = stripslashes($elem->title);
                } else {
                    $folder .= " » " . stripslashes($elem->title);
                }
            }
            //finaly update
            $db->query_update("cache", array('label' => $data['label'], 'description' => $data['description'], 'tags' => $tags, 'id_tree' => $data['id_tree'], 'perso' => $data['perso'], 'restricted_to' => $data['restricted_to'], 'login' => $data['login'], 'folder' => $folder), "id='" . $id . "'");
            //ADD an item
        } else {
            if ($action == "add_value") {
                //get new value from db
                $sql = "SELECT label, description, id_tree, perso, restricted_to, id, login\r\n                FROM " . $pre . "items\r\n                WHERE id=" . $id;
                $row = $db->query($sql);
                $data = $db->fetch_array($row);
                //Get all TAGS
                $tags = "";
                $item_tags = $db->fetch_all_array("SELECT tag FROM " . $pre . "tags WHERE item_id=" . $id);
                foreach ($item_tags as $item_tag) {
                    if (!empty($item_tag['tag'])) {
                        $tags .= $item_tag['tag'] . " ";
                    }
                }
                //form id_tree to full foldername
                $folder = "";
                $arbo = $tree->getPath($row['id_tree'], true);
                foreach ($arbo as $elem) {
                    if ($elem->title == $_SESSION['user_id'] && $elem->nlevel == 1) {
                        $elem->title = $_SESSION['login'];
                    }
                    if (empty($folder)) {
                        $folder = stripslashes($elem->title);
                    } else {
                        $folder .= " » " . stripslashes($elem->title);
                    }
                }
                //finaly update
                $db->query_insert("cache", array('id' => $data['id'], 'label' => $data['label'], 'description' => $data['description'], 'tags' => $tags, 'id_tree' => $data['id_tree'], 'perso' => $data['perso'], 'restricted_to' => $data['restricted_to'], 'login' => $data['login'], 'folder' => $folder));
                //DELETE an item
            } else {
                if ($action == "delete_value") {
                    mysql_query("DELETE FROM " . $pre . "cache WHERE id = " . $id);
                }
            }
        }
    }
}