Все про Osclass

Статус
В этой теме нельзя размещать новые ответы.
Спасибо, буду признателен.
market.osclass.org/plugins/security/nocaptcha-recaptcha_251
Вот юзайте, но все же я рекомендую вот этот плагин
market.osclass.org/plugins/security/myhoneypot-premium_467
он борется со спамом не напрягая посетителей, а это важно для роста посещаемости ресурса, не раздражать пользователей капчами. Раньше у этого плагина была бесплатная версия на форуме оскласс, но теперь не могу найти, может вам удастся это.

в некоторых случаях нужна модерация объявлений перед их публикацией, это важно когда спамеры совсем борзеют, но в скрипте оскласс нет этой функции "премодерации объявлений", существуют платные плагины с подобным функционалом, однако стоимостью от 18 уе.
Предлагаю бесплатное решение.
Скачиваем и устанавливаем вот этот плагин
Для просмотра ссылки Войди или Зарегистрируйся
Затем в поле его настроек ставим одну запятую и сохраняем.
После этого все добавляемые объявления будут помечены как спам, а следовательно не будут публиковаться.
Нам остается зайти в админку и сделать модерацию.
Все бесплатно.
 
Последнее редактирование модератором:
buninsan, круто, полезная информация, взял на заметку.
Только почему "запятую"? Если возможно - лучше "пробел", его точно не пропустят. Либо перечислить несколько значений: "точка", "запятая", "цифры 0-9". Ибо есть такие "грамотные" люди, которые вообще запятые не ставят.

Да, еще на заметку, возможно кому-то пригодиться.
В настройках пользователя есть поле "Черный список":
LmGp6K6UdRxd2l.png

Так вот, не знаю по какой причине, но он не работает. Поэтому небольшой лайфхак для тех кто не додумался, как это исправить:
  1. Регистрируете пользователей с логинами из черного списка: admin, user, moderator, superuser и т.д.
  2. Если не хотите, чтобы кто-то мог просматривать публичную страницу этих профилей, просто добавляете в .htaccess редирект на страницу 404 или любую другую.
 
Последнее редактирование модератором:
market.osclass.org/plugins/security/nocaptcha-recaptcha_251
Вот юзайте, но все же я рекомендую вот этот плагин
market.osclass.org/plugins/security/myhoneypot-premium_467
он борется со спамом не напрягая посетителей, а это важно для роста посещаемости ресурса, не раздражать пользователей капчами. Раньше у этого плагина была бесплатная версия на форуме оскласс, но теперь не могу найти, может вам удастся это.
я выше гдето выкладывал этот бесплатный плагин
 
Кто-нибудь может написать нормальный способ перевести ЧПУ в транслит?
Пробовал сделать Для просмотра ссылки Войди или Зарегистрируйся
В итоге - категории переводит, а само объявление нет. Получается что-то вроде:
domain.ru/moskva/auto/prodazha/2-
В настройках заданы следующее правило:
{ITEM_CITY}/{CATEGORIES}/{ITEM_ID}-{ITEM_TITLE}
Короче, {ITEM_TITLE} просто не переводит в транслит
 
Кто-нибудь может написать нормальный способ перевести ЧПУ в транслит?
PHP:
//Transliteration for Cyrillic
chr(192),chr(208).chr(144) => 'a', // А
chr(224),chr(208).chr(176) => 'a', // а
chr(193),chr(208).chr(145) => 'b', // Б
chr(225),chr(208).chr(177) => 'b', // б
chr(194),chr(208).chr(146) => 'v', // В
chr(226),chr(208).chr(178) => 'v', // в
chr(195),chr(208).chr(147) => 'g', // Г
chr(227),chr(208).chr(179) => 'g', // г
chr(196),chr(208).chr(148) => 'd', // Д
chr(228),chr(208).chr(180) => 'd', // д
chr(197),chr(208).chr(149) => 'e', // Е
chr(229),chr(208).chr(181) => 'e', // е
chr(168),chr(208).chr(129) => 'yo', // Ё
chr(184),chr(209).chr(145) => 'yo', // ё
chr(198),chr(208).chr(150) => 'zh', // Ж
chr(230),chr(208).chr(182) => 'zh', // ж
chr(199),chr(208).chr(151) => 'z', // З
chr(231),chr(208).chr(183) => 'z', // з
chr(200),chr(208).chr(152) => 'i', // И
chr(232),chr(208).chr(184) => 'i', // и
chr(201),chr(208).chr(153) => 'j', // Й
chr(233),chr(208).chr(185) => 'j', // й
chr(202),chr(208).chr(154) => 'k', // К
chr(234),chr(208).chr(186) => 'k', // к
chr(203),chr(208).chr(155) => 'l', // Л
chr(235),chr(208).chr(187) => 'l', // л
chr(204),chr(208).chr(156) => 'm', // М
chr(236),chr(208).chr(188) => 'm', // м
chr(205),chr(208).chr(157) => 'n', // Н
chr(237),chr(208).chr(189) => 'n', // н
chr(206),chr(208).chr(158) => 'o', // О
chr(238),chr(208).chr(190) => 'o', // о
chr(207),chr(208).chr(159) => 'p', // П
chr(239),chr(208).chr(191) => 'p', //п
chr(208),chr(208).chr(160) => 'r', // Р
chr(240),chr(209).chr(128) => 'r', // р
chr(209),chr(208).chr(161) => 's', // С
chr(241),chr(209).chr(129) => 's', // с
chr(210),chr(208).chr(162) => 't', // Т
chr(242),chr(209).chr(130) => 't', // т
chr(211),chr(208).chr(163) => 'y', // У
chr(243),chr(209).chr(131) => 'y', // у
chr(212),chr(208).chr(164) => 'f', // Ф
chr(244),chr(209).chr(132) => 'f', // ф
chr(213),chr(208).chr(165) => 'x', // Х
chr(245),chr(209).chr(133) => 'x', // х
chr(214),chr(208).chr(166) => 'c', // Ц
chr(246),chr(209).chr(134) => 'c', //ц
chr(215),chr(208).chr(167) => 'ch', // Ч
chr(247),chr(209).chr(135) => 'ch', // ч
chr(216),chr(208).chr(168) => 'sh', // Ш
chr(248),chr(209).chr(136) => 'sh', // ш
chr(217),chr(208).chr(169) => 'sch', // Щ
chr(249),chr(209).chr(137) => 'sch', // щ
chr(218),chr(208).chr(170) => '', // Ъ
chr(250),chr(209).chr(138) => '', // ъ
chr(219),chr(208).chr(171) => 'y', // Ы
chr(251),chr(209).chr(139) => 'y', // ы
chr(220),chr(208).chr(172) => '', // Ь
chr(252),chr(209).chr(140) => '', // ь
chr(221),chr(208).chr(173) => 'e', // Э
chr(253),chr(209).chr(141) => 'e', // э
chr(222),chr(208).chr(174) => 'yu', // Ю
chr(254),chr(209).chr(142) => 'yu', // ю
chr(223),chr(208).chr(175) => 'ya', // Я
chr(255),chr(209).chr(143) => 'ya', // я
 
Кто-нибудь может написать нормальный способ перевести ЧПУ в транслит?
чпу на латинице для osclass
Открыть этот файл oc-includes/osclass/helpers/hDefines.php
Найти строку
$url = str_replace('{ITEM_TITLE}', osc_sanitizeString($item['s_title']), $url);
и вставить вместо нее эту
$url = str_replace('{ITEM_TITLE}', osc_sanitizeString( cust_cyrillic_to_latin($item['s_title']) ), $url);
Далее откройте ваш файл темы functions.php
И в конце кода вставьте это
<?php
function cust_cyrillic_to_latin($textcyr) {
$cyr = array('а','б','в','г','д','e','ж','з','и','й','к','л','м','н','о','п','р','с','т','у',
'ф','х','ц','ч','ш','щ','ъ','ь', 'ю','я','А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У',
'Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ь', 'Ю','Я' );
$lat = array( 'a','b','v','g','d','e','zh','z','i','y','k','l','m','n','o','p','r','s','t','u',
'f' ,'h' ,'ts' ,'ch','sh' ,'sht' ,'a' ,'y' ,'yu' ,'ya','A','B','V','G','D','E','Zh',
'Z','I','Y','K','L','M','N','O','P','R','S','T','U',
'F' ,'H' ,'Ts' ,'Ch','Sh' ,'Sht' ,'A' ,'Y' ,'Yu' ,'Ya' );
return str_replace($cyr, $lat, $textcyr);
}
?>
Далее пересохранить (местоположение регионы) в админке

но этот способ лучше:

открыть /oc-includes/osclass/formating.php
найти
in function remove_accents($string) {
if ( !preg_match('/[\x80-\xff]/', $string) )
return $string;
ниже добавить
if (is_utf8($string)) {
$chars = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",
"Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"w","Ъ"=>"","Ы"=>"i","Ь"=>"",
"Э"=>"e","Ю"=>"ju","Я"=>"ja","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"w","ъ"=>"y",
"ы"=>"i","ь"=>"","э"=>"e","ю"=>"ju","я"=>"ja",
" "=> "-", "."=> "", "/"=> "-", "-" => "-");
$string = strtr($string, $chars);
}
 
Последнее редактирование:
чпу на латинице для osclass
Открыть этот файл oc-includes/osclass/helpers/hDefines.php
Найти строку
$url = str_replace('{ITEM_TITLE}', osc_sanitizeString($item['s_title']), $url);
и вставить вместо нее эту
$url = str_replace('{ITEM_TITLE}', osc_sanitizeString( cust_cyrillic_to_latin($item['s_title']) ), $url);
Далее откройте ваш файл темы functions.php
И в конце кода вставьте это
<?php
function cust_cyrillic_to_latin($textcyr) {
$cyr = array('а','б','в','г','д','e','ж','з','и','й','к','л','м','н','о','п','р','с','т','у',
'ф','х','ц','ч','ш','щ','ъ','ь', 'ю','я','А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У',
'Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ь', 'Ю','Я' );
$lat = array( 'a','b','v','g','d','e','zh','z','i','y','k','l','m','n','o','p','r','s','t','u',
'f' ,'h' ,'ts' ,'ch','sh' ,'sht' ,'a' ,'y' ,'yu' ,'ya','A','B','V','G','D','E','Zh',
'Z','I','Y','K','L','M','N','O','P','R','S','T','U',
'F' ,'H' ,'Ts' ,'Ch','Sh' ,'Sht' ,'A' ,'Y' ,'Yu' ,'Ya' );
return str_replace($cyr, $lat, $textcyr);
}
?>
Далее пересохранить (местоположение регионы) в админке

но этот способ лучше:

открыть /oc-includes/osclass/formating.php
найти
in function remove_accents($string) {
if ( !preg_match('/[\x80-\xff]/', $string) )
return $string;
ниже добавить
if (is_utf8($string)) {
$chars = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",
"Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"w","Ъ"=>"","Ы"=>"i","Ь"=>"",
"Э"=>"e","Ю"=>"ju","Я"=>"ja","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"w","ъ"=>"y",
"ы"=>"i","ь"=>"","э"=>"e","ю"=>"ju","я"=>"ja",
" "=> "-", "."=> "", "/"=> "-", "-" => "-");
$string = strtr($string, $chars);
}
Вопрос: зачем столько лишнего кода?
 
но этот способ лучше:

открыть /oc-includes/osclass/formating.php
найти
in function remove_accents($string) {
if ( !preg_match('/[\x80-\xff]/', $string) )
return $string;
ниже добавить
if (is_utf8($string)) {
$chars = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",
"Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"w","Ъ"=>"","Ы"=>"i","Ь"=>"",
"Э"=>"e","Ю"=>"ju","Я"=>"ja","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"w","ъ"=>"y",
"ы"=>"i","ь"=>"","э"=>"e","ю"=>"ju","я"=>"ja",
" "=> "-", "."=> "", "/"=> "-", "-" => "-");
$string = strtr($string, $chars);
}
Так то, этот тот же способ, о котором писал я... НО, теперь разобрался в чем проблема была. Странно, что нигде не написано, а решение было перед носом.
Короче, по дефолту файл formating.php в кодировке ANSI, его просто необходимо перевести в UTF-8 и проблемы тут же решаются.

Более того, я советую всем зайти в Настройки > Местоположение и обновить ссылки во всех доступных регионах. Да много, но лучше удалить эти корозябли, чтобы в дальнейшем, чуть что, не ломать голову. Ручками прописывать не нужно, просто открываете регион, например Москва, удаляете ссылку и сохраняете. Он автоматом сгенерирует новую ссылку, но уже в транслите.

buninsan, изменил некоторые правила транслита в твоем коде, в соответствии с Для просмотра ссылки Войди или Зарегистрируйся:
if (is_utf8($string)) {
$chars = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ё"=>"yo","Ж"=>"zh","З"=>"z","И"=>"i",
"Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"x","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"shh","Ъ"=>"","Ы"=>"y","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ё"=>"yo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
" "=> "-", "."=> "", "/"=> "-", "-" => "-");
$string = strtr($string, $chars);
}
 
Последнее редактирование:
На Складчике Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся пишет "В настоящее время организатор не может принимать платежи." Поэтому если у кого есть эти плагины поделитесь пожалуйста или можно складчину организовать, кто знает как это сделать?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху