Сторінки, статті та новини
Інструменти та плагіни
Заготовка заголовок


Опис як приклад заготовки. Приклад текстового контенту для подальшої кастомізації шаблону "Index36".

Редагувати шаблон можна на власний розсуд. Якщо у вас немає часу або знань – завжди можна замовити адаптацію шаблону, написавши мені через GitHub або особисті повідомлення на публічній сторінці маркетплейсу цифрових товарів.

22.08.2025 06:14

Решение, пользовательское.

файл /plugins/autoalias2/inc/autoalias2.functions.php 

меняем его содержимое на 

<?php
/**
 * AutoAlias functions for generating URL-friendly aliases from page titles
 *
 * @package AutoAlias
 * @copyright (c) Cotonti Team
 * @license https://github.com/Cotonti/Cotonti/blob/master/License.txt
 * @version 2.0.0
 * @author Cotonti Team
 */

// Проверяем, определена ли константа COT_CODE, иначе прерываем выполнение
defined('COT_CODE') or die('Wrong URL');

// Подключаем основной файл модуля page для работы с его функциями
require_once cot_incfile('page', 'module');

/**
 * Converts a page title into a URL-friendly alias
 *
 * @param string $title The page title to convert
 * @param int $id Page ID, used for prepending to alias if configured
 * @param bool $duplicate Indicates if a duplicate alias was detected
 * @return string The generated alias
 */
function autoalias2_convert($title, $id = 0, $duplicate = false)
{
    // Объявляем глобальные переменные для конфигурации и таблиц транслитерации
    global $cfg, $cot_translit, $cot_translit_custom;

    // Проверяем, включена ли транслитерация и существует ли файл translit
    if ($cfg['plugin']['autoalias2']['translit'] && file_exists(cot_langfile('translit', 'core'))) {
        // Подключаем файл транслитерации для текущего языка
        include cot_langfile('translit', 'core');
        // Если определён пользовательский массив транслитерации, используем его
        if (is_array($cot_translit_custom)) {
            // Применяем пользовательскую транслитерацию через strtr
            $title = strtr($title, $cot_translit_custom);
        // Если есть стандартный массив транслитерации
        } elseif (is_array($cot_translit)) {
            // Принудительно приводим строку к UTF-8 для корректной обработки
            $title = mb_convert_encoding($title, 'UTF-8', mb_detect_encoding($title));
            // Применяем базовую транслитерацию через iconv для обработки нестандартных символов
            $title = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $title);
            // Дополнительно применяем замены из $cot_translit для украинских символов
            foreach ($cot_translit as $key => $val) {
                // Заменяем каждый символ или последовательность на соответствующий транслит
                $title = str_replace($key, $val, $title);
            }
        }
    }

    // Удаляем все символы, кроме букв, цифр, дефиса, подчеркивания и пробела
    $title = preg_replace('#[^\p{L}0-9\-_ ]#u', '', $title);
    // Заменяем пробелы на разделитель, указанный в конфигурации
    $title = str_replace(' ', $cfg['plugin']['autoalias2']['sep'], $title);

    // Приводим строку к нижнему регистру, если включена опция lowercase
    if ($cfg['plugin']['autoalias2']['lowercase']) {
        $title = mb_strtolower($title);
    }

    // Если включено добавление ID в начало и ID не пустой
    if ($cfg['plugin']['autoalias2']['prepend_id'] && !empty($id)) {
        // Добавляем ID в начало алиаса с разделителем
        $title = $id . $cfg['plugin']['autoalias2']['sep'] . $title;
    // Если обнаружен дубликат алиаса
    } elseif ($duplicate) {
        // Проверяем настройку обработки дубликатов
        switch ($cfg['plugin']['autoalias2']['on_duplicate']) {
            case 'ID':
                // Если ID не пустой, добавляем его в конец алиаса
                if (!empty($id)) {
                    $title .= $cfg['plugin']['autoalias2']['sep'] . $id;
                    break;
                }
            default:
                // В противном случае добавляем случайное число от 2 до 99
                $title .= $cfg['plugin']['autoalias2']['sep'] . rand(2, 99);
                break;
        }
    }

    // Возвращаем итоговый алиас
    return $title;
}

/**
 * Updates the alias for a specific page in the database
 *
 * @param string $title Page title to convert
 * @param int $id Page ID
 * @return string The generated alias
 */
function autoalias2_update($title, $id)
{
    // Объявляем глобальные переменные для конфигурации и базы данных
    global $cfg, $db, $db_pages;
    // Инициализируем флаг дубликата
    $duplicate = false;
    // Повторяем, пока есть дубликаты и не включено prepend_id
    do {
        // Генерируем алиас с учётом заголовка, ID и флага дубликата
        $alias = autoalias2_convert($title, $id, $duplicate);
        // Проверяем, существует ли такой алиас в базе для других страниц
        if (!$cfg['plugin']['autoalias2']['prepend_id']
            && $db->query("SELECT COUNT(*) FROM $db_pages WHERE page_alias = '$alias' AND page_id != $id")->fetchColumn() > 0) {
            // Если алиас занят, устанавливаем флаг дубликата
            $duplicate = true;
        } else {
            // Обновляем алиас в базе данных для указанного page_id
            $db->update($db_pages, array('page_alias' => $alias), "page_id = $id");
            // Сбрасываем флаг дубликата
            $duplicate = false;
        }
    } while ($duplicate && !$cfg['plugin']['autoalias2']['prepend_id']);
    // Возвращаем итоговый алиас
    return $alias;
}

 

2. должен быть файл по адресу: /lang/ua/translit.ua.lang.php

а нем код:

<?php
/**
 * Таблиця транслітерації ГОСТ 7.79-2000 / ISO-9, система Б
 * В порядку зменшення пріоритету при обробці
 */
global $cot_translit, $cot_translitb;
$cot_translit = array(
	'ці' => 'ci',
	'Ці' => 'Ci',
	'ЦІ' => 'CI',
	'це' => 'ce',
	'Це' => 'Ce',
	'ЦЕ' => 'CE',
	'ци' => 'cy',
	'Ци' => 'Cy',
	'ЦИ' => 'CY',
	'ц' => 'cz',
	'Ц' => 'Cz',
	'ч' => 'ch',
	'Ч' => 'Ch',
	'щ' => 'shh',
	'Щ' => 'Shh',
	'ш' => 'sh',
	'Ш' => 'Sh',
	'ж' => 'zh',
	'Ж' => 'Zh',
	'ї' => 'yi',
	'Ї' => 'Yi',
	'ю' => 'yu',
	'Ю' => 'Yu',
	'я' => 'ya',
	'Я' => 'Ya',
	'є' => 'ye',
	'Є' => 'Ye',
	'и' => 'y',
	'И' => 'Y',
	'ґ' => 'g',
	'Ґ' => 'G',
	'а' => 'a',
	'А' => 'A',
	'б' => 'b',
	'Б' => 'B',
	'в' => 'v',
	'В' => 'V',
	'г' => 'g',
	'Г' => 'G',
	'д' => 'd',
	'Д' => 'D',
	'е' => 'e',
	'Е' => 'E',
	'з' => 'z',
	'З' => 'Z',
	'і' => 'i',
	'І' => 'I',
	'й' => 'y',
	'Й' => 'Y',
	'к' => 'k',
	'К' => 'K',
	'л' => 'l',
	'Л' => 'L',
	'м' => 'm',
	'М' => 'M',
	'н' => 'n',
	'Н' => 'N',
	'о' => 'o',
	'О' => 'O',
	'п' => 'p',
	'П' => 'P',
	'р' => 'r',
	'Р' => 'R',
	'с' => 's',
	'С' => 'S',
	'т' => 't',
	'Т' => 'T',
	'у' => 'u',
	'У' => 'U',
	'ф' => 'f',
	'Ф' => 'F',
	'х' => 'x',
	'Х' => 'X',
	'ь' => '',
	'№' => '#'
);

/**
 * Зворотне перетворення
 */

$cot_translitb = array_flip($cot_translit);

/**
 * Додаємо апостроф, оскільки він транслітерується тільки в один бік
 */

$cot_translit['’'] = 'y';
$cot_translit['\''] = 'y';

 

 

 

 

 

Обліковий запис