2016-06-06 20 views
0

Ich mache manuelle Bewertung für K2 Artikel im Admin-Teil. Um zu verstehen, was ich meine, können Sie auf diese image schauen. Ich habe einen solchen Code in k2 defauld DateiWie bekomme ich Rating-Wert und setzen Sie es in K2

<?php 
 
     $submittedValue = ""; 
 
     $value0 = "0.0"; 
 
     $value1 = "0.5"; 
 
     $value2 = "1.0"; 
 
     $value3 = "1.5"; 
 
\t \t $value4 = "2.0"; 
 
\t \t $value5 = "2.5"; 
 
     $value6 = "3.0"; 
 
     $value7 = "3.5"; 
 
     $value8 = "4.0"; 
 
\t \t $value9 = "4.5"; 
 
    \t \t $value10 = "5.0"; 
 

 
if (isset($_POST[ $row->id ])) { 
 
      $submittedValue = $_POST[ $row->id]; 
 
     } 
 
     ?> 
 
     <form name="ratingk2" method="post"> 
 
\t \t \t <select project="<?php echo $row->id;?>" id="<?php echo $row->id; ?>" name="<?php echo $row->id; ?>" style="width:70px;"> 
 
     <option value = "<?php echo $value0; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>0</option> 
 
     <option value = "<?php echo $value1; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>1</option> 
 
     <option value = "<?php echo $value2; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>2</option> 
 
     <option value = "<?php echo $value3; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>3</option> 
 
\t \t <option value = "<?php echo $value4; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>4</option> 
 
\t \t <option value = "<?php echo $value5; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>5</option> 
 
     <option value = "<?php echo $value6; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>6</option> 
 
     <option value = "<?php echo $value7; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>7</option> 
 
     <option value = "<?php echo $value8; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>8</option> 
 
\t \t <option value = "<?php echo $value9; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>9</option> 
 
     <option value = "<?php echo $value10; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>10</option> 
 
     </select> 
 
     <input type="submit" name="submit" id="submit" value="Submit" /> 
 
     </form> \t \t \t \t \t 
 
\t \t \t \t \t 
 
\t <?php 
 
    $rate = $submittedValue; 
 

 
\t \t if ($rate >= 0.5 && $rate <= 5.0) 
 
\t \t { 
 
\t \t \t $db = JFactory::getDBO(); 
 
\t \t \t $userIP = $_SERVER['REMOTE_ADDR']; 
 
\t \t \t $query = "SELECT * FROM #__k2_rating WHERE itemID =".(int)$row->id; 
 
\t \t \t $db->setQuery($query); 
 
\t \t \t $rating = $db->loadObject(); 
 

 
\t \t \t if (!$rating) 
 
\t \t \t { 
 
\t \t \t \t $query = "INSERT INTO #__k2_rating (itemID, lastip, rating_sum, rating_count) VALUES (".(int)$row->id.", ".$db->Quote($userIP).", {$rate}, 1)"; 
 
\t \t \t \t $db->setQuery($query); 
 
\t \t \t \t $db->query(); 
 
\t \t \t \t echo JText::_('THANKS FOR RATING'); 
 

 
\t \t \t } 
 

 
\t \t } 
 
    ?> 
 
\t \t \t \t \t \t 
 
<span><?php echo number_format(($ratingSum/$ratingCount),2); ?>/5.00</span> 
 

 
<input id="resetRatingButton" type="button" value="<?php echo JText::_('K2_RESET'); ?>" class="button" name="resetRating" /> 
 

 
\t \t \t \t \t \t

hinzugefügt

Sieht aus wie es funktioniert, ich meine, es Bewertung für jede K2 Einstelloptionen. Jetzt möchte ich aktuelle Bewertung unter ausgewählter Form zeigen und weiß nicht, wie man Parameter erhält. In meinem Code verwende ich/5,00, aber es zeigt nur 0,00/5,00. Auch ich versuchte $ this-> row-> ratingSum und $ row-> ratingSum, aber es funktioniert nicht (Also meine erste Frage, wie kann ich diese paramentres bekommen?

Zweite Frage folgt. Ich habe Knopf eingefügt, um die Bewertung zurückzusetzen und nicht wissen, wie es funktioniert. In K2 Dateien ich eine Funktion gefunden, die Bewertung zurückgesetzt konnte und weiß nicht, wie es zu benutzen. Vielleicht kann some1 mir helfen ?! diese Funktion folgt

function resetRating() 
 
\t { 
 
\t \t $mainframe = JFactory::getApplication(); 
 
\t \t $id = JRequest::getInt('id'); 
 
\t \t $db = JFactory::getDBO(); 
 
\t \t $query = "DELETE FROM #__k2_rating WHERE itemID={$id}"; 
 
\t \t $db->setQuery($query); 
 
\t \t $db->query(); 
 
\t \t if ($mainframe->isAdmin()) 
 
\t \t \t $url = 'index.php?option=com_k2&view=item&cid='.$id; 
 
\t \t else 
 
\t \t \t $url = 'index.php?option=com_k2&view=item&task=edit&cid='.$id.'&tmpl=component'; 
 
\t \t $mainframe->enqueueMessage(JText::_('K2_SUCCESSFULLY_RESET_ITEM_RATING')); 
 
\t \t $mainframe->redirect($url); 
 
\t }

Antwort

0

Das Zurücksetzen der K2-Bewertung kann mit Ajax erfolgen - Sie senden die Artikel-ID an ein bestimmtes Modul , und Sie können den obigen Code in diesem Modul in einer Funktion namens resetK2RatingsAjax verwenden. Wir haben einen langen Beitrag veröffentlicht, wie com_ajax verwenden hier: http://www.itoctopus.com/how-to-use-joomlas-ajax-interface-component-com_ajax

Ich kann mich nicht genau erinnern, wo K2 speichert die Bewertung, aber man kann nur tun, um eine:

print_r($this>row); 

Und es sagt Ihnen genau, wo Die K2-Bewertung wird gespeichert.