Ejemplo n.º 1
0
function write_metas()
{
    global $meta, $meta_upd;
    read_metas();
    $s = '<' . '?php

if (defined("_INC_META_CACHE")) return;
define("_INC_META_CACHE", "1");

function read_meta($name) {
	global $meta;

	if (! isset($meta[$name])) {
		lcm_debug("read_meta: -$name- does not exist");
		return "";
	}

	return $meta[$name];
}

function read_meta_upd($name) {
	global $meta_upd;
	return $meta_upd[$name];
}

';
    if ($meta) {
        reset($meta);
        while (list($key, $val) = each($meta)) {
            $key = addslashes($key);
            $val = preg_replace("/([\\\\'])/", "\\\\1", $val);
            $s .= "\$GLOBALS['meta']['{$key}'] = '{$val}';\n";
        }
        $s .= "\n";
    }
    if ($meta_upd) {
        reset($meta_upd);
        while (list($key, $val) = each($meta_upd)) {
            $key = addslashes($key);
            $s .= "\$GLOBALS['meta_upd']['{$key}'] = '{$val}';\n";
        }
        $s .= "\n";
    }
    // System keywords
    include_lcm('inc_keywords');
    $kwg_all = get_kwg_all('system');
    foreach ($kwg_all as $key0 => $val0) {
        // Dump every field of the keyword group
        foreach ($val0 as $key => $val) {
            // We filter out numeric keys because lcm_fetch_array()
            // returns the two types of arrays
            if (!is_numeric($key)) {
                $key = addslashes($key);
                $val = preg_replace("/([\\\\'])/", "\\\\1", $val);
                $s .= "\$GLOBALS['system_kwg']['" . $kwg_all[$key0]['name'] . "']['{$key}'] = '{$val}';\n";
            }
        }
    }
    reset($kwg_all);
    foreach ($kwg_all as $kwg) {
        // Dump every keyword and field of the keyword group
        $kw_all = get_keywords_in_group_id($kwg['id_group'], false);
        foreach ($kw_all as $kw) {
            $kw_name = $kw['name'];
            // Dump every field of the keyword into the kwg
            while (list($key, $val) = each($kw)) {
                if (!is_numeric($key)) {
                    $key = addslashes($key);
                    $val = preg_replace("/([\\\\'])/", "\\\\1", $val);
                    $s .= "\$GLOBALS['system_kwg']['" . $kwg['name'] . "']['keywords']['{$kw_name}']['{$key}'] = '{$val}';\n";
                }
            }
        }
    }
    $s .= '?' . '>';
    if (isset($_SERVER['LcmDataDir'])) {
        $file_meta_cache = $_SERVER['LcmDataDir'] . '/inc_meta_cache.php';
    } else {
        $file_meta_cache = 'inc/data/inc_meta_cache.php';
    }
    @unlink($file_meta_cache);
    $file_meta_cache_w = $file_meta_cache . '-' . @getmypid();
    $f = @fopen($file_meta_cache_w, "wb");
    if ($f) {
        $r = @fputs($f, $s);
        @fclose($f);
        if ($r == strlen($s)) {
            @rename($file_meta_cache_w, $file_meta_cache);
        } else {
            @unlink($file_meta_cache_w);
        }
    } else {
        global $connect_status;
        if ($connect_status == 'admin') {
            echo "<h4 font color='red'>" . _T('texte_inc_meta_1') . " <a href='lcm_test_dirs.php'>" . _T('texte_inc_meta_2') . "</a> " . _T('texte_inc_meta_3') . "&nbsp;</h4>\n";
        }
    }
}
Ejemplo n.º 2
0
function _Tkw($grp, $val, $args = '')
{
    global $system_kwg;
    $kwg = array();
    // If a 'contact' keyword (starts with +), remove the +
    if (substr($val, 0, 1) == '+') {
        $val = substr($val, 1);
    }
    if ($system_kwg[$grp]) {
        $kwg = $system_kwg[$grp]['keywords'];
    } else {
        $kwg = get_keywords_in_group_name($grp, false);
    }
    if (count($kwg)) {
        if ($kwg[$val]) {
            return _T(remove_number_prefix($kwg[$val]['title']), $args);
        } else {
            // This is a weird case where the upgrade didn't refresh the
            // group correctly, so we will try to fix the situation.
            // First, we check in the database to see if the keyword exists,
            // and if it does, then we refresh the keywords.
            // Note: that get_keywords_in_group_id() consults only the DB
            // [ML] Note: this should not happen from 0.6.3, but i'm fed up of
            // thinking that this time we fixed it, so the code stays..
            $tmp_group = get_kwg_from_name($grp);
            $kws1 = get_keywords_in_group_id($tmp_group['id_group'], false);
            foreach ($kws1 as $kw) {
                if ($kw['name'] == $val) {
                    include_lcm('inc_keywords_default');
                    $system_keyword_groups = get_default_keywords();
                    create_groups($system_keyword_groups);
                    write_metas();
                    // regenerate inc/data/inc_meta_cache.php
                    return _T(remove_number_prefix($kw['title']), $args);
                }
            }
            lcm_panic("*** The keyword does not exist. It is possible that a\n\t\t\t\tminor error occured while the last upgrade of the software. Please\n\t\t\t\task your administrator to do the following: Go to the 'Keywords'\n\t\t\t\tmenu, then click on the 'Maintenance' tab, then click on the\n\t\t\t\t'Validate' button. This will refresh the available keywords.");
        }
    } else {
        lcm_panic("*** The keyword group does not exist. It is possible that a\n\t\t\tminor error occured while the last upgrade of the software. Please\n\t\t\task your administrator to do the following: Go to the 'Keywords'\n\t\t\tmenu, then click on the 'Maintenance' tab, then click on the\n\t\t\t'Validate' button. This will refresh the available keywords.");
    }
}
Ejemplo n.º 3
0
             }
         }
     }
     echo "</div>\n";
 } elseif ($action == 'get_kws_in') {
     // Searching keywords to add to a case (experimental)
     include_lcm('inc_keywords');
     include_lcm('inc_access');
     echo '<div id="' . _request('div') . '">';
     $id_obj = _request('id_obj', 0);
     $type_obj = _request('type_obj', '__ASSERT__');
     $group_name = _request('group_name');
     if ($group_name) {
         $kwg = get_kwg_from_name($group_name);
         $id_group = $kwg['id_group'];
         $kw_for_kwg = get_keywords_in_group_id($id_group);
         if (count($kw_for_kwg)) {
             $obj_id_ajax = 'kw_' . create_random_password(15, time());
             echo '<input type="hidden" name="new_kwg_' . $type_obj . '_id[]" value="' . $id_group . '" />' . "\n";
             echo '<select id="new_keyword_' . $type_obj . $cpt_kw . '" ' . 'name="new_keyword_' . $type_obj . '_value[]" ' . "onchange=\"getKeywordInfo('get_kwg_in','{$group_name}','{$type_obj}',{$id_obj},0, '{$obj_id_ajax}')\"" . '>';
             echo '<option value="">' . '' . "</option>\n";
             $show_kw_value = false;
             foreach ($kw_for_kwg as $kw) {
                 if ($kw['hasvalue'] == 'Y') {
                     $show_kw_value = true;
                 }
                 // For default value, use the form_data (if present), else use suggested keyword
                 if (isset($_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw]) && $_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw] == $kw['id_keyword']) {
                     $sel = ' selected="selected" ';
                 } elseif ($kwg['suggest'] == $kw['name']) {
                     $sel = ' selected="selected" ';
Ejemplo n.º 4
0
function show_edit_keywords_form($type_obj, $id_obj, $id_obj_sec = 0)
{
    include_lcm('inc_access');
    if (!$GLOBALS['legal_obj'][$type_obj]) {
        lcm_panic("Invalid object type requested");
    }
    if ($id_obj) {
        //
        // Show current keywords (already attached to object)
        //
        $current_kws = get_keywords_applied_to($type_obj, $id_obj, $id_obj_sec);
        $cpt = 0;
        foreach ($current_kws as $kw) {
            $kwg = get_kwg_from_id($kw['id_group']);
            $show_kw_value = false;
            echo "<tr>\n";
            echo "<td>" . "<label for=\"kw_value_{$type_obj}{$cpt}\">" . f_err_star('kwg' . $kwg['id_group']) . _Ti(remove_number_prefix($kwg['title'])) . "</label>" . "<br />(" . _T('keywords_input_policy_' . $kwg['policy']) . ")" . "</td>\n";
            echo "<td>";
            $kw_for_kwg = get_keywords_in_group_id($kwg['id_group']);
            if (count($kw_for_kwg)) {
                echo '<input type="hidden" name="kwg_id_' . $type_obj . '[]" value="' . $kwg['id_group'] . '" />' . "\n";
                echo '<input type="hidden" name="kw_entry_' . $type_obj . '[]" value="' . $kw['id_entry'] . '" />' . "\n";
                echo '<select id="kw_value_' . $type_obj . $cpt . '" name="kw_value_' . $type_obj . '[]">';
                echo '<option value="">' . '' . "</option>\n";
                foreach ($kw_for_kwg as $kw1) {
                    if ($kw1['hasvalue'] == 'Y') {
                        $show_kw_value = true;
                    }
                    $sel = '';
                    if (isset($_SESSION['form_data']['kw_value_' . $type_obj][$cpt]) && $_SESSION['form_data']['kw_value_' . $type_obj][$cpt] == $kw1['id_keyword']) {
                        $sel = ' selected="selected" ';
                    } elseif ($kw1['id_keyword'] == $kw['id_keyword']) {
                        $sel = ' selected="selected" ';
                    }
                    echo '<option value="' . $kw1['id_keyword'] . '"' . $sel . '>' . _T(remove_number_prefix($kw1['title'])) . "</option>\n";
                }
                echo "</select>\n";
            }
            // Check if keyword policy = mandatory, and quantity = one
            $kwg = get_kwg_from_id($kw['id_group']);
            if (!($kwg['policy'] == 'mandatory' && $kwg['quantity'] == 'one')) {
                echo '<label for="kw_del_' . $type_obj . $cpt . '">' . '<img src="images/jimmac/stock_trash-16.png" width="16" height="16" alt="Delete?" title="Delete?" />' . '</label>&nbsp;<input type="checkbox" id="kw_del_' . $type_obj . $cpt . '" name="kw_del_' . $type_obj . $cpt . '"/>';
            }
            if ($show_kw_value) {
                // Use value if submitted with the form, else use previous one
                if (isset($_SESSION['form_data']['kw_entryval_' . $type_obj . $cpt])) {
                    $tmp_value = $_SESSION['form_data']['kw_entryval_' . $type_obj . $cpt];
                } else {
                    $tmp_value = $kw['value'];
                }
                echo "<br />\n";
                echo '<input type="text" name="kw_entryval_' . $type_obj . $cpt . '" ' . 'value="' . $tmp_value . '" />' . "\n";
            }
            echo "</td>\n";
            echo "</tr>\n";
            $cpt++;
        }
    }
    //
    // New keywords
    //
    $kwg_for_case = get_kwg_applicable_for($type_obj, $id_obj, $id_obj_sec);
    $cpt_kw = 0;
    foreach ($kwg_for_case as $kwg) {
        echo "<tr>\n";
        echo '<td><label for="new_keyword_' . $type_obj . $cpt_kw . '">' . f_err_star('keyword_' . $type_obj . $cpt_kw) . f_err_star('kwg' . $kwg['id_group']) . _Ti(remove_number_prefix($kwg['title'])) . '</label>' . "<br />(" . _T('keywords_input_policy_' . $kwg['policy']) . ")</td>\n";
        echo "<td>";
        $kw_for_kwg = get_keywords_in_group_id($kwg['id_group']);
        if (count($kw_for_kwg)) {
            $obj_id_ajax = 'kw_' . create_random_password(15, time());
            echo '<input type="hidden" name="new_kwg_' . $type_obj . '_id[]" value="' . $kwg['id_group'] . '" />' . "\n";
            echo '<select id="new_keyword_' . $type_obj . $cpt_kw . '" ' . 'name="new_keyword_' . $type_obj . '_value[]" ' . "onchange=\"getKeywordInfo('get_kwg_in','" . $kwg['name'] . "', '{$type_obj}', {$id_obj}, 0, '{$obj_id_ajax}')\"" . '>';
            echo '<option value="">' . '' . "</option>\n";
            $show_kw_value = false;
            foreach ($kw_for_kwg as $kw) {
                if ($kw['hasvalue'] == 'Y') {
                    $show_kw_value = true;
                }
                // For default value, use the form_data (if present), else use suggested keyword
                $sel = '';
                if (isset($_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw]) && $_SESSION['form_data']['new_keyword_' . $type_obj . '_value'][$cpt_kw] == $kw['id_keyword']) {
                    $sel = ' selected="selected" ';
                } elseif ($kwg['suggest'] == $kw['name']) {
                    $sel = ' selected="selected" ';
                }
                // $sel = ($kwg['suggest'] == $kw['name'] ? ' selected="selected" ' : '');
                echo '<option ' . $sel . ' value="' . $kw['id_keyword'] . '">' . _T(remove_number_prefix($kw['title'])) . "</option>\n";
            }
            echo "</select>\n";
            if ($show_kw_value) {
                $tmp_value = '';
                if (isset($_SESSION['form_data']['new_kw_entryval_' . $type_obj . $cpt_kw])) {
                    $tmp_value = $_SESSION['form_data']['new_kw_entryval_' . $type_obj . $cpt_kw];
                }
                echo "<br />\n";
                echo '<input type="text" name="new_kw_entryval_' . $type_obj . $cpt_kw . '" ' . 'value="' . $tmp_value . '" />' . "\n";
            }
            echo '<div id="' . $obj_id_ajax . '"></div>' . "\n";
        } else {
            //
            // Sub-keyword group(s), since no top-level keywords
            //
            $sub_kwgs = get_subgroups_in_group_id($kwg['id_group']);
            if (count($sub_kwgs)) {
                echo '<input type="hidden" name="nop_kwg_' . $type_obj . '_id[]" value="' . $kwg['id_group'] . '" />' . "\n";
                $obj_id_ajax = 'kw_' . create_random_password(15, time());
                $sel_id = 'nop_kwg_' . $type_obj . $cpt_kw;
                $sel_name = 'nop_keyword_' . $type_obj . '_value[]';
                echo "<select id=\"{$sel_id}\" name=\"{$sel_name}\" " . "onchange=\"getKeywordInfo('get_kwg_in', this.value, '{$type_obj}', {$id_obj}, 0, '{$obj_id_ajax}')\"" . '>';
                echo '<option value="">' . '' . "</option>\n";
                foreach ($sub_kwgs as $sg) {
                    echo '<option value="' . $sg['name'] . '">' . _T(remove_number_prefix($sg['title'])) . "</option>\n";
                }
                echo "</select>\n";
                echo '<div id="' . $obj_id_ajax . '"></div>' . "\n";
            }
            echo '<div id="keywords_in_group_data' . $kwg['id_group'] . '"></div>' . "\n";
        }
        echo "</td>\n";
        echo "</tr>\n";
        $cpt_kw++;
    }
}
Ejemplo n.º 5
0
function show_kwg_info($kwg, $level = 0)
{
    // test ac-admin?
    $suggest = $kwg['suggest'];
    echo '<a name="' . $kwg['name'] . '"></a>' . "\n";
    echo "<fieldset class='info_box'>\n";
    echo "<div class='prefs_column_menu_head'>";
    echo _T($kwg['title']);
    // Applies to: show only if not sub-kwg, because otherwise redundant info
    if (!$level) {
        if ($kwg['type'] != 'system' && $kwg['type'] != 'contact') {
            echo " - " . _Ti('keywords_input_type') . _T('keywords_input_type_' . $kwg['type']);
        }
    }
    if ($kwg['ac_author'] != 'Y') {
        echo ' ' . _T('keywords_info_kwg_hidden');
    }
    echo "</div>\n";
    $kw_all = get_keywords_in_group_id($kwg['id_group'], false);
    if (count($kw_all)) {
        $cpt_kw = 0;
        echo "<ul class='wo_blt'>\n";
        echo '<table border="0" align="center" class="tbl_usr_dtl" width="100%">' . "\n";
        foreach ($kw_all as $key => $kw) {
            $css = ' class="tbl_cont_' . ($cpt_kw % 2 ? "dark" : "light") . '" ';
            // echo '<li>';
            echo "<tr>\n";
            // Keyword name
            echo "<td width='80%' {$css}>";
            if ($suggest == $kw['name']) {
                echo "<b>";
            }
            echo "<a href='?action=edit_keyword&amp;id_keyword=" . $kw['id_keyword'] . "' class='content_link'>" . _T(remove_number_prefix($kw['title'])) . "</a>";
            if ($suggest == $kw['name']) {
                echo "</b>";
            }
            echo "</td>";
            // Hidden kw?
            echo "<td {$css}>";
            if ($kw['ac_author'] != 'Y') {
                echo _T('keywords_info_kw_hidden');
            }
            echo "</td>";
            echo "</tr>\n";
            // echo "</li>\n";
            $cpt_kw++;
        }
        echo "</table>\n";
        echo "</ul>\n";
    }
    //
    // Sub-groups (recursive)
    //
    if ($kwg['type'] != 'system' && $kwg['type'] != 'contact') {
        $sub_kwgs = get_subgroups_in_group_id($kwg['id_group']);
        foreach ($sub_kwgs as $skwg) {
            show_kwg_info($skwg, $level + 1);
        }
    }
    //
    // Buttons
    //
    echo '<p>';
    if ($kwg['ac_admin']) {
        echo '<a class="edit_lnk" href="keywords.php?action=edit_group&amp;id_group=' . $kwg['id_group'] . '">' . _T('keywords_button_kwg_edit') . '</a>';
    }
    // New keyword
    if ($kwg['type'] != 'contact') {
        echo ' <a class="edit_lnk" href="keywords.php?action=edit_keyword&amp;id_keyword=0&amp;' . 'id_group=' . $kwg['id_group'] . '">' . _T('keywords_button_kw_new') . '</a>';
    }
    // New sub-group
    if ($kwg['type'] != 'system' && $kwg['type'] != 'contact') {
        echo ' <a class="edit_lnk" href="keywords.php?action=edit_group&amp;id_group=0&amp;' . 'id_parent=' . $kwg['id_group'] . '">' . _T('keywords_button_subkwg_new') . '</a>';
    }
    echo "</p>\n";
    echo "</fieldset>\n";
}