Ищу плагин форума для Osclass
Цитата: boris от 16.05.2025, 14:09Подскажите пожалуйста! Есть ли альтернатива платному плагину форума для Osclass? Купить его в данный момент невозможно, а бесплатных альтернатив я не слышал.
Подскажите пожалуйста! Есть ли альтернатива платному плагину форума для Osclass? Купить его в данный момент невозможно, а бесплатных альтернатив я не слышал.
Цитата: Сергей от 16.05.2025, 14:18Есть старый плагин, он официально распространялся на сайте Osclass org. Попробуйте использовать его, но это на ваш страх и риск. Кстати идея очень интересная, на буднях посмотрю его, возможно стоит им заняться, обновить.
Есть старый плагин, он официально распространялся на сайте Osclass org. Попробуйте использовать его, но это на ваш страх и риск. Кстати идея очень интересная, на буднях посмотрю его, возможно стоит им заняться, обновить.
Загруженные файлы:- Вам нужно войти, чтобы просматривать прикрепленные файлы..
Цитата: boris от 16.05.2025, 14:49В принципе подошло! С внешним видом конечно придется поработать, но в целом рабочий плагин.
Спасибо!
В принципе подошло! С внешним видом конечно придется поработать, но в целом рабочий плагин.
Спасибо!
Цитата: Bm716VN от 08.11.2025, 10:37Нужно дорабатывать. Попробовал платный плагин, скачал довольно старую версию, но работает. Проблема вскрылась сразу же после того как написал новую тему. Ссылка в виде ------------, не обрабатывается кириллица. Может кто нибудь помочь поправить?
Нужно дорабатывать. Попробовал платный плагин, скачал довольно старую версию, но работает. Проблема вскрылась сразу же после того как написал новую тему. Ссылка в виде ------------, не обрабатывается кириллица. Может кто нибудь помочь поправить?
Цитата: Сергей от 03.12.2025, 15:58Тут достаточно просто, вот мое решение:
В файле functions.php плагина находите комментарий:
// CREATE SLUG
это примерно строка 800, в зависимости от вашей версии плагина и заменяете функцию:
function frm_slug($text, $type = '') {
$text = trim($text);
$text = str_replace(' ', '-', $text);
$slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '', $text)));if($slug == '') {
if($type == 'board') {
$slug = __('board', 'forums');
} else if ($type == 'topic') {
$slug = __('topic', 'forums');
} else if ($type == 'user') {
$slug = __('user', 'forums');
}
}
return $slug;
}На нашу:
function frm_slug($text, $type = '') {
$text = trim($text);// Транслитерация кириллицы в латиницу
$transliteration = [
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd',
'е' => 'e', 'ё' => 'yo', 'ж' => 'zh', 'з' => 'z', 'и' => 'i',
'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't',
'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'ts', 'ч' => 'ch',
'ш' => 'sh', 'щ' => 'sch', 'ъ' => '', 'ы' => 'y', 'ь' => '',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D',
'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh', 'З' => 'Z', 'И' => 'I',
'Й' => 'Y', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N',
'О' => 'O', 'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T',
'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'Ts', 'Ч' => 'Ch',
'Ш' => 'Sh', 'Щ' => 'Sch', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '',
'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',
'ґ' => 'g', 'Ґ' => 'G', 'є' => 'ye', 'Є' => 'Ye',
'і' => 'i', 'І' => 'I', 'ї' => 'yi', 'Ї' => 'Yi',
'’' => '', '`' => ''
];// Заменяем кириллицу
$text = strtr($text, $transliteration);// Заменяем пробелы на дефисы
$text = str_replace(' ', '-', $text);// Удаляем все недопустимые символы (оставляем только латиницу, цифры и дефисы)
$slug = preg_replace('/[^a-zA-Z0-9\-]+/', '', $text);// Удаляем множественные дефисы
$slug = preg_replace('/\-+/', '-', $slug);// Удаляем дефисы в начале и конце
$slug = trim($slug, '-');// Переводим в нижний регистр
$slug = strtolower($slug);// Если slug пустой, используем значения по умолчанию
if ($slug == '') {
switch ($type) {
case 'board':
$slug = __('board', 'forums');
break;
case 'topic':
$slug = __('topic', 'forums');
break;
case 'user':
$slug = __('user', 'forums');
break;
default:
$slug = 'untitled';
}
}return $slug;
}Таким же образом можно решить проблему со ссылками и в плагине блога.
Тут достаточно просто, вот мое решение:
В файле functions.php плагина находите комментарий:
// CREATE SLUG
это примерно строка 800, в зависимости от вашей версии плагина и заменяете функцию:
function frm_slug($text, $type = '') {
$text = trim($text);
$text = str_replace(' ', '-', $text);
$slug = strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '', $text)));
if($slug == '') {
if($type == 'board') {
$slug = __('board', 'forums');
} else if ($type == 'topic') {
$slug = __('topic', 'forums');
} else if ($type == 'user') {
$slug = __('user', 'forums');
}
}
return $slug;
}
На нашу:
function frm_slug($text, $type = '') {
$text = trim($text);
// Транслитерация кириллицы в латиницу
$transliteration = [
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd',
'е' => 'e', 'ё' => 'yo', 'ж' => 'zh', 'з' => 'z', 'и' => 'i',
'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't',
'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'ts', 'ч' => 'ch',
'ш' => 'sh', 'щ' => 'sch', 'ъ' => '', 'ы' => 'y', 'ь' => '',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya',
'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D',
'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh', 'З' => 'Z', 'И' => 'I',
'Й' => 'Y', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N',
'О' => 'O', 'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T',
'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'Ts', 'Ч' => 'Ch',
'Ш' => 'Sh', 'Щ' => 'Sch', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '',
'Э' => 'E', 'Ю' => 'Yu', 'Я' => 'Ya',
'ґ' => 'g', 'Ґ' => 'G', 'є' => 'ye', 'Є' => 'Ye',
'і' => 'i', 'І' => 'I', 'ї' => 'yi', 'Ї' => 'Yi',
'’' => '', '`' => ''
];
// Заменяем кириллицу
$text = strtr($text, $transliteration);
// Заменяем пробелы на дефисы
$text = str_replace(' ', '-', $text);
// Удаляем все недопустимые символы (оставляем только латиницу, цифры и дефисы)
$slug = preg_replace('/[^a-zA-Z0-9\-]+/', '', $text);
// Удаляем множественные дефисы
$slug = preg_replace('/\-+/', '-', $slug);
// Удаляем дефисы в начале и конце
$slug = trim($slug, '-');
// Переводим в нижний регистр
$slug = strtolower($slug);
// Если slug пустой, используем значения по умолчанию
if ($slug == '') {
switch ($type) {
case 'board':
$slug = __('board', 'forums');
break;
case 'topic':
$slug = __('topic', 'forums');
break;
case 'user':
$slug = __('user', 'forums');
break;
default:
$slug = 'untitled';
}
}
return $slug;
}
Таким же образом можно решить проблему со ссылками и в плагине блога.
