<?php
namespace admin_application;
class NevigateDB {
public static function lastPidNevigate($lng = false, $return_key = false) {
$db_where = "WHERE lng='$lng' ORDER BY nevigate_pid DESC LIMIT 0,1";
$db_table = ESPCMS_DB_PREFIX . 'nevigate';
$talbe_field_array = espcms_field_out($db_table, false);
$read_info = espcms_db_read($db_table, $db_where, $talbe_field_array);
if (!$read_info) {
return false;
}
return !$return_key ? $read_info : $read_info[$return_key];
}
public static function nevigat_install($nevigate_name, $nevigate_linkid, $lng, $nevigate_modul = 'article', $nevigate_ismenu = 1, $nevigate_iswap = 0, $nevigate_isaccessory = 0) {
global $espcms_db_cache;
if (!espcms_ismatches($nevigate_linkid) || !$nevigate_linkid || !$nevigate_name) {
return false;
}
if (!$lng || !preg_match("/^[a-z0-9]{2,50}$/i", $lng)) {
return false;
}
if (!$nevigate_modul || !preg_match("/^[\w]{2,50}$/i", $nevigate_modul)) {
return false;
}
$db_table = ESPCMS_DB_PREFIX . "nevigate";
$nevigate_list_cache_key = ESPCMS_CACHE_DBLIST_NAME . ESPCMS_DB_PREFIX . 'nevigate_';
$talbe_field_array = espcms_field_out($db_table, true);
$nevigate_read = self::get_nevigat_view($nevigate_linkid, $nevigate_modul);
if ($nevigate_read['nevigate_id']) {
if ($nevigate_read['nevigate_ismenu'] != $nevigate_ismenu || $nevigate_read['nevigate_isaccessory'] != $nevigate_isaccessory || $nevigate_read['nevigate_iswap'] != $nevigate_iswap) {
$nevigate_ismenu = espcms_ismatches($nevigate_ismenu) ? $nevigate_ismenu : $nevigate_read['nevigate_ismenu'];
$nevigate_iswap = espcms_ismatches($nevigate_iswap) ? $nevigate_iswap : $nevigate_read['nevigate_iswap'];
$nevigate_isaccessory = espcms_ismatches($nevigate_isaccessory) ? $nevigate_isaccessory : $nevigate_read['nevigate_isaccessory'];
$update_set = "nevigate_iswap=$nevigate_iswap,nevigate_isaccessory=$nevigate_isaccessory,nevigate_ismenu=$nevigate_ismenu";
espcms_db_update_set_save($db_table, "WHERE nevigate_linkid=$nevigate_linkid AND nevigate_modul='$nevigate_modul'", $update_set);
$espcms_db_cache->cacheDEL($nevigate_list_cache_key, true);
}
$install_id = $nevigate_linkid;
} else {
$nevigate_pid = self::lastPidNevigate($lng, 'nevigate_pid');
$install_post = array();
$install_post['nevigate_pid'] = espcms_ismatches($nevigate_pid) ? $nevigate_pid + 1 : 0;
$install_post['lng'] = $lng;
$install_post['nevigate_name'] = $nevigate_name;
$install_post['nevigate_linkid'] = $nevigate_linkid;
$install_post['nevigate_modul'] = $nevigate_modul;
$install_post['nevigate_ismenu'] = espcms_ismatches($nevigate_ismenu) ? $nevigate_ismenu : 1;
$install_post['nevigate_iswap'] = espcms_ismatches($nevigate_iswap) ? $nevigate_iswap : 0;
$install_post['nevigate_isaccessory'] = espcms_ismatches($nevigate_isaccessory) ? $nevigate_isaccessory : 0;
$install_array[] = espcms_post($install_post, $talbe_field_array, true, true);
if (is_array($install_array)) {
$install_id = espcms_db_install_array_save($db_table, $install_array);
$espcms_db_cache->cacheDEL($nevigate_list_cache_key, true);
} else {
$install_id = false;
}
}
return $install_id;
}
public static function nevigat_del($nevigate_linkid, $nevigate_modul = 'article') {
global $espcms_db_cache;
if (!espcms_ismatches($nevigate_linkid) || !$nevigate_linkid) {
return false;
}
if (!$nevigate_modul || !preg_match("/^[\w]{2,50}$/i", $nevigate_modul)) {
return false;
}
$db_table = ESPCMS_DB_PREFIX . "nevigate";
$nevigate_list_cache_key = ESPCMS_CACHE_DBLIST_NAME . ESPCMS_DB_PREFIX . 'nevigate_';
$db_where = "nevigate_linkid=$nevigate_linkid AND nevigate_modul='$nevigate_modul'";
$read = self::get_nevigat_view($nevigate_linkid, $nevigate_modul);
if (!$read) {
return false;
}
$delid = espcms_db_delall($db_table, $db_where);
$espcms_db_cache->cacheDEL($nevigate_list_cache_key . $read['lng'], true);
return $delid;
}
public static function get_nevigat_view($nevigate_linkid = 0, $nevigate_modul = 'article', $return_key = false) {
if (!espcms_ismatches($nevigate_linkid) || !preg_match("/^[\w]{2,50}$/i", $nevigate_modul)) {
return false;
}
$db_where = "WHERE nevigate_linkid=$nevigate_linkid AND nevigate_modul='$nevigate_modul'";
$db_table = ESPCMS_DB_PREFIX . 'nevigate';
$talbe_field_array = espcms_field_out($db_table, false);
$read_info = espcms_db_read($db_table, $db_where, $talbe_field_array);
if (!$read_info) {
return false;
}
return !$return_key ? $read_info : $read_info[$return_key];
}
public static function get_nevigat_lng_view($lng = false, $nevigate_modul = 'article', $return_key = false) {
if (!$lng || !preg_match("/^[\w]{2,50}$/i", $nevigate_modul)) {
return false;
}
$db_where = "WHERE lng='$lng' AND nevigate_modul='$nevigate_modul'";
$db_table = ESPCMS_DB_PREFIX . 'nevigate';
$talbe_field_array = espcms_field_out($db_table, false);
$read_info = espcms_db_read($db_table, $db_where, $talbe_field_array);
if (!$read_info) {
return false;
}
return !$return_key ? $read_info : $read_info[$return_key];
}
public static function get_nevigate_id_view($nevigate_id = 0, $return_key = false) {
if (!espcms_ismatches($nevigate_id) || !$nevigate_id) {
return false;
}
$db_where = "WHERE nevigate_id=$nevigate_id";
$db_table = ESPCMS_DB_PREFIX . 'nevigate';
$talbe_field_array = espcms_field_out($db_table, false);
$read_info = espcms_db_read($db_table, $db_where, $talbe_field_array);
if (!$read_info) {
return false;
}
return !$return_key ? $read_info : $read_info[$return_key];
}
}