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

NickFromSurgut

  • Новичок
  • 6
  • 0 / 0
Добрый день, уважаемые эксперты!  ^-^
Как сделать в JoomGallery новый рейтинг фотографий для топ списка состовляемый по сумме оценок, а не по средней оценке? Ведь получается, если у одной фотографии будет 10, 10, 9 средний 9,7, а у второй фотографии будет одна оценка 10, то вторая будет в рейтинге первой, что не есть правильно.
И еще, как сделать, чтобы за одну фотографию мог проголосовать один человек ОДИН раз? не понимаю чем руководствовались разработчики оставив возможность многократного голосования.
Очень хочется сделать на основе JoomGallery что то похожее на http://www.samara-photo.ru.  :(
версия Joomla 2.5.3 Stable
версия JoomGallery 2.0.0
« Последнее редактирование: 04.04.2012, 13:40:08 от NickFromSurgut »
*

Grinders

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
Не эксперт, но могу сказать что:
1. по поводу оценок. Если залезть в базу и посмотреть там касательно оценок только 2 столбца. Это количество проголосовавших и сумма оценок. от сюда и автоматом высчитывается средняя оценка. Столбец с сумой оценок называется если не изменяет память votesum. Вывести его можно заменив в соответствующих файлах где речь идет о рейтинге что-то типа такого $row->votesum
2. Насчет повторного голосования вроде как там давно все решено как для зарегистрированных так и незарегистрированных пользователей.
*

NickFromSurgut

  • Новичок
  • 6
  • 0 / 0
Не эксперт, но могу сказать что:
1. по поводу оценок. Если залезть в базу и посмотреть там касательно оценок только 2 столбца. Это количество проголосовавших и сумма оценок. от сюда и автоматом высчитывается средняя оценка. Столбец с сумой оценок называется если не изменяет память votesum. Вывести его можно заменив в соответствующих файлах где речь идет о рейтинге что-то типа такого $row->votesum
2. Насчет повторного голосования вроде как там давно все решено как для зарегистрированных так и незарегистрированных пользователей.
да, действительно, в БД в таблице JoomGallery есть поле "imgvotesum", но как подменить его не могу допереть я PHP впервые в глаза вижу...
сюдя по тому что в последней версии JoomGallery оценивать я могу сколь угодно много, проблема не решилась.
*

sergik74

  • Захожу иногда
  • 178
  • 26 / 8
А у вас рейтинг выставлен Стандарт или по Bayes?
И почему то у меня в рейтинге можно только раз проголосовать... Что я не так сделал?
Разработка сайтов на Joomla.
http://markina-dariya.ru
*

Grinders

  • Осваиваюсь на форуме
  • 43
  • 1 / 0
да, действительно, в БД в таблице JoomGallery есть поле "imgvotesum", но как подменить его не могу допереть я PHP впервые в глаза вижу...
сюдя по тому что в последней версии JoomGallery оценивать я могу сколь угодно много, проблема не решилась.

Если я не ошибаюсь стоит поковырять файл components/com_joomgallery/helpers/helper.php, но сразу скажу сразу у меня стоит JoomGallery 1.5.7.5. в новой галерее возможно все и по другому.
*

DeniskaS

  • Новичок
  • 2
  • 0 / 0
Добрый день!
Я не силен в коде, прошу помощи, что тут нужно изменить для того чтобы рейтинг фотографии был по сумме оценок?? Заранее спасибо....

/**
   * Returns the rating clause for an SQL - query dependent on the
   * rating calculation method selected.
   *
   * @access  public
   * @param   string  $tablealias The table alias to use
   * @return  string  Rating clause
   * @since   1.5.6
   */
  function getSQLRatingClause($tablealias = '')
  {
    $db                   = & JFactory::getDBO();
    $config               = & JoomConfig::getInstance();
    static $avgimgvote    = 0.0;
    static $avgimgrating  = 0.0;
    static $avgdone       = false;

    $maxvoting            = $config->get('jg_maxvoting');
    $imgvotesum           = 'imgvotesum';
    $imgvotes             = 'imgvotes';
    if($tablealias != '')
    {
      $imgvotesum = $tablealias.'.'.$imgvotesum;
      $imgvotes   = $tablealias.'.'.$imgvotes;
    }

    // Standard rating clause
    $clause = 'ROUND(LEAST(IF(imgvotes > 0, '.$imgvotesum.'/'.$imgvotes.', 0.0), '.(float)$maxvoting.'), 2)';

    // Advanced (weigthed) rating clause (Bayes)
    if($config->get('jg_ratingcalctype') == 1)
    {
      if(!$avgdone)
      {
        // Needed values for weighted rating calculation
        $db->setQuery('SELECT
                         count(*) As imgcount,
                         SUM(imgvotes) As sumimgvotes,
                         SUM(imgvotesum/imgvotes) As sumimgratings
                       FROM
                         '._JOOM_TABLE_IMAGES.'
                        WHERE
                          imgvotes > 0'
                      );
        $row = $db->loadObject();
        if($row != null)
        {
          if($row->imgcount > 0)
          {
            $avgimgvote   = round($row->sumimgvotes / $row->imgcount, 2 );
            $avgimgrating = round($row->sumimgratings / $row->imgcount, 2);
            $avgdone      = true;
          }
        }
      }
      if($avgdone)
      {
        $clause = 'ROUND(LEAST(IF(imgvotes > 0, (('.$avgimgvote.'*'.$avgimgrating.') + '.$imgvotesum.') / ('.$avgimgvote.' + '.$imgvotes.'), 0.0), '.(float)$maxvoting.'), 2)';
      }
    }

    return $clause;
  }
}
*

DeniskaS

  • Новичок
  • 2
  • 0 / 0
Нашел как это сделать для стандартного рейтингав файле components/com_joomgallery/helpers/helper.php.. нужно исправить строку:
 // Standard rating clause
    $clause = 'ROUND(LEAST(IF(imgvotes > 0, '.$imgvotesum.'/'.$imgvotes.', 0.0), '.(float)$maxvoting.'), 2)';
На:
 // Standard rating clause
    $clause = 'ROUND(LEAST(IF(imgvotes > 0, '.$imgvotesum.', 0.0), '.(float)$maxvoting.'10000.0), 2)';

где (float)$maxvoting.'10000.0 это максимальная сумма голосов
*

Gig

  • Захожу иногда
  • 86
  • 1 / 0
Доброе время суток, тоже с толкнулся с такой задачей, только вот версия joomgallery 2.1.1 для joomla 2.5
понятно что переменная imgvote отвечает за рейтинг, но как сделать что бы он считал просто по одному голосу (нужно что бы пользователь не выставлял баллы а просто мог кликнуть по кнопке и отдать свой голос за фото) - проблема. Помогите пожалуйста! Кто знает как это можно устроить?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с дублем страниц в JoomGallery 3.4

Автор qvagin

Ответов: 3
Просмотров: 2263
Последний ответ 23.01.2023, 13:30:08
от e2
Стили раскладки фото в JoomGallery (masonry и mosaic)

Автор marbert

Ответов: 4
Просмотров: 1290
Последний ответ 22.11.2022, 06:28:20
от marbert
JoomGallery 3.6.0 если отсутствует поле Название при редактировании фотографии

Автор Beer

Ответов: 0
Просмотров: 1346
Последний ответ 09.09.2022, 20:07:49
от Beer
После обновления до JoomGallery 3.6 некорректно работает водяной знак

Автор Maffo

Ответов: 3
Просмотров: 1225
Последний ответ 23.08.2022, 06:21:58
от marksetter
j3.8.13 + JoomGallery 3.3.4 = RuntimeException: Недопустимое поле: cid

Автор Sergeych

Ответов: 7
Просмотров: 3565
Последний ответ 22.03.2021, 17:24:59
от Gammy2005