Всем доброго дня! Очень рад находке вашего ресурса, и надеюсь тут мне смогут помочь. В общем есть вот такой код от модуля друпал Код (Text): <ul> <li class="thumb-up"> <?php print $up_button; ?> <div class="percent"><?php print $results['up_percent'] . '%'; ?></div> </li> <li class="thumb-down"> <?php print $down_button; ?> <div class="percent"><?php print $results['down_percent'] . '%'; ?></div> </li> </ul> <?php if ($info) { print '<div class="rate-info">' . $info . '</div>'; } if ($display_options['description']) { print '<div class="rate-description">' . $display_options['description'] . '</div>'; } Вот как это выглядит в действии Но как можно исправить счетчик, нужно чтобы он не в процентах вел счет, а в единицах. То есть 5 человек проголосовало за, четверо против, и на счетчике также было 5 и 4, а не в процентах. Заранее спасибо.
Посмотри откуда массив $results скрипт берёт, чтобы посмотреть какие данные в базе, если голоса от туда.
Нашел 3 файла. 1. Код (Text): // Get voting results. $results = rate_get_results($content_type, $content_id, $widget_id); $results['empty'] = $results['count'] ? FALSE : TRUE; 2. Код (Text): $results = array(); $oldest = 7; // Display at least 7 days. while ($rec = $res->fetchAssoc()) { $oldest = max($oldest, $rec['days_ago']); $results[$rec['days_ago'] . ':' . $rec['value']] = $rec['count']; } if ($results) { $max_count = 0; foreach ($widget->options as $option) { $value = $option[0]; $title = $widget->translate ? t($option[1]) : $option[1]; $chart['#data'][$title] = array(); for ($i = $oldest; $i >= 0; --$i) { $count = isset($results["$i:$value"]) ? $results["$i:$value"] : 0; $count = max(0.1, $count); $chart['#data'][$title][] = (int) $count; $max_count = max($max_count, $count); } 3. Скорее всего то что вам нужно Код (Text): * - $results: Array with voting results * array( * 'rating' => 12, // Average rating * 'options' => array( // Votes per option. Only available when value_type == 'options' * 1 => 234, * 2 => 34, * ), * 'count' => 23, // Number of votes * 'up' => 2, // Number of up votes. Only available for thumbs up / down. * 'down' => 3, // Number of down votes. Only available for thumbs up / down. * 'up_percent' => 40, // Percentage of up votes. Only available for thumbs up / down. * 'down_percent' => 60, // Percentage of down votes. Only available for thumbs up / down. * 'user_vote' => 80, // Value for user vote. Only available when user has voted. * ) Это то? Добавил: А еще я вот нашел в файле админ.пхп вот такой код: Код (Text): if ($widget->customizable) { $options = array( 'percent' => t('Percentage'), 'points' => t('Points'), 'option' => t('Options'), И что если я заменю в самом первом коде который я скинул <div class="percent"> на <div class="points"> Наверно так и сделаю посмотрим что выйдет Добавил: Не, не прокатило. ( нужно что-то менять в коде.
Едем дальше, найди функцию rate_get_results и покажи её код. Если в пункте 3 то что я думаю, то замени это <?php print $results['up_percent'] . '%'; ?> на это <?php print $results['up']; ?>
Вот, нашел в первом файле Код (Text): function rate_get_results($content_type, $content_id, $widget_id) { global $user; $widgets = variable_get(RATE_VAR_WIDGETS, array()); $widget = $widgets[$widget_id]; $criteria = array( 'entity_type' => $content_type, 'entity_id' => $content_id, 'tag' => $widget->tag, 'value_type' => $widget->value_type, ); // Check if we should use the source translation. if ($widget->use_source_translation) { $criteria['entity_id'] = _rate_get_source_translation($criteria['entity_type'], $criteria['entity_id']); }
А помогло, то что я сказал заменить? Ещё покажи что выведет var_dump($results); // это в сюда например вставь <?php var_dump($results); print $results['up_percent'] . '%'; ?>
Да спасибо большое за помощ, все заработало! Остальсь ксс подправить и все очень здорово будет. Оказывается все было еще более просто. Убрав параметр "percent" счисление автоматически стало стандартным? я правильно понимаю?
В массиве (php.net/manual/ru/language.types.array.php) $result был ключ up и down который помечен (в документации выходных параметров пункт 3 вашего сообщения) как: "Number of up votes. Only available for thumbs up / down." значит что там содержится кол-во проголосовавших за и против. По простому нужно было убрать percent.