0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 397 Просмотров
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Здравствуйте. Пользуюсь метками товаров в виде бэйджев с текстом. Но получается бэйдж один (цвет) а тексты разные (новый, акция и т.д.). Нужно бы и цветами их выделить. Придумалось решение добавлять к метке класс, который формируется из названия метки с помощью транслита. Нашел в интернете функцию, которая может это делать.
Код
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

  • Профи
  • 5583
  • 321
  • Круглая ава-зло!
  • Комплексное оказание услуг по разработке сайтов на Joomla
Re: Разные классы для меток товара
« Ответ #1 : 01.11.2015, 21:34:50 »
прив ещё раз
у меток есть свои таблицы, не насилуй их.
измени код и запрос, зачем ты ..........
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

dmitry_stas

  • Профи
  • 9993
  • 947
Re: Разные классы для меток товара
« Ответ #2 : 01.11.2015, 21:39:11 »
JFilterOutput::stringURLSafe($string)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Re: Разные классы для меток товара
« Ответ #3 : 02.11.2015, 10:47:35 »
Дмитрий, я вставил в класс метки такой код
Код
<?php JFilterOutput::stringURLSafe($product->_label_name);?>
вывело пустоту. Я что-то не то сделал?
*

vipiusss

  • Профи
  • 5583
  • 321
  • Круглая ава-зло!
  • Комплексное оказание услуг по разработке сайтов на Joomla
Re: Разные классы для меток товара
« Ответ #4 : 02.11.2015, 10:52:44 »
нижнее подчёркивание зачем? и где this?
помоему неправильно строка создана.
и чем стили свои тебе мешают сделать?
зачем новый код? или у тебя там опять свои приколы новые?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Re: Разные классы для меток товара
« Ответ #5 : 02.11.2015, 11:06:27 »
 vipiusss, на флуд смахивает. Код названия лэйбла взят из шаблона. Я бы вас попросил воздержаться от предположительных ответов/советов.
*

dmitry_stas

  • Профи
  • 9993
  • 947
Re: Разные классы для меток товара
« Ответ #6 : 02.11.2015, 11:08:42 »
вывело пустоту - потому что надо echo использовать если что то вывести хочется :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Re: Разные классы для меток товара
« Ответ #7 : 02.11.2015, 11:12:03 »
Вот так правильно
Код
 <?php echo JFilterOutput::stringURLSafe(htmlspecialchars($product->_label_name));?>
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Re: Разные классы для меток товара
« Ответ #8 : 02.11.2015, 11:19:21 »
Дмитрий спасибо! (+)
*

dmitry_stas

  • Профи
  • 9993
  • 947
Re: Разные классы для меток товара
« Ответ #9 : 02.11.2015, 11:28:53 »
а зачем htmlspecialchars? только удлинит название класса в случае если название метки содержит например кавычки, а особо смысл в этом?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Re: Разные классы для меток товара
« Ответ #10 : 02.11.2015, 11:35:03 »
Цитировать
а зачем htmlspecialchars? только удлинит название класса в случае если название метки содержит например кавычки, а особо смысл в этом?
Потому что не вывело текст, вот и начал искать в чем причина. Добавил echo и htmlspecialchars и заработало. Что оно означает я пока не могу знать, это вы только можете :).
М-да... получаются разные классы для разнык языков сайта. В принципе, не сильно критично (можно и для нескольких классов стили прописать), но может есть у кого-то идеи с альтернативным способом?
*

dmitry_stas

  • Профи
  • 9993
  • 947
Re: Разные классы для меток товара
« Ответ #11 : 02.11.2015, 11:52:32 »
id метки используйте. делайте например класс <?php echo 'metka_'.$product->label_id ?>
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Bozhkov2

  • Давно я тут
  • 222
  • 8
Re: Разные классы для меток товара
« Ответ #12 : 02.11.2015, 11:53:13 »
Супер, точно!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Видео с Youtube вместо картинки на карточке товара

Автор ksena

Ответов: 27
Просмотров: 1690
Последний ответ 15.09.2017, 18:58:10
от Biss
Как добавить всплывающую информацию в карточку товара?

Автор Dolphin4ik_1

Ответов: 12
Просмотров: 276
Последний ответ 19.08.2017, 15:15:27
от fiksius
Ошибка 500 при сохранении картинки товара/производителя

Автор vitaliybalayan

Ответов: 1
Просмотров: 99
Последний ответ 18.08.2017, 15:57:50
от dmitry_stas
Модуль в позиции сайдбар только в карточке товара

Автор Dolphin4ik_1

Ответов: 3
Просмотров: 127
Последний ответ 13.08.2017, 13:23:29
от dmitry_stas
Можно ли изменить id товара в JoomShopping?

Автор Dolphin4ik_1

Ответов: 15
Просмотров: 263
Последний ответ 11.08.2017, 09:33:14
от nevigen