0

管理部でK2アイテムの手動評価を行っています。私が何を意味するかを理解するには、この画像を見てください。そのようなコードをk2デフォルトファイルに追加しました

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

if (isset($_POST[ $row->id ])) {
            $submittedValue = $_POST[ $row->id];
        }
        ?>
        <form name="ratingk2" method="post">
			<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>
		 <option value = "<?php echo $value4; ?>"<?php echo ($value0 == $submittedValue)?" SELECTED":""?>>4</option>
		 <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>
		 <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>					
					
	<?php
   $rate =  $submittedValue;

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

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

			}

		}
   ?>
						
<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" />

						

機能しているように見えます。つまり、各 K2 アイテムの評価を設定しています。今、選択フォームの下に現在の評価を表示したいのですが、パラメーターを取得する方法がわかりません。私のコードでは /5.00 を使用していますが、0.00/5.00 しか表示されません。また、 $this->row->ratingSum と $row->ratingSum を試しましたが、機能しません(最初の質問はどうすればこれらのパラメーターを取得できますか?

2番目の質問は次のとおりです。評価をリセットするボタンを挿入しましたが、それを機能させる方法がわかりません。K2 ファイルで、レーティングをリセットできる関数を見つけましたが、その使用方法がわかりません。たぶんsome1が私を助けることができます?! この関数は次のとおりです

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

4

1 に答える 1

0

K2 レーティングのリセットは、Ajax を使用して実行できます。アイテム ID を特定のモジュールに送信し、resetK2RatingsAjax という関数でそのモジュールの上記のコードを使用できます。ここで com_ajax の使用方法に関する長い記事を公開しました: http://www.itoctopus.com/how-to-use-joomlas-ajax-interface-component-com_ajax

K2 がレーティングを保存する場所を正確に思い出せませんが、次のことを実行できます。

print_r($this>row);

また、K2 評価が保存されている場所を正確に示します。

于 2016-06-06T19:02:57.030 に答える