Вопрос Расширение функционала и исправление багов

badaboom

Гуру форума
Регистрация
19 Фев 2018
Сообщения
128
Реакции
50
Тема создана для публикации уже готовых и проверенных решений для Osclass.

Включение транслитерации в урл адресах и названиях категорий (cyrillic to lat:(
  1. Включаем ЧПУ в админке (/oc-admin/index.php?page=settings&action=permalinks), сохраняем изменения.
  2. Открываем в текстовом редакторе файл formatting.php в папке \oc-includes\osclass
  3. Находим строку chr(226).chr(130).chr(172) => 'E',
  4. После нее добавляем код и сохраняем файл:
Код:
        //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) => 'u', // У
chr(243),chr(209).chr(131) => 'u', // у
chr(212),chr(208).chr(164) => 'f', // Ф
chr(244),chr(209).chr(132) => 'f', // ф
chr(213),chr(208).chr(165) => 'h', // Х
chr(245),chr(209).chr(133) => 'h', // х
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', // я
/* Цифры */
chr(48) => '0', // 0
chr(48).chr(48) => '00', // 00
chr(48).chr(49) => '01', // 01
chr(48).chr(50) => '02', // 02
chr(48).chr(51) => '03', // 03
chr(48).chr(52) => '04', // 04
chr(48).chr(53) => '05', // 05
chr(48).chr(54) => '06', // 06
chr(48).chr(55) => '07', // 07
chr(48).chr(56) => '08', // 08
chr(48).chr(57) => '09', // 09
chr(49) => '1', // 1
chr(49).chr(48) => '10', // 10
chr(49).chr(49) => '11', // 11
chr(49).chr(50) => '12', // 12
chr(49).chr(51) => '13', // 13
chr(49).chr(52) => '14', // 14
chr(49).chr(53) => '15', // 15
chr(49).chr(54) => '16', // 16
chr(49).chr(55) => '17', // 17
chr(49).chr(56) => '18', // 18
chr(49).chr(57) => '19', // 19
chr(50) => '2', // 2
chr(50).chr(48) => '20', // 20
chr(50).chr(49) => '21', // 21
chr(50).chr(50) => '22', // 22
chr(50).chr(51) => '23', // 23
chr(50).chr(52) => '24', // 24
chr(50).chr(53) => '25', // 25
chr(50).chr(54) => '26', // 26
chr(50).chr(55) => '27', // 27
chr(50).chr(56) => '28', // 28
chr(50).chr(57) => '29', // 29
chr(51) => '3', // 3
chr(51).chr(48) => '30', // 30
chr(51).chr(49) => '31', // 31
chr(51).chr(50) => '32', // 32
chr(51).chr(51) => '33', // 33
chr(51).chr(52) => '34', // 34
chr(51).chr(53) => '35', // 35
chr(51).chr(54) => '36', // 36
chr(51).chr(55) => '37', // 37
chr(51).chr(56) => '38', // 38
chr(51).chr(57) => '39', // 39
chr(52) => '4', // 4
chr(52).chr(48) => '40', // 40
chr(52).chr(49) => '41', // 41
chr(52).chr(50) => '42', // 42
chr(52).chr(51) => '43', // 43
chr(52).chr(52) => '44', // 44
chr(52).chr(53) => '45', // 45
chr(52).chr(54) => '46', // 46
chr(52).chr(55) => '47', // 47
chr(52).chr(56) => '48', // 48
chr(52).chr(57) => '49', // 49
chr(53) => '5', // 5
chr(53).chr(48) => '50', // 50
chr(53).chr(49) => '51', // 51
chr(53).chr(50) => '52', // 52
chr(53).chr(51) => '53', // 53
chr(53).chr(52) => '54', // 54
chr(53).chr(53) => '55', // 55
chr(53).chr(54) => '56', // 56
chr(53).chr(55) => '57', // 57
chr(53).chr(56) => '58', // 58
chr(53).chr(57) => '59', // 59
chr(54) => '6', // 6
chr(54).chr(48) => '60', // 60
chr(54).chr(49) => '61', // 61
chr(54).chr(50) => '62', // 62
chr(54).chr(51) => '63', // 63
chr(54).chr(52) => '64', // 64
chr(54).chr(53) => '65', // 65
chr(54).chr(54) => '66', // 66
chr(54).chr(55) => '67', // 67
chr(54).chr(56) => '68', // 68
chr(54).chr(57) => '69', // 69
chr(55) => '7', // 7
chr(55).chr(48) => '70', // 70
chr(55).chr(49) => '71', // 71
chr(55).chr(50) => '72', // 72
chr(55).chr(51) => '73', // 73
chr(55).chr(52) => '74', // 74
chr(55).chr(53) => '75', // 75
chr(55).chr(54) => '76', // 76
chr(55).chr(55) => '77', // 77
chr(55).chr(56) => '78', // 78
chr(55).chr(57) => '79', // 79
chr(56) => '8', // 8
chr(56).chr(48) => '80', // 80
chr(56).chr(49) => '81', // 81
chr(56).chr(50) => '82', // 82
chr(56).chr(51) => '83', // 83
chr(56).chr(52) => '84', // 84
chr(56).chr(53) => '85', // 85
chr(56).chr(54) => '86', // 86
chr(56).chr(55) => '87', // 87
chr(56).chr(56) => '88', // 88
chr(56).chr(57) => '89', // 89
chr(57) => '9', // 9
chr(57).chr(48) => '90', // 90
chr(57).chr(49) => '91', // 91
chr(57).chr(50) => '92', // 92
chr(57).chr(51) => '93', // 93
chr(57).chr(52) => '94', // 94
chr(57).chr(53) => '95', // 95
chr(57).chr(54) => '96', // 96
chr(57).chr(55) => '97', // 97
chr(57).chr(56) => '98', // 98
chr(57).chr(57) => '99', // 99

Если до включения транслитерации были созданы категории, то следует их пересохранить в админке (/oc-admin/index.php?page=categories). Если нужно изменить транслитерацию отдельных символов, например, буквы й, правим нужный символ в коде выше.

Исправление наложения кнопок при редактировании объявлений в админке:
  1. Открываем файл main.css в папке \oc-admin\themes\modern\css
  2. Находим #item-action-list
  3. Удаляем "height: 0" или исправляем на "height: 15px";
  4. Очищаем кеш браузера в настройках или на страницах (Ctrl + R) / (Ctrl + F5).
Корректное переключение языков в категориях на мультиязычном сайте:

Заменяем оригинальный файл /oc-includes/osclass/model/Category.php на модифицированный из вложения. Фикс проверялся и работает на Osclass 3.7.4.

Ссылки по теме: Для просмотра ссылки Войди или Зарегистрируйся и Для просмотра ссылки Войди или Зарегистрируйся
 

Вложения

  • Category.rar
    6,4 KB · Просмотры: 29
Последнее редактирование:
Как повторно активировать просроченное объявление через админку?
  1. Переходим на страницу объявлений (/oc-admin/index.php?page=items)
  2. Наводим курсор на объявление и кликаем по ссылке "Редактировать"
  3. В правой колонке внизу находим опцию "Срок актуальности"
  4. Кликаем по чекбоксу "Обновить актуальный срок объявления?"
  5. Вводим в текстовое поле целое число или дату в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС (2018-11-20 18:59:00). Если указывается целое число, то оно прибавляется к исходной дате публикации. Например, если объява была опубликована 25.05.2018, и нужно обновить ее на два месяца вперед, то указываем число 60. Если после публикации объявы прошло больше двух месяцев, а нужно обновить еще на один месяц, то указываем 90. Если на год вперед, то указываем 365. Если ввести 0, то объява никогда не истечет и будет опубликована всегда.
  6. После ввода данных нажимаем Enter или кнопку "Обновить объявление" под формой редактирования в конце страницы
 
Как перейти на защищенный протокол https и включить SSL?
  1. Покупаем сертификат у хостера или получаем бесплатный на letsencrypt.org (сертификаты без проблем заказываются и устанавливаются в панелях управления VestaCP и ISPmanager). Существенных отличий между платными и бесплатными сертификатами нет. Проверено на нескольких личных проектах. "Простым" вебмастерам хватает бесплатных.
  2. После установки сертификата, когда сайт будет доступен по двум адресам с http и https, открываем файл .htaccess (лежит в корневой директории). В самый верх, над уже имеющимися строками, добавляем 5 новых строк:
    Код:
    #SSL START
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://yourwebsite.com/$1 [R=301,L]
    #SSL END
  3. В строке RewriteRule изменяем значение yourwebsite.com на адрес вашего сайта. В ISPmanager в настройках домена можно включить принудительное перенаправление всех запросов на https.
  4. Открываем в текстовом редакторе файл config.php (лежит в корневой директории), находим строку define('WEB_PATH', 'http://yourwebsite.com/');, изменяем протокол на define('WEB_PATH', 'https://yourwebsite.com/'); и сохраняем файл.
 
Последнее редактирование:
Как перейти на защищенный протокол https и включить SSL?
  1. Покупаем сертификат у хостера или получаем бесплатный на letsencrypt.org (сертификаты без проблем заказываются и устанавливаются в панелях управления VestaCP и ISPmanager). Существенных отличий между платными и бесплатными сертификатами нет. Проверено на нескольких личных проектах. "Простым" вебмастерам хватает бесплатных.
  2. После установки сертификата, когда сайт будет доступен по двум адресам с http и https, открываем файл .htaccess (лежит в корневой директории). В самый верх, над уже имеющимися строками, добавляем 5 новых строк:
    Код:
    #SSL START
    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://yourwebsite.com/$1 [R=301,L]
    #SSL END
  3. В строке RewriteRule изменяем значение yourwebsite.com на адрес вашего сайта. В ISPmanager в настройках домена можно включить принудительное перенаправление всех запросов на https.
  4. Открываем в текстовом редакторе файл config.php (лежит в корневой директории), находим строку define('WEB_PATH', 'http://yourwebsite.com/');, изменяем протокол на define('WEB_PATH', 'https://yourwebsite.com/'); и сохраняем файл.
Правильней будет вот так:
# Редирект с http на https
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ Для просмотра ссылки Войди или Зарегистрируйся [L,R=301]
 
Включение кэша в браузерах посетителей.
Редактируем файл htaccess в корне сайта.
В htaccess добавить следующие:
Код:
# Включаем кэш в браузерах посетителей
<ifModule mod_headers.c>
    # Все html и htm файлы будут храниться в кэше браузера один день
    <FilesMatch "\.(html|htm)$">
        Header set Cache-Control "max-age=43200"
    </FilesMatch>
    # Все css, javascript, шрифты и текстовые файлы будут храниться в кэше браузера одну неделю
    <FilesMatch "\.(js|css|txt|eot|woff|woff2)$">
        Header set Cache-Control "max-age=604800"
    </FilesMatch>
    # Все флэш файлы и изображения будут храниться в кэше браузера один месяц
    <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
        Header set Cache-Control "max-age=2592000"
    </FilesMatch>
    # Отключаем кеширование php и других служебных файлов
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
        Header unset Cache-Control
    </FilesMatch>
</IfModule>
 
Включаем перенаправление на gzip файлы.
В htaccess добавить следующее:
Код:
# Перенаправление на gzip файлы
AddEncoding gzip .gz
<FilesMatch "\.js.gz$">
  ForceType text/javascript
  Header set Content-Encoding: gzip
</FilesMatch>
<FilesMatch "\.js$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.js$ $1\.js.gz [L]
  ForceType text/javascript
</FilesMatch>

<FilesMatch "\.css.gz$">
  ForceType text/css
  Header set Content-Encoding: gzip
</FilesMatch>

<FilesMatch "\.css$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.css$ $1\.css.gz [L]
  ForceType text/css
</FilesMatch>
 
Друзья, подскажите пожалуйста, как в Russian Ultimate Payments plugin вместо полосы с предложением о размещении рекламы пользователем, вставить свой баннер, чтобы также пользователь после оплаты мог видеть свой баннер. Всем спасибо!
 
День добрый, подскажите пожалуйста, где мне исправить данные местоположения окна reCapcha? а то закрывает чекбоксы и объявление не отредактировать в результате.Безымянный.png
 
Русская локализация для плагина voting. Может кому-то пригодится
 

Вложения

  • ru_RU.zip
    6,7 KB · Просмотры: 12
День добрый, подскажите пожалуйста, где мне исправить данные местоположения окна reCapcha? а то закрывает чекбоксы и объявление не отредактировать в результате.
Можно ссылку на страницу, где есть эта проблема?
 
Назад
Сверху