>> Vizov dejstvij s elementami //-------------------------------------------------------------------------------------- if (isset($_GET['edit']) OR isset($_GET['apply'])){ return TEXTLIST::show_form(@$_GET['from'] ? $_GET['from'] : $_GET['edit']); } else { TEXTLIST::$marked_item = @$_GET['from']; return TEXTLIST::show_list($_CFG['current_category']['id']); } } //====================================================================================== class TEXTLIST { static $template = ""; static $sql_table = ""; static $marked_item = ""; static $set_new_to = "up"; //====================================================================================== /** * Funkcija pokaza spiska dokumentov v ukazannoj kategorii * * @param integer $category_id */ function show_list($category_id) { global $_CFG; include_once ($_CFG['path_to_cms'].'core/libraries/my_list.class/extensions/_with_edit.php'); $my_list = new _with_edit(); $my_list->sql_table = self::$sql_table; $my_list->sql_where = "category_id=".$category_id; $my_list->nosort = true; $my_list->sql_order = "sort_id"; $my_list->sql_direction = "0"; $my_list->unique_id = "textlist"; $my_list->template_table = file_get_contents(dirname(__FILE__).'/_list_template_table.tpl'); $my_list->style_where["id"]["condition"] = "=='".self::$marked_item."'"; $my_list->style_where["id"]["insert"] = ' style="background:#ffe8c0"'; $my_list->insert_cell("id","ID", null); $my_list->insert_cell("ins_title", _TXL_TITLE_, "_textlist_cut_title", "nowrap"); $my_list->insert_cell("doc_url", "URL", null, "nowrap"); $my_list->insert_cell("content", "Content", "_textlist_show_content", "width='100%'"); $my_list->insert_cell("created", _TXL_CREATED_, "_textlist_get_datetime"); $my_list->insert_cell("owner", _TXL_OWNER_, "_textlist_get_owner"); $my_list->insert_cell("active", _TXL_ISACTIVE_, "_textlist_set_active", "onclick='' nowrap"); $my_list->insert_cell("sort_id", "Sort", '_textlist_add_bullets', "onclick='' nowrap"); return $my_list->show_table(); } function show_list_for_crosslinks($category_id) { global $_CFG; include_once ($_CFG['path_to_cms'].'core/libraries/my_list.class/extensions/_with_select.php'); $my_list = new _with_select(); $my_list->sql_table = self::$sql_table; $my_list->sql_where = "category_id=".$category_id; $my_list->nosort = true; $my_list->sql_order = "sort_id"; $my_list->sql_direction = "0"; $my_list->insert_cell("id","ID", null); $my_list->insert_cell("ins_title", _TXL_TITLE_, "_textlist_cut_title", "nowrap"); $my_list->insert_cell("content", "Content", "_textlist_show_content", "width='100%'"); return $my_list->show_table().' '; } //====================================================================================== // [[[ Funkcii otobrazhenija formi /** * Funckija vozvrashajet formu redaktirovanija dokumenta * * @param integer $document_id * @param string $ERROR - esli nuzhno pokazatj chto bila oshibka v forme */ function show_form($document_id, $ERROR = null) { global $_CFG; // 1. Dlja generacii formi iz shablona mi ispolzujem standartnij insite klass - wbg_parse_template include_once($_CFG['path_to_cms'].'core/libraries/wbg_parse_template.class/wbg_parse_template.class.php'); // 2. Poluchajem dannije elementa $element_data = mysql_fetch_assoc(mysql_query("SELECT * FROM ".self::$sql_table." WHERE id='".$document_id."'")); if (isSet($element_data['content'])){ // Redaktirovanije elementa $content = unserialize($element_data['content']); $element_data['doc_url'] = addslashes($element_data['doc_url']); $element_data['ins_title'] = addslashes($element_data['ins_title']); } else { $content = array(); if ($document_id == 0){ // Esli eto dobavlenije novogo elementa $element_data['active'] = 1; $element_data['doc_url'] = ""; $element_data['ins_title'] = ""; } } // 3. Generim shapku dokumenta $header ='
'._TXL_ACTIVE_.'
'._TXL_NOSAUKUMS_.' ('._TXL_REDZTIKAIINS_.')
URL (if needed)
'; // 4. Generim soderzhanije formi $tpl = new wbg_parse_template ($content); $tpl->with_css = true; $OUT_form = '
'; $OUT_form .= ($ERROR ? '
'.$ERROR.'
' : ''); $OUT_form .= $header; $OUT_form .= self::_get_buttons(); $OUT_form .= $tpl->make_parsing(file_get_contents(self::$template)); $OUT_form .= ''; $OUT_form .= '
'; $OUT_form .= ' '; return $OUT_form; } function _get_buttons($mode = 0){ return '
'; } // ]]] Funkcii otobrazhenija formi //====================================================================================== // [[[ Dejstvija s dokumentami function save_document($document_id, $POST, $category_id) { global $_CFG; // Dlja sohrananije nuzhno podgruzitj parsetemplate chtobi vse elementi bili bi nomrmalno obrabotani // Posle processinga vse dannije ljagut v massiv include_once($_CFG['path_to_cms'].'core/libraries/wbg_parse_template.class/wbg_parse_template.class.php'); $tpl = new wbg_parse_template (); $tpl->get_elements_before_save(file_get_contents(self::$template)); $tpl->serialize_data = true; $save_array = $tpl->get_data_for_save($_POST, $ERROR); // Teperj gotovim SQL stroku dlja shohranenija dannih $sql_string = " category_id = '".$category_id."', ins_title = '".$_POST['ins_title']."', doc_url = '".$_POST['doc_url']."', content = '".$save_array."', active = '".($_POST['ins_active']?1:0)."', updated = NOW(), owner = '".$_CFG['user']['id']."'"; if ($document_id == 0 ){ // Dobavlenije novoij zapisi $sql_string .= ",created='".time()."'"; if (self::$set_new_to == "up"){ mysql_query("UPDATE ".self::$sql_table." SET sort_id = sort_id + 1 WHERE category_id = '".$category_id."'"); $sort_id = 1; } else { $sort_id = mysql_result(mysql_query("select max(sort_id) from ".self::$sql_table." where category_id = '".$category_id."'"),0,0)+1; } $sql_string .= ",sort_id='".$sort_id."'"; $language = mysql_result(mysql_query("select language from wbg_tree_categories where id = '".$category_id."'"),0,0); $sql_string .= ",lang='".$language."'"; mysql_query("INSERT INTO ".self::$sql_table." SET ".$sql_string); $_GET['from'] = mysql_insert_id(); // Posle sozdanija sohranjajem dannije v log fail $module_id = mysql_result(mysql_query("SELECT input_module FROM wbg_tree_categories WHERE id='".$category_id."'"),0,0); WBG::save_to_log(1, $_POST['ins_title'], 4, $category_id, $module_id); } else { mysql_query("UPDATE ".self::$sql_table." SET ".$sql_string." WHERE id = '".$document_id."'"); // Posle sozdanija sohranjajem dannije v log fail $module_id = mysql_result(mysql_query("SELECT input_module FROM wbg_tree_categories WHERE id=".$_CFG['current_category']['id']),0,0); WBG::save_to_log(2, $_POST['ins_title'], 4, $category_id , $module_id); } } /** * Kopirujet dokumenti iz odnoj kategorii v druguju * * @param array $documents * @param integer $category_id -> Nomer kategorii kuda kopirovatj */ function copy_documents($documents = array(), $category_id){ global $_CFG; $category_data = mysql_fetch_assoc(mysql_query("SELECT * FROM wbg_tree_categories WHERE id='".$category_id."'")); $last_sort_id = mysql_result(mysql_query("SELECT max(sort_id) FROM ".self::$sql_table." WHERE category_id='".(int)$category_id."'"),0,0); foreach ($documents as $value){ $sql_string = ''; if (self::$set_new_to == "up"){ mysql_query("UPDATE ".self::$sql_table." SET sort_id = sort_id + 1 WHERE category_id = '".$category_id."'"); $last_sort_id = 1; } else { $last_sort_id ++; } $data = mysql_fetch_assoc(mysql_query("SELECT * FROM ".self::$sql_table." WHERE id='".$value."'")); unset($data['id']); $data['category_id'] = (int)$category_id; $data['owner'] = $_CFG['user']['id']; $data['created'] = time(); $data['sort_id'] = $last_sort_id ; $data['lang'] = $category_data['language']; foreach ($data as $key2=>$value2){ $sql_string[] = $key2."='".mysql_real_escape_string($value2)."'"; } $sql_string = "INSERT INTO ".self::$sql_table." SET ".implode(",",$sql_string); mysql_query($sql_string); if (mysql_error()){echo "
".mysql_error()."
FILE:".__FILE__."
LINE:".__LINE__."
QUERY: ".$sql_string."
";} WBG::save_to_log(5, $data['ins_title'], 4, (int)$_POST['list_value']); } } function move_documents($documents = array(), $category_id) { global $_CFG; $last_sort_id = mysql_result(mysql_query("SELECT max(sort_id) FROM ".self::$sql_table." WHERE category_id='".(int)$category_id."'"),0,0); foreach ($documents as $value){ if (self::$set_new_to == "up"){ mysql_query("UPDATE ".self::$sql_table." SET sort_id = sort_id + 1 WHERE category_id = '".$category_id."'"); $last_sort_id = 1; } else { $last_sort_id ++; } $sql_string = "UPDATE ".self::$sql_table." SET category_id='".(int)$category_id."',sort_id=".($last_sort_id)." WHERE id='".$value."'"; mysql_query($sql_string); if (mysql_error()){echo "
".mysql_error()."
FILE:".__FILE__."
LINE:".__LINE__."
QUERY: ".$sql_string."
";} // Sohranjajem dannije o perenose $data = mysql_fetch_assoc(mysql_query("SELECT * FROM ".self::$sql_table." WHERE id='".$value."'")); WBG::save_to_log(4, $data['ins_title'], 4, (int)$_POST['list_value']); } } /** * Udalenije dokumentov * * @param array $documents * $documents[] = 1 * $documents[] = 122 */ function delete($documents = array()) { foreach ($_POST['chk_el'] as $value) { // Sohranjajem udalenija v log faile $document = mysql_fetch_assoc(mysql_query("SELECT ins_title FROM ".self::$sql_table." WHERE id='".$value."'")); WBG::save_to_log(3, $document['ins_title'], 4); mysql_query("DELETE FROM ".self::$sql_table." WHERE id='".$value."'"); } } /** * Peremeshajet element vverh ili vniz * * @param unknown_type $direction * @param unknown_type $item_to_move * @param unknown_type $actions_count */ function move_item($direction, $item_to_move, $actions_count = 1) { if ($direction){ $order = "DESC"; $znak = "<"; } else { $order = "ASC"; $znak = ">"; } for ($x = 0; $x < $actions_count; $x++){ $current_obj = mysql_fetch_assoc(mysql_query("SELECT id, sort_id, category_id FROM ".self::$sql_table." WHERE id=".$item_to_move)); $SQL_str = "SELECT id, sort_id FROM ".self::$sql_table." WHERE sort_id" . $znak . $current_obj['sort_id'] . " AND category_id=".$current_obj['category_id']." ORDER BY sort_id ".$order." LIMIT 1"; $other_obj = mysql_fetch_assoc(mysql_query($SQL_str)); if (!$other_obj) return ; mysql_query("UPDATE ".self::$sql_table." SET sort_id=".$other_obj['sort_id']." WHERE id=".$current_obj['id'].""); mysql_query("UPDATE ".self::$sql_table." SET sort_id=".$current_obj['sort_id']." WHERE id=".$other_obj['id'].""); } } } ?>