Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 21 Ответов
  • 1104 Просмотров
*

Mesk911

  • Осваиваюсь на форуме
  • ***
  • 78
  • 1
Всем привет!
Задался вопросом изменения внешнего вида звёздочек рейтинга на карточке товара.
Подумал, что нужно бы просто заменить стандартную картинку (/components/com_jshopping/images/stars.gif)...заменил на аналогичную (только по-красивее)...в результате получил вывод бесконечного количества пустых звёздочек (для товара без рейтинга соответственно).
Научите пожалуйста, как правильно сделать?
Может есть какие то требования к файлу картинки?
*

nevigen

  • Moderator
  • *****
  • 8832
  • 754
  • http://n*****n.com
ну как есть, да, естьно не требования а подход просто.
это картинка спрайт.
надо те же размеры соблюдать. всей картинки и позиции каждого ее элемента. в общем 1:1.

ну или изменять цсс и скрипт смотреть.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Mesk911

  • Осваиваюсь на форуме
  • ***
  • 78
  • 1
надо те же размеры соблюдать. всей картинки и позиции каждого ее элемента. в общем 1:1.
это вряд ли получится...
ну или изменять CSS и скрипт смотреть.
а в этом случае как действовать подскажете?
*

nevigen

  • Moderator
  • *****
  • 8832
  • 754
  • http://n*****n.com
погуглите sprite CSS
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Mesk911

  • Осваиваюсь на форуме
  • ***
  • 78
  • 1
ок, спасибо
*

Biss

  • Завсегдатай
  • *****
  • 760
  • 79
Можно ещё перекрасить :)
*

Mesk911

  • Осваиваюсь на форуме
  • ***
  • 78
  • 1
Можно ещё перекрасить :)
пробовал, но как то криво получается)
*

Mesk911

  • Осваиваюсь на форуме
  • ***
  • 78
  • 1
почитал, понял, что для меня это пока сложно
на данном этапе могу лишь попросить, что если вдруг кто то это уже делал и есть время/желание показать как конкретно это делается, буду признателен.
*

nevigen

  • Moderator
  • *****
  • 8832
  • 754
  • http://n*****n.com
сделайте картинку, это проще.
возьмите 1 звезду и потом просто размножите их... в полосе..

в общем работа графическая больше чем кодинговая
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Mesk911

  • Осваиваюсь на форуме
  • ***
  • 78
  • 1
всё сделал через картинку (пришлось поковыряться в фотошопе, конечно, но результат того стоил), всем спасибо за помощь


*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
Здравствуйте,
вопрос

Задача изменить размер звездочек рейтинга
прописать CSS и сделать спрайт  - не проблема

А где задается ширина блоков?

Код: html4strict
<div class="stars_no_active" style="width:80px">
  <div class="stars_active" style="width:64px"></div>
</div>

Задается скриптом, и не явно а вычисляется (я так думаю)

В скрипте jquery.rating.pack.js в функции fn.rating указано значение параметра по умолчанию:

starWidth: 16

Пытался менять - ничего не меняется. Или функция где-то вызывается с другим параметром, или не там ищу ...

Подскажите, плз, где искать
Спасибо)
*

dmitry_stas

  • Профи
  • ********
  • 9685
  • 933
Цитировать
if(typeof control.split=='number' && control.split>0){
   var stw = ($.fn.width ? star.width() : 0) || control.starWidth;
   stw = 16;//width star
   var spi = (control.count % control.split), spw = Math.floor(stw/control.split);

   star
   // restrict star's width and hide overflow (already in CSS)
   .width(spw)
   // move the star left by using a negative margin
   // this is work-around to IE's stupid box model (position:relative doesn't work)
   .find('a').css({ 'margin-left':'-'+ (spi*spw) +'px' })
};
не оно?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
и здесь менял - не помогает
*

dmitry_stas

  • Профи
  • ********
  • 9685
  • 933
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
нет. чистил везде. на сайте - отключено
*

dmitry_stas

  • Профи
  • ********
  • 9685
  • 933
плохо чистили :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
плохо чистили :)
Это было бы здорово )
Но чистил хорошо. Даже комп перезагрузил
Ничего не меняется (((

Чувствую себя идиотом - не могу поменять размер звездочек ...
*

dmitry_stas

  • Профи
  • ********
  • 9685
  • 933
мы видимо о разных звездочках :) вы же сказали о скрипте - я вам про скрипт и отвечаю. скрипт - это для того чтобы установить рейтинг. а вы видимо имеете в виду просто показ рейтинга. это в functions.php function showMarkStar
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
... это в functions.php function showMarkStar

Ура!
То что нужно :)
Чтобы не хакать ядро и не затрагивать отзывы:
Скопировал к себе в ratingandhits.php,
переименовал,
заменил 2 цифры

Все работае!

dmitry_stas, спасибо!
*

dmitry_stas

  • Профи
  • ********
  • 9685
  • 933
Чтобы не хакать ядро и не затрагивать отзывы:

магия php :)
Код
$jshopConfig = JSFactory::getConfig();
$k = 2; //коэффициент увеличения размера звезды
$jshopConfig->rating_starparts /= $k;
echo showMarkStar(оценка);
$jshopConfig->rating_starparts *= $k;
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
тоже вариант)
спасибо!
*

Zlusya

  • Новичок
  • *
  • 3
  • 0
Здравствуйте,
вопрос

Задача изменить размер звездочек рейтинга
прописать CSS и сделать спрайт  - не проблема

А где задается ширина блоков?

Код: html4strict
<div class="stars_no_active" style="width:80px">
  <div class="stars_active" style="width:64px"></div>
</div>

Задается скриптом, и не явно а вычисляется (я так думаю)

В скрипте jquery.rating.pack.js в функции fn.rating указано значение параметра по умолчанию:

starWidth: 16

Пытался менять - ничего не меняется. Или функция где-то вызывается с другим параметром, или не там ищу ...

Подскажите, плз, где искать
Спасибо)
Здравствуйте, помогите пожалуйста разобраться, вы уже сталкивались с подобной проблемой. Когда то начудила с выводом звёздочек, в стандартном шаблоне они вывозяться как "<div class="stars_no_active" style="width:55px">" а у меня получается "<div class="stars_no_active" style="width:32px">" , нашла данный кусок "
Цитировать
function showMarkStar($rating){
    $jshopConfig = JSFactory::getConfig();
    $count = floor($jshopConfig->max_mark / $jshopConfig->rating_starparts);
   $star_width = $jshopConfig->rating_star_width;
    $width = $count * $star_width;
    $rating = round($rating);
    $width_active = intval($rating * $star_width / $jshopConfig->rating_starparts);
    $html = "<div class='stars_no_active' style='width:".$width."px'>";
    $html .= "<div class='stars_active' style='width:".$width_active."px'>";
    $html .= "</div>";
    $html .= "</div>";
return $html;
}
" и этот
Цитировать
$config->rating_star_width = 16;
. Что дальше делать не соображу, помогите, пожалуйста разобраться.