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

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 отвечает за рейтинг, но как сделать что бы он считал просто по одному голосу (нужно что бы пользователь не выставлял баллы а просто мог кликнуть по кнопке и отдать свой голос за фото) - проблема. Помогите пожалуйста! Кто знает как это можно устроить?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

j3.8.13 + JoomGallery 3.3.4 = RuntimeException: Недопустимое поле: cid

Автор Sergeych

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

Автор Beer

Ответов: 0
Просмотров: 62
Последний ответ 18.03.2021, 12:20:02
от Beer
JoomGallery мобильная версия

Автор KingSnake

Ответов: 11
Просмотров: 2451
Последний ответ 27.05.2020, 16:41:03
от KingSnake
Проблема дублирования контента в JoomGallery

Автор shop-user

Ответов: 0
Просмотров: 761
Последний ответ 08.08.2019, 01:08:46
от shop-user
JoomGallery. Как убрать сортировку

Автор Tanyaks

Ответов: 4
Просмотров: 962
Последний ответ 06.12.2018, 16:46:48
от Tanyaks