Форум русской поддержки Joomla!® CMS
07.12.2016, 20:29:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Разные классы для меток товара

 (Прочитано 253 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« : 01.11.2015, 22:32:10 »

Здравствуйте. Пользуюсь метками товаров в виде бэйджев с текстом. Но получается бэйдж один (цвет) а тексты разные (новый, акция и т.д.). Нужно бы и цветами их выделить. Придумалось решение добавлять к метке класс, который формируется из названия метки с помощью транслита. Нашел в интернете функцию, которая может это делать.
Код:
function rus2translit($string) {
    $converter = array(
        'а' => 'a',   'б' => 'b',   'в' => 'v',
        'г' => 'g',   'д' => 'd',   'е' => 'e',
        'ё' => 'e',   'ж' => 'zh',  'з' => 'z',
        'и' => 'i',   'й' => 'y',   'к' => 'k',
        'л' => 'l',   'м' => 'm',   'н' => 'n',
        'о' => 'o',   'п' => 'p',   'р' => 'r',
        'с' => 's',   'т' => 't',   'у' => 'u',
        'ф' => 'f',   'х' => 'h',   'ц' => 'c',
        'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
        'ь' => '\'',  'ы' => 'y',   'ъ' => '\'',
        'э' => 'e',   'ю' => 'yu',  'я' => 'ya',
        
        'А' => 'A',   'Б' => 'B',   'В' => 'V',
        'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
        'Ё' => 'E',   'Ж' => 'Zh',  'З' => 'Z',
        'И' => 'I',   'Й' => 'Y',   'К' => 'K',
        'Л' => 'L',   'М' => 'M',   'Н' => 'N',
        'О' => 'O',   'П' => 'P',   'Р' => 'R',
        'С' => 'S',   'Т' => 'T',   'У' => 'U',
        'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
        'Ч' => 'Ch',  'Ш' => 'Sh',  'Щ' => 'Sch',
        'Ь' => '\'',  'Ы' => 'Y',   'Ъ' => '\'',
        'Э' => 'E',   'Ю' => 'Yu',  'Я' => 'Ya',
    );
    return strtr($string, $converter);
}
function str2url($str) {
    // переводим в транслит
    $str = rus2translit($str);
    // в нижний регистр
    $str = strtolower($str);
    // заменям все ненужное нам на "-"
    $str = preg_replace('~[^-a-z0-9_]+~u', '-', $str);
    // удаляем начальные и конечные '-'
    $str = trim($str, "-");
    return $str;
}

Теперь вопрос, куда ее (функцию) добавить/вставить, что бы потом обновлять магазин без проблем. В шаблон продукта не хочется, что бы не загромаждать его. С function.php она слетит при первом обновлении, забуду поправить и все. Может где-то в шаблоне JH есть аналогичный файл, куда эту функцию можно вписать и обновление магазина его не будет затрагивать (шаблон у меня не дефолтный)? Или создать отдельный файл с ф-ей и как-то его подключить к шаблону. Но тут я не силен.
Как лучше или как правильно?

Или может я не там копаю и есть решение с отдельными классами для меток проще/лучше?
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #1 : 01.11.2015, 22:34:50 »

прив ещё раз
у меток есть свои таблицы, не насилуй их.
измени код и запрос, зачем ты ..........
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #2 : 01.11.2015, 22:39:11 »

JFilterOutput::stringURLSafe($string)
Записан
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« Ответ #3 : 02.11.2015, 11:47:35 »

Дмитрий, я вставил в класс метки такой код
Код:
<?php JFilterOutput::stringURLSafe($product->_label_name);?>
вывело пустоту. Я что-то не то сделал?
Записан
vipiusss
Профи
********

Репутация: +261/-8
Offline Offline

Пол: Мужской
Сообщений: 4573


Skype: renor_


« Ответ #4 : 02.11.2015, 11:52:44 »

нижнее подчёркивание зачем? и где this?
помоему неправильно строка создана.
и чем стили свои тебе мешают сделать?
зачем новый код? или у тебя там опять свои приколы новые?
Записан
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« Ответ #5 : 02.11.2015, 12:06:27 »

 vipiusss, на флуд смахивает. Код названия лэйбла взят из шаблона. Я бы вас попросил воздержаться от предположительных ответов/советов.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #6 : 02.11.2015, 12:08:42 »

вывело пустоту - потому что надо echo использовать если что то вывести хочется Azn
Записан
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« Ответ #7 : 02.11.2015, 12:12:03 »

Вот так правильно
Код:
<?php echo JFilterOutput::stringURLSafe(htmlspecialchars($product->_label_name));?>
Записан
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« Ответ #8 : 02.11.2015, 12:19:21 »

Дмитрий спасибо! (+)
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #9 : 02.11.2015, 12:28:53 »

а зачем htmlspecialchars? только удлинит название класса в случае если название метки содержит например кавычки, а особо смысл в этом?
Записан
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« Ответ #10 : 02.11.2015, 12:35:03 »

Цитировать
а зачем htmlspecialchars? только удлинит название класса в случае если название метки содержит например кавычки, а особо смысл в этом?
Потому что не вывело текст, вот и начал искать в чем причина. Добавил echo и htmlspecialchars и заработало. Что оно означает я пока не могу знать, это вы только можете Azn.
М-да... получаются разные классы для разнык языков сайта. В принципе, не сильно критично (можно и для нескольких классов стили прописать), но может есть у кого-то идеи с альтернативным способом?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7773



« Ответ #11 : 02.11.2015, 12:52:32 »

id метки используйте. делайте например класс <?php echo 'metka_'.$product->label_id ?>
Записан
Bozhkov2
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 278



« Ответ #12 : 02.11.2015, 12:53:13 »

Супер, точно!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet