예제 #1
0
 /**
  * Получение массива дочерних элементов для панели администрирования
  * @param $table
  * @param $parent
  * @param int $page_num
  * @param string $sort
  * @param string $sort_type
  * @return array
  */
 public function getAdminChildren($table, $parent = 0, $page_num = 1, $sort = '', $sort_type = 'ASC')
 {
     $count = '';
     $query = 'CALL get_tree_table_children_rows_group_names(:current_table, :group_table, :parent_id, :group_id, :sort, :sort_type, :limit_field, :page_num, :active_field)';
     $params = array(':current_table' => $this->__getPrefixTableName($table), ':group_table' => $this->__getPrefixTableName($this->getTableGroupName()), ':parent_id' => (int) $parent, ':group_id' => (int) $this->getGroup(), ':sort' => $sort, ':sort_type' => $sort_type, ':limit_field' => $this->getLimit(), ':page_num' => $page_num, ':active_field' => 2);
     // Получение массива данных
     $data = PdoWrap::select($query, $params);
     // Получение общего количества записей
     $count = PdoWrap::selectCell('SELECT @count AS `count`');
     $this->setCount($count);
     return $data;
 }
예제 #2
0
 /**
  * Получение массива дочерних элементов для панели администрирования
  * @param string $table
  * @param int $parent
  * @param int $page_num
  * @param string $sort
  * @param int $sort_type
  * @return array
  */
 public function getAdminChildren($table, $parent = 0, $page_num = 1, $sort = '', $sort_type = 0)
 {
     $count = '';
     if ((int) $parent == 0) {
         $query = 'CALL get_table_all_rows_with_group(:current_table, :group_table, :sort, :sort_type, :table_limit, :page_num, :active_field)';
         $params = array(':current_table' => $this->__getPrefixTableName($table), ':group_table' => $this->__getPrefixTableName($this->getTableGroupName()), ':sort' => $sort, ':sort_type' => $sort_type, ':table_limit' => $this->getLimit(), ':page_num' => $page_num, ':active_field' => 2);
         // Получение массива данных
         $data = PdoWrap::select($query, $params);
         // Получение общего количества записей
         $count = PdoWrap::selectCell('SELECT @count AS `count`');
         $this->setCount($count);
         return $data;
     } else {
         return $this->getRows($table, 'group_id', $parent, $sort, $sort_type, $page_num, $this->getLimit(), 2);
     }
 }
예제 #3
0
파일: redirects.php 프로젝트: klimjr/cms
//if ($_SERVER['REQUEST_URI'] == '') $re = '';
//if ($_SERVER['REQUEST_URI'] == '') $re = '';
if (preg_match('/^\\/novosti\\/(\\d+)-([^\\/]+)\\/$/i', $_SERVER['REQUEST_URI'], $alias)) {
    if (isset($alias[2])) {
        $re = '/novosti/' . $alias[2] . '/';
    }
}
if (strstr($_SERVER['REQUEST_URI'], '/kukhni/') || strstr($_SERVER['REQUEST_URI'], '/mebel/')) {
    $tmp = explode('/', $_SERVER['REQUEST_URI']);
    array_pop($tmp);
    $alias = end($tmp);
    $query = 'SELECT `to_url` FROM `' . PREF . 'redirect_urls` WHERE `from_url` = :url';
    $check_redirect = PdoWrap::selectCell($query, array(':url' => $_SERVER['REQUEST_URI']));
    if ($check_redirect != '') {
        $re = $check_redirect;
    } else {
        $query = 'SELECT CONCAT(`g`.`link`, `i`.`alias`, ".html") AS `link` FROM `cms_catalog_items` `i` INNER JOIN `cms_catalog_groups` `g` ON `g`.`id` = `i`.`group_id` INNER JOIN `zkymf_zoo_item` `z` ON `z`.`id` = `i`.`old_id` WHERE `z`.`alias` = :url';
        $params = array(':url' => $alias);
        $check = PdoWrap::selectCell($query, $params);
        if ($check != "" && $check != $_SERVER['REQUEST_URI']) {
            $query = 'INSERT INTO `' . PREF . 'redirect_urls` (`from_url`, `to_url`) VALUES (:from_url, :to_url)';
            PdoWrap::execute($query, array(':from_url' => $_SERVER['REQUEST_URI'], ':to_url' => $check));
            $re = $check;
        }
    }
}
if ($re != '') {
    header("HTTP/1.1 301 Moved Permanently");
    header('location: ' . $re);
    exit;
}
예제 #4
0
파일: class.Text.php 프로젝트: klimjr/cms
 /**
  * обратная Транслитерация строк.
  * @param string $value
  * @return string
  */
 static function untransliterate($value)
 {
     $query = 'CALL get_untransliterate(:value_field)';
     $params = array(':value_field' => $value);
     $data = PdoWrap::selectCell($query, $params);
     if (isset($data) && !empty($data)) {
         return $data;
     } else {
         return $value;
     }
 }
예제 #5
0
 /**
  * Добавление записи в таблицу
  * @param string $table
  * @param array $data
  * @param int $parent
  * @return int|array
  */
 public function insertTableRow($table, $data, $parent = 0)
 {
     // Определяем идентификатор родителя
     if ($parent == 0) {
         $this->setParent($this->getRootId());
     } else {
         $this->setParent($parent);
     }
     // Загрузка файлов
     $files = Files::loadFiles();
     $data_keys = array_keys($data);
     if (is_array($files) && !empty($files)) {
         foreach ($files as $key => $values) {
             if (in_array($key, $data_keys) && $values['error'] == '') {
                 $data[$key] = $values['name'];
             }
         }
     }
     // Проверяем существует ли процедура
     if (!$this->__storedProcedureCheck($table . '_insert')) {
         // Если процедуры не существует пользуемся генератором процедур
         $this->__storedProcedureGeneration($table, 'insert');
     }
     $tree_branches = $this->getNodeInfo($table, $this->getParent());
     if ($this->getParent() > 0) {
         // Обновляем записи дерева
         $query = 'CALL update_tree_branches_before_insert(:current_table, :field_right)';
         $params = array(':current_table' => $this->__getPrefixTableName($table), ':field_right' => $tree_branches['tree_right']);
         PdoWrap::execute($query, $params);
         // Получаем данные для новой ветви
         $tree_branches['tree_left'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] : 0;
         $tree_branches['tree_right'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] + 1 : 1;
         $tree_branches['tree_level'] = isset($tree_branches['tree_level']) ? $tree_branches['tree_level'] + 1 : 1;
     } else {
         // Получаем данные для новой ветви
         $tree_branches['tree_left'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] + 1 : 0;
         $tree_branches['tree_right'] = isset($tree_branches['tree_right']) ? $tree_branches['tree_right'] + 2 : 1;
         $tree_branches['tree_level'] = isset($tree_branches['tree_level']) ? $tree_branches['tree_level'] : 1;
     }
     $query = 'CALL `' . $table . '_insert`(';
     $params = array();
     foreach ($data as $key => $value) {
         $query .= ':' . $key . ',';
         if (in_array($key, array_keys($tree_branches))) {
             $params[':' . $key] = $tree_branches[$key];
         } else {
             $params[':' . $key] = $value;
         }
     }
     $query = substr($query, 0, -1) . ')';
     $id = PdoWrap::selectCell($query, $params);
     // Логирование оперции
     $this->tableLog(PREF . $table, $id, "1");
     expSitemapAll();
     return (int) $id;
 }
예제 #6
0
 /**
  * Вывод шаблона
  * @param $template
  */
 public function displayAndCach($template)
 {
     $cache_id = null;
     $current_data = System_Settings::getCurrentData();
     if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '') {
         $query = 'CALL insert_cach_id(:link, :template, :table_name, :table_id)';
         $params = array(':link' => $_SERVER['REQUEST_URI'], ':template' => $template, ':table_name' => isset($current_data['table']) ? $current_data['table'] : NULL, ':table_id' => isset($current_data['id']) ? $current_data['id'] : NULL);
         $cache_id = PdoWrap::selectCell($query, $params);
     }
     parent::display($template, $cache_id);
 }
예제 #7
0
 /**
  * Получение сообщений
  * @param int $from_user
  * @param int $to_user
  * @param int $page_num
  * @param string $sort_field
  * @param int $sort_type
  * @return array
  */
 public function getMessages($from_user = 0, $to_user = 0, $page_num = 1, $sort_field = 'date', $sort_type = 0)
 {
     $query = 'CALL get_user_messages(:from_user,:to_user,:table_limit,:table_page,:sort_field,:sort_type)';
     $params = array('from_user' => (int) $from_user, 'to_user' => (int) $to_user, 'table_limit' => (int) $this->getLimit(), 'table_page' => (int) $page_num, 'sort_field' => $sort_field, 'sort_type' => (int) $sort_type);
     $data = PdoWrap::select($query, $params);
     // Получение общего количества записей
     $count = PdoWrap::selectCell('SELECT @count AS `count`');
     $this->setCountRows($count);
     return $data;
 }
예제 #8
0
 /**
  * Получение массива дочерних альбомов
  * @param $parent
  * @param int $page_num
  * @param string $sort
  * @param string $sort_type
  * @return array
  */
 public function getChildrenAlbums($parent, $page_num = 1, $sort = '', $sort_type = 'ASC')
 {
     $count = '';
     $query = 'CALL get_gallery_children_albums(:parent_id, :sort, :sort_type, :limit_field, :page_num)';
     $params = array(':parent_id' => (int) $parent, ':sort' => $sort, ':sort_type' => $sort_type, ':limit_field' => $this->base->getLimit(), ':page_num' => $page_num);
     // Получение массива данных
     $data = PdoWrap::select($query, $params);
     // Получение общего количества записей
     $count = PdoWrap::selectCell('SELECT @count AS `count`');
     $this->base->setCount($count);
     return $data;
 }
예제 #9
0
 /**
  * Получение списка записей для таблиц не имеющих родителя
  * @param int $page
  * @param string $sort
  * @param int $sort_type
  * @return array
  */
 public function getTableList($page = 1, $sort = '', $sort_type = 0)
 {
     $query = 'CALL get_table_list(:table_name,:table_limit,:table_page,:sort_field,:sort_type)';
     $params = array(':table_name' => $this->getTable(), ':table_limit' => $this->getLimit(), ':table_page' => $page, ':sort_field' => $sort, ':sort_type' => $sort_type);
     // Получение массива данных
     $data = PdoWrap::select($query, $params);
     // Получение общего количества записей
     $count = PdoWrap::selectCell('SELECT @count AS `count`');
     $this->setCountRows($count);
     return $data;
 }
예제 #10
0
파일: class.Base.php 프로젝트: klimjr/cms
 /**
  * Поиск по любым таблицам
  * @param $table
  * @param $search
  * @param $parent
  * @param int $page_num
  * @param string $sort
  * @param string $sort_type
  * @param int $active
  * @return array
  */
 public function searchAllTables($table, $search, $parent, $page_num = 1, $sort = '', $sort_type = '', $active = 2)
 {
     // Название процедуры для поиска
     $proc_name = 'search_by_' . $table;
     // Проверяем существование процедуры поиска по таблице
     if (!$this->__storedProcedureCheck($proc_name)) {
         // Генерация процедуры для поиска
         $this->__generateSearchStoredProc($table);
     }
     $query = 'CALL `' . $proc_name . '`(:group_id,:sort,:sort_type,:table_limit,:page_num,:search_query,:active_field);';
     $params = array(':group_id' => (int) $parent, ':sort' => $sort, ':sort_type' => $sort_type, ':table_limit' => $this->getLimit(), ':page_num' => $page_num, ':search_query' => '%' . $search . '%', ':active_field' => $active);
     $data = PdoWrap::select($query, $params);
     $count = PdoWrap::selectCell('SELECT @count');
     $this->setCount($count);
     return $data;
 }
예제 #11
0
 /**
  * Добавление записи в таблицу
  * @param string $table
  * @param array $data
  * @param int $parent
  * @return int
  */
 public function insertTableRow($table, $data, $parent = 0)
 {
     // Загрузка файлов
     $files = Files::loadFiles();
     $data_keys = array_keys($data);
     if (is_array($files) && !empty($files)) {
         foreach ($files as $key => $values) {
             if (in_array($key, $data_keys) && $values['error'] == '') {
                 $data[$key] = $values['name'];
             }
         }
     }
     // Проверяем существует ли процедура
     if (!$this->__storedProcedureCheck($table . '_insert')) {
         // Если процедуры не существует пользуемся генератором процедур
         $this->__storedProcedureGeneration($table, 'insert');
     }
     $query = 'CALL ' . $table . '_insert(';
     $params = array();
     foreach ($data as $key => $value) {
         $query .= ':' . $key . ',';
         $params[':' . $key] = $value;
     }
     $query = substr($query, 0, -1) . ')';
     $id = PdoWrap::selectCell($query, $params);
     // Логирование оперции
     $this->tableLog(PREF . $table, $id, "1");
     expSitemapAll();
     return (int) $id;
 }
예제 #12
0
 /**
  * проверяем существование записи
  * @param string $xml_id
  * @param string $article
  * @return int|null
  */
 public function checkCatalogItem($xml_id = '', $article = '')
 {
     $query = 'CALL check_catalog_item(:xml_id, :article)';
     $params = array(':xml_id' => $xml_id, ':article' => $article);
     return PdoWrap::selectCell($query, $params);
 }