Алфавит под MSE 2.2

Mp3style

Эксперт
Сообщения
227
Реакции
27
Модуль для вывода запросов по алфавиту для старых версий движка.
Создаем в папке Core файл называем как хотите например bykva.php, содержимое снизу.
Код:
<?php

namespace liw\App;

if (!defined('MSE_INIT')) return;

// Кол-во запросов по букве
$count = 4000;

// Кеш
$cache = true; // true - включен || false - выключен

$queries = NULL;
  
$foul_query = isset($routes[2]) ? trim(strip_tags(urldecode($routes[2]))) : NULL;
if ($foul_query){
    $explode_query = explode('?_', $foul_query);
    $key = $MSE->clearQuery($explode_query[0]);
} else {
    die('Неверный URL');
}

$serverHostName = (isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : "");
$cacheKey = $serverHostName . "_" . md5($key . '_queries');

$cacheResults = false;
if ($cache){
    $cacheResults = Cache::checkCache($cacheKey);
}
      
if( $cacheResults ){
    $queries = json_decode($cacheResults, true);
} else {
    $sql = $conn->query("SELECT `query` FROM `queries` WHERE `index_key` = '{$key}' LIMIT 0,{$count}");
    for ($queries = array (); $row = $sql->fetch_assoc(); $queries[] = $row);
    if ($cache) {
        Cache::SetCache($cacheKey, $queries);
    }
}

if (!$queries){
    $ERROR = array(
        "title" => "Ошибка!",
        "message" => "К сожалению, у нас нет треков с таким индексом.!",
        "type" => "error",
        "header" => "HTTP/1.0 404 Not Found",
        "template" => NULL
    );
    $data['ERROR'] = $ERROR;
    $data['seo'] = array(
        'title' => "Ошибка!",
        'description' => "",
        'keywords' => "",
    );
    $MSE -> loadTemplate($smarty, 'error', $data);
    return;
}

$data['seo']['title'] = "Песни на букву «{$key}»";
$data['seo']['description'] = "Песни на букву «{$key}»";
$data['seo']['heading'] = "Песни на букву «{$key}»";
$data['queries'] = $queries;

# Загружаем шаблон
#-------------------------------
$MSE -> loadTemplate($smarty, $controller, $data);
В файл index.php подключаем модуль
# Запускаем нужный контроллер из списка зарегистрированных
$cores = array('search', 'main', 'ajax', 'download', 'page', 'genre', 'radio', 'musicset', 'тут название модуля (bykva.php)');


Создаем в шаблоне файл (Название как и модуль bykva.tpl
Содержимое берем с main.tpl
И вставляет контант часть
Код:
<ol class="abc__list">
   {foreach $queries as $queryObject}
   <li class="abc__item">
      <a class="pajax-link abc__link" href="/{$config.key}/{track->urlEncode link=($queryObject.query)}">{$queryObject.query|strtoupper}</a>
   </li>
   {/foreach}
</ol>
Ну и само собой в папке core.php
Файл сеарч пхп найти и заменить на то что снизу.
Код:
# Сохранить запрос в БД
#--------------------------------------

if ($config['collect_queries'] && !preg_match($system_config['stopRegex'], $query))
      {
         # Перевод запроса в нижний регистр при добавлении в базу
         $insert_query = ($config['to_lowercase']) ? mb_strtolower($query) : $query;
         $time = time();
         $indexKey = mb_substr($query, 0, 1);
         $sql = $conn->query("INSERT INTO `queries` (`query`, `last_date`, `index_key`) VALUES ('$insert_query', '$time', '$indexKey') ON DUPLICATE KEY UPDATE count = count+1, last_date = $time");
      }
Выполнить запрос к базе
Код:
query("ALTER TABLE `queries`  ADD `last_date` INT(10) NULL COMMENT 'Дата последнего поиска' AFTER `count`;");
 
Сверху