Файловый менеджер - Редактировать - /home/lmsyaran/public_html/administrator/components/com_hikashop/classes/vote.php
Назад
<?php /** * @package HikaShop for Joomla! * @version 2.2.3 * @author hikashop.com * @copyright (C) 2010-2013 HIKARI SOFTWARE. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php class hikashopVoteClass extends hikashopClass { var $tables = array('vote'); var $pkeys = array('vote_id'); var $toggle = array('vote_published'=>'vote_id'); var $votePublished = array('vote_published'=>'vote_id'); function save(&$element) { $app = Jfactory::getApplication(); if($app->isAdmin()) { return $this->saveBackend($element); } return $this->saveFrontend($element); } function saveBackend(&$element) { $app = JFactory::getApplication(); $db = JFactory::getDBO(); if(!$app->isAdmin()) { return false; } JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $currentElement = new stdClass(); if($element->vote_id == 0) { if(empty($element->vote_ref_id)) { $app = JFactory::getApplication(); $app->enqueueMessage(JText::_('VOTE_ENTER_ITEM_ID'), 'message'); return false; } if($element->vote_type == 'product') { $db->setQuery('SELECT product_id FROM '.hikashop_table(''.$element->vote_type.'').' WHERE product_id = '.$element->vote_ref_id.' AND product_parent_id = 0'); $currentElement = $db->loadResult(); } else { $do = true; $dispatcher->trigger('onBeforeVoteCreate', array( &$element, &$do, &$currentElement ) ); if(!$do){ return false; } } if(!$currentElement) { $app = JFactory::getApplication(); $app->enqueueMessage(JText::_('WRONG_ITEM_ID'), 'message'); return false; } } else { $do = true; $dispatcher->trigger('onBeforeVoteUpdate', array( &$element, &$do, &$currentElement ) ); if(!$do){ return false; } } if(empty($element->vote_type)) { $db->setQuery('SELECT vote_type FROM '.hikashop_table('vote').' WHERE vote_id = '.$element->vote_id); $vote_type = $db->loadResult(); }else{ $vote_type = $element->vote_type; } $vote_id = $element->vote_id; $new_published = $element->vote_published; $new_rating = isset($element->vote_rating)?$element->vote_rating:'0'; if($vote_id == 0) { $vote_ref_id = $element->vote_ref_id; } else { $results = $this->get($vote_id); $old_rating = $results->vote_rating; $vote_ref_id = $results->vote_ref_id; $old_published = $results->vote_published; } $status = parent::save($element); if($status && ($element->vote_id != 0 || ($element->vote_id == 0 && (int)$new_rating != 0))){ if($vote_type == 'product') { $typeClass = hikashop_get('class.product'); $results = $typeClass->get($vote_ref_id); $average_score = $results->product_average_score; $total_vote = $results->product_total_vote; } else { if(!isset($currentElement->average_score) || !isset($currentElement->total_vote)) { return false; } $average_score = $currentElement->average_score; $total_vote = $currentElement->total_vote; } if($vote_id == '0'){ //new vote (only backend vote) if($new_published == 1){ $average_score = (($average_score * $total_vote)+$new_rating)/($total_vote + 1); $total_vote = ($total_vote + 1); } }else if($old_published == '0'){ //Published - Unpublished if($new_published == 1 && $old_rating != 0){ //on publie if($new_rating == 0){$new_rating = $old_rating;} $average_score = (($average_score * $total_vote)+$new_rating)/($total_vote + 1); $total_vote = ($total_vote + 1); } }else{ // Save if($new_rating != '0' || $new_rating != ''){ if($old_published == 1){ if($new_published == 0){ if($old_rating != 0){ //update average & total - 1 if($total_vote - 1 == 0){ $average_score = 0; $total_vote = 0; }else{ $average_score = (($average_score * $total_vote)-$old_rating)/($total_vote - 1); $total_vote = ($total_vote - 1); } } }else{ if($old_rating != 0 && $new_rating == 0){ //update average & total - 1 if($total_vote - 1 == 0){ $average_score = 0; $total_vote = 0; }else{ $average_score = (($average_score * $total_vote)-$old_rating)/($total_vote - 1); $total_vote = ($total_vote - 1); } }else if($old_rating != 0 && $new_rating != 0){ //update average $average_score = (($average_score * $total_vote)-$old_rating)/($total_vote - 1); $average_score = (($average_score * ($total_vote - 1))+$new_rating)/$total_vote; }else if($old_rating == 0 && $new_rating != 0){ //update average & total + 1 $average_score = (($average_score * $total_vote)+$new_rating)/($total_vote + 1); $total_vote = ($total_vote + 1); } } }else{ if($new_published == 1 && $new_rating != 0){ //update average & total +1 $average_score = (($average_score * $total_vote)+$new_rating)/($total_vote + 1); $total_vote = ($total_vote + 1); } } } } $element->average_score = $average_score; $element->total_vote = $total_vote; $type = new stdClass(); if($vote_type == 'product'){ $type->product_id = (int)$vote_ref_id; $type->product_average_score = strip_tags($average_score); $type->product_total_vote = strip_tags($total_vote); $typeClass->save($type,true); } $dispatcher->trigger('onAfterVoteUpdate', array( &$element ) ); } return $status; } function saveFrontend(&$element) { $db = JFactory::getDBO(); $config = hikashop_config(); $user_ip = hikashop_getIP(); $date = time(); $nb_comment = 0; if(empty($element->user_id) || (int)$element->user_id == 0) $element->user_id = $user_ip; if(empty($element->vote_type)) $element->vote_type = 'product'; JPluginHelper::importPlugin( 'hikashop' ); $dispatcher = JDispatcher::getInstance(); $do = true; $currentElement = new stdClass(); $dispatcher->trigger('onBeforeVoteCreate', array( &$element, &$do, &$currentElement ) ); if(!$do){ return false; } $vElement = new stdClass(); $vElement->vote_ref_id = (int)$element->vote_ref_id; $vElement->vote_type = strip_tags($element->vote_type); $vElement->vote_user_id = strip_tags($element->user_id); $vElement->vote_pseudo = strip_tags($element->pseudo_comment); $vElement->vote_ip = strip_tags($user_ip); $vElement->vote_email = strip_tags($element->email_comment); $vElement->vote_date = $date; $comment_by_person_by_product = $config->get('comment_by_person_by_product'); $send_email = $config->get('email_each_comment'); $vote_if_bought = ($config->get('access_vote', 0) == 'buyed'); $purchased = 0; if($vote_if_bought == 1 && $vElement->vote_type == 'product') { $query = 'SELECT order_id FROM '.hikashop_table('order').' WHERE order_user_id = '.$db->quote($element->user_id).''; $db->setQuery($query); if(!HIKASHOP_J25){ $order_ids = $db->loadResultArray(); } else { $order_ids = $db->loadColumn(); } if(!empty($order_ids)) { $query = 'SELECT product_id FROM '.hikashop_table('product').' WHERE product_parent_id = '.(int)$vElement->vote_ref_id.''; $db->setQuery($query); if(!HIKASHOP_J25){ $product_ids = $db->loadResultArray(); } else { $product_ids = $db->loadColumn(); } if(empty($product_ids)) { $product_ids = array(0 => 0); } $query = 'SELECT order_product_id FROM '.hikashop_table('order_product').' WHERE order_id IN ('.implode(',',$order_ids).') AND product_id = '.(int)$vElement->vote_ref_id.' OR product_id IN ('.implode(',',$product_ids).')'; $db->setQuery($query); $result = $db->loadObjectList(); if(!empty($result)) $purchased = 1; } } if($element->hikashop_vote_type == 'useful') { $useful = JRequest::getVar('value', 0, 'default', 'int'); $vote_id = JRequest::getVar('hikashop_vote_id', 0, 'default', 'int'); $element->user_id = JRequest::getVar('hikashop_vote_user_id', 0, 'default', 'int'); if(empty($element->user_id)) $element->user_id = $user_ip; $already_vote = 0; $useful_old = 0; $query = 'SELECT vote_user_useful FROM '.hikashop_table('vote_user').' WHERE vote_user_id = '.(int)$vote_id.' AND vote_user_user_id = '.$db->quote($element->user_id).''; $db->setQuery($query); $already_vote = $db->loadResult(); if($already_vote > 0) { echo '2'; exit; } $voteClass = hikashop_get('class.vote'); $results = $voteClass->get((int)$vote_id); $useful_old = $results->vote_useful; if($useful == 1) { $useful_new = ($useful_old + 1); } else { $useful_new = ($useful_old - 1); } $vElement->vote_id = (int)$vote_id; $vElement->vote_useful = strip_tags($useful_new); $useful = new stdClass(); $useful->vote_id = (int)$vote_id; $useful->vote_useful = (int)$useful_new; $updated = parent::save($useful); if($updated) { $dispatcher->trigger('onAfterVoteUpdate', array( &$element, $useful ) ); $query = 'INSERT INTO '.hikashop_table('vote_user').' (vote_user_id,vote_user_user_id,vote_user_useful) VALUES ('.(int)$vote_id.','.$db->quote($element->user_id).',1)'; $db->setQuery($query); $db->query(); if( $db->getAffectedRows() > 0 ) { echo '1'; } } exit; } if($vote_if_bought && !$purchased) { echo '3'; exit; } if($vElement->vote_type == 'product'){ $typeClass = hikashop_get('class.product'); $results = $typeClass->get($vElement->vote_ref_id); $hikashop_vote_average_score = $results->product_average_score; $hikashop_vote_total_score = $results->product_total_vote; } else { if(!isset($currentElement->average_score) || !isset($currentElement->total_vote)) { echo '4'; exit; } $hikashop_vote_average_score = $currentElement->average_score; $hikashop_vote_total_score = $currentElement->total_vote; } $hikashop_vote_total_score_new = ($hikashop_vote_total_score + 1); $hikashop_vote_average_score_new = ((($hikashop_vote_average_score * $hikashop_vote_total_score)+$element->vote)/($hikashop_vote_total_score_new)); $vote_id = ''; $vote_old = ''; $query = 'SELECT * FROM '.hikashop_table('vote').' WHERE vote_type = '.$db->quote($vElement->vote_type).' AND vote_ref_id = '.(int)$vElement->vote_ref_id.' AND (vote_user_id = '.$db->quote($element->user_id).' OR vote_ip = '.$db->quote($user_ip).') AND vote_rating != 0'; $db->setQuery($query); $result = $db->loadObject(); if(!empty($result)){ $vote_id = $result->vote_id; $vote_old = $result->vote_rating; $published = $result->vote_published; } $query = 'SELECT vote_comment FROM '.hikashop_table('vote').' WHERE vote_type = '.$db->quote($vElement->vote_type).' AND vote_ref_id = '.(int)$vElement->vote_ref_id.' AND vote_user_id = '.$db->quote($element->user_id).' AND vote_comment != \'\''; $db->setQuery($query); $results = $db->loadObjectList(); foreach($results as $result) { $nb_comment++; } if($element->hikashop_vote_type == 'vote') { $vElement->vote_rating = strip_tags($element->vote); $vElement->vote_comment = ''; if(!empty($vote_id)){ $vElement->vote_id = $vote_id; if(!empty($hikashop_vote_total_score)) $hikashop_vote_average_score_new = (((($hikashop_vote_average_score * $hikashop_vote_total_score) - $vote_old) + $element->vote) / $hikashop_vote_total_score); $updated = parent::save($vElement); if($updated && $published == 1) { if($vElement->vote_type == 'product') { $type = new stdClass(); $type->product_id = (int)$vElement->vote_ref_id; $type->product_average_score = $hikashop_vote_average_score_new; $type->product_total_vote = (int)$hikashop_vote_total_score; $typeClass->save($type, true); } $element->average_score = $hikashop_vote_average_score_new; $element->total_vote = (int)$hikashop_vote_total_score; $dispatcher->trigger('onAfterVoteUpdate', array( &$element ) ); } echo '1'; } else { $inserted = parent::save($vElement); if($inserted){ if($vElement->vote_type == 'product') { $type = new stdClass(); $type->product_id = (int)$vElement->vote_ref_id; $type->product_average_score = $hikashop_vote_average_score_new; $type->product_total_vote = (int)$hikashop_vote_total_score_new; $typeClass->save($type, true); } $element->average_score = $hikashop_vote_average_score_new; $element->total_vote = (int)$hikashop_vote_total_score_new; $dispatcher->trigger('onAfterVoteUpdate', array( &$element ) ); } echo '2'; } exit; } jimport('joomla.filter.filterinput'); $safeHtmlFilter = JFilterInput::getInstance(null, null, 1, 1); $config = hikashop_config(); $vElement->vote_published = $config->get('published_comment', 0); if($element->hikashop_vote_type == 'both') { $vElement->vote_rating = strip_tags($element->vote); $vElement->vote_comment = $safeHtmlFilter->clean($element->comment, 'string'); if($nb_comment < $comment_by_person_by_product) { $inserted = parent::save($vElement); if($inserted) { if($vElement->vote_type == 'product') { $type = new stdClass(); $type->product_id = (int)$vElement->vote_ref_id; $type->product_average_score = $hikashop_vote_average_score_new; $type->product_total_vote = (int)$hikashop_vote_total_score_new; $typeClass->save($type,true); } $element->average_score = $hikashop_vote_average_score_new; $element->total_vote = (int)$hikashop_vote_total_score; $dispatcher->trigger('onAfterVoteUpdate', array( &$element ) ); if(!empty($send_email)) { $vote_id = $db->insertid(); $this->sendNotifComment($vote_id, strip_tags($element->comment),(int)$vElement->vote_ref_id,(int)$element->user_id, strip_tags($element->pseudo_comment), strip_tags($element->email_comment), $vElement->vote_type); } echo '1'; } else { echo '0'; } } else { echo '2'; } exit; } if($element->hikashop_vote_type == 'comment') { $vElement->vote_rating = '0'; $vElement->vote_comment = $safeHtmlFilter->clean($element->comment, 'string'); if($nb_comment < $comment_by_person_by_product) { $inserted = parent::save($vElement); $vote_id = 0; if($inserted) { $dispatcher->trigger('onAfterVoteUpdate', array( &$element ) ); if($send_email != '') { $vote_id = $db->insertid(); $this->sendNotifComment($vote_id, strip_tags($element->comment),(int)$vElement->vote_ref_id,(int)$element->user_id, strip_tags($element->pseudo_comment), strip_tags($element->email_comment), $vElement->vote_type); } echo '1'; } else { echo '0'; } } else { echo '2'; } } exit; } function delete(&$elements){ $db = JFactory::getDBO(); JArrayHelper::toInteger($elements); JPluginHelper::importPlugin('hikashop'); $dispatcher = JDispatcher::getInstance(); $do = true; $currentElements = array(); $dispatcher->trigger('onBeforeVoteDelete', array(&$elements, &$do, &$currentElements) ); if(!$do) return false; $db->setQuery('SELECT vote_id, vote_rating, vote_ref_id, vote_published, vote_type FROM '.hikashop_table('vote').' WHERE vote_id IN ('.implode(',',$elements).')'); $results = $db->loadObjectList(); foreach($results as $result) { $vote_rating = $result->vote_rating; $vote_ref_id = $result->vote_ref_id; $vote_published = $result->vote_published; if($result->vote_type == 'product'){ $productClass = hikashop_get('class.'.$result->vote_type); $resultVote = $productClass->get($vote_ref_id); $average_score = @$resultVote->product_average_score; $total_vote = @$resultVote->product_total_vote; } else { $element = $currentElements[$result->vote_id]; if(!isset($element->average_score) || !isset($element->total_vote)) { return false; } $average_score = $element->average_score; $total_vote = $element->total_vote; } $status = parent::delete($result->vote_id); if($status) { $query = 'DELETE FROM '.hikashop_table('vote_user').' WHERE vote_user_id = '.(int)$result->vote_id.' '; $db->setQuery($query); $db->query(); if($vote_published == 1 && $vote_rating != 0) { if($total_vote - 1 == 0) { $average_score = 0; $total_vote = 0; }else{ $average_score = ((($average_score * $total_vote)-$vote_rating)/($total_vote - 1)); $total_vote = ($total_vote - 1); } $element->vote_id = (int)$result->vote_id; $element->vote_ref_id = (int)$result->vote_ref_id; $element->average_score = $average_score; $element->total_vote = $total_vote; if($result->vote_type == 'product'){ $product = new stdClass(); $product->product_id = (int)$vote_ref_id; $product->product_average_score = $average_score; $product->product_total_vote = (int)$total_vote; $productClass->save($product,true); } } $dispatcher->trigger('onAfterVoteDelete', array(&$element) ); } } return true; } function saveForm(){ $element = new stdClass(); $element->vote_id = hikashop_getCID('vote_id'); $formData = JRequest::getVar( 'data', array(), '', 'array' ); foreach($formData['vote'] as $column => $value){ hikashop_secureField($column); if($column=='vote_comment'){ $safeHtmlFilter = & JFilterInput::getInstance(null, null, 1, 1); $element->$column = $safeHtmlFilter->clean($value); }else{ $element->$column = strip_tags($value); } } $result = $this->save($element); return $result; } function loadJS() { static $done = false; if($done) return true; $done = true; $current_url = hikashop_currentURL(); $baseUrl = hikashop_completelink('vote&task=save&'.hikashop_getFormToken().'=1'); $ajaxUrl = hikashop_completelink('vote&task=save',true,true); if(strpos($baseUrl, '?') !== false) $baseUrl .= '&'; else $baseUrl .= '?'; $config = hikashop_config(); $email_comment = $config->get('email_comment', 0); if($config->get('enable_status_vote', 0) == 'both') $vote_comment = 1; else $vote_comment = 0; $note_comment = $config->get('register_note_comment', 0); if($config->get('access_vote', 0) == 'buyed' || $config->get('access_vote', 0) == 'registered') $hikashop_vote_con_req = 1; else $hikashop_vote_con_req = 0; $js = ' function trim(myString){ myString = myString.replace(/(^\s|&)+/g,\'\').replace(/\s+$/g,\'\').replace(/\\n/g,\'<br \/>\'); return myString; } function hikashop_vote_useful(hikashop_vote_id,val){ var hikashop_vote_user_id = document.getElementById("hikashop_vote_user_id").value; var hikashop_vote_note_comment = ' . $note_comment . '; if((hikashop_vote_note_comment == 1 && hikashop_vote_user_id != "") || hikashop_vote_note_comment == 0){ data = "hikashop_vote_type=useful"; data += "&value=" + encodeURIComponent(val); data += "&hikashop_vote_id=" + encodeURIComponent(hikashop_vote_id); data += "&hikashop_vote_user_id=" + encodeURIComponent(hikashop_vote_user_id); window.Oby.xRequest("'.$ajaxUrl.'", {mode: "POST", data: data}, function(xhr) { var el = document.getElementById(hikashop_vote_id); if(xhr.responseText == "1"){el.innerHTML = " ' . JText::_('THANK_FOR_VOTE', true) . '";} else if(xhr.responseText == "3"){el.innerHTML = " ' . JText::_('ALREADY_VOTE_USEFUL', true) . '";} else{el.innerHTML = " ' . JText::_('VOTE_ERROR', true) . '";} }); setTimeout("document.location=\''.$current_url.'\'",2250); } else{ document.getElementById(hikashop_vote_id).innerHTML = " ' . JText::_('ONLY_REGISTERED_CAN_VOTE', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_id\').innerHTML = \'\'",2250); } } function hikashop_send_vote(hikashop_vote, from){ var re = new RegExp(\'id_(.*?)_hikashop\'); var m = re.exec(from); if(m != null){ var hikashop_vote_ref_id = ""; for (i = 1; i < m.length; i++) { hikashop_vote_ref_id = hikashop_vote_ref_id + m[i] + "\n"; } }else{ var hikashop_vote_ref_id = document.getElementById("hikashop_vote_ref_id").value; } document.getElementById("hikashop_vote_ok_"+parseInt(hikashop_vote_ref_id)).value = "1"; var hikashop_vote_vote_comment = ' . $vote_comment . '; var hikashop_vote_con_req = ' . $hikashop_vote_con_req . '; var hikashop_vote_user_id = document.getElementById("hikashop_vote_user_id_"+parseInt(hikashop_vote_ref_id)).value; var vote_type = document.getElementById("vote_type_"+parseInt(hikashop_vote_ref_id)).value; var div_vote_status = "hikashop_vote_status_"+parseInt(hikashop_vote_ref_id); if((hikashop_vote_con_req == 1 && hikashop_vote_user_id != "") || hikashop_vote_con_req == 0){ if(hikashop_vote_vote_comment == 1){//User must enter a comment to note a product if(from =="hikashop_vote_rating_id"){ document.getElementById("hikashop_vote_status_form").innerHTML = " ' . JText::_('LET_COMMENT_TO_VALID_VOTE', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); }else{ var el = document.getElementById(div_vote_status); el.innerHTML = " ' . JText::_('LET_COMMENT_TO_VALID_VOTE', true) . '"; setTimeout(function(){el.innerHTML = "";},2250); } } else{// Only vote - sending request to saveFrontend() function, and analysing the result, status(thanks, bought, error) if(from =="hikashop_vote_rating_id"){ var el = document.getElementById("hikashop_vote_status_form"); }else{ var el = document.getElementById(div_vote_status); } data = "vote_type=" + encodeURIComponent(vote_type); data += "&hikashop_vote_type=vote"; data += "&hikashop_vote=" + encodeURIComponent(hikashop_vote); data += "&hikashop_vote_user_id=" + encodeURIComponent(hikashop_vote_user_id); data += "&hikashop_vote_ref_id=" + encodeURIComponent(hikashop_vote_ref_id); window.Oby.xRequest("'.$ajaxUrl.'", {mode: "POST", data: data}, function(xhr) { if(xhr.responseText == "1"){el.innerHTML = " ' . JText::_('VOTE_UPDATED', true) . '";} else if(xhr.responseText == "2"){el.innerHTML = " ' . JText::_('THANK_FOR_VOTE', true) . '";} else if(xhr.responseText == "3"){el.innerHTML = " ' . JText::_('MUST_HAVE_BUY_TO_VOTE', true) . '";} else{el.innerHTML = " ' . JText::_('VOTE_ERROR', true) . '";} }); setTimeout("document.location=\''.$current_url.'\'",2250); } } else{ //The user must be registered to vote if(from =="hikashop_vote_rating_id"){ document.getElementById("hikashop_vote_status_form").innerHTML = " ' . JText::_('ONLY_REGISTERED_CAN_VOTE', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); }else{ var el = document.getElementById(div_vote_status); el.innerHTML = " ' . JText::_('ONLY_REGISTERED_CAN_VOTE', true) . '"; setTimeout(function(){el.innerHTML = "";},2250); } } } function hikashop_send_comment(){ //Action on submit comment var hikashop_vote_ref_id = document.getElementById("hikashop_vote_ref_id").value; var hikashop_vote_comment = encodeURIComponent(trim(document.getElementById("hikashop_vote_comment").value)); var vote_type = document.getElementById("vote_type_"+parseInt(hikashop_vote_ref_id)).value; var hikashop_vote_ok = document.getElementById("hikashop_vote_ok_"+parseInt(hikashop_vote_ref_id)).value; var hikashop_vote_vote_comment = ' . $vote_comment . '; var hikashop_vote_con_req = ' . $hikashop_vote_con_req . '; var email_comment_bool = ' . $email_comment . '; var hikashop_vote_user_id = document.getElementById("hikashop_vote_user_id_"+parseInt(hikashop_vote_ref_id)).value; var pseudo_comment = document.getElementById("pseudo_comment").value; var email_comment = document.getElementById("email_comment").value; var reg = new RegExp(\'^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$\', \'i\'); // TEST EMAIL ADDRESS var verif_mail = reg.test(email_comment); if (hikashop_vote_user_id != ""){verif_mail = true;} if((hikashop_vote_con_req == 1 && hikashop_vote_user_id != "") || hikashop_vote_con_req == 0){ //if connection not required if(pseudo_comment == "" || (email_comment_bool == 1 && verif_mail == false)){ //if not connected if(pseudo_comment == ""){ document.getElementById("hikashop_vote_status_form").innerHTML = "' . JText::_('PSEUDO_REQUIRED', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); }else{ document.getElementById("hikashop_vote_status_form").innerHTML = "' . JText::_('EMAIL_INVALID', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); } }else{ if(hikashop_vote_vote_comment == 1){ // Save comment & vote. var hikashop_vote = document.getElementById("hikashop_vote_rating_id").value; if(hikashop_vote_comment == "" || hikashop_vote_ok == 0){ // Just show a message document.getElementById("hikashop_vote_status_form").innerHTML = "' . JText::_('VOTE_AND_COMMENT_PLEASE', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); }else{ var data = window.Oby.getFormData("hikashop_comment_form"); var regEx = /ctrl=(.*?)&/; data = data.replace(regEx,""); var regEx = /task=(.*?)&/; data = data.replace(regEx,""); var regEx = /limitstart=(.*?)&/; data = data.replace(regEx,""); data += "&hikashop_vote_type=both"; regEx = /hikashop_vote_ref_id/; if(!regEx.test(data)){ data += "&vote_type=" + encodeURIComponent(vote_type); data += "&email_comment=" + encodeURIComponent(email_comment); data += "&pseudo_comment=" + encodeURIComponent(pseudo_comment); data += "&hikashop_vote_user_id=" + encodeURIComponent(hikashop_vote_user_id); data += "&hikashop_vote_ref_id=" + encodeURIComponent(hikashop_vote_ref_id); data += "&hikashop_vote_comment=" + encodeURIComponent(hikashop_vote_comment); } data += "&hikashop_vote=" + encodeURIComponent(hikashop_vote); window.Oby.xRequest("'.$ajaxUrl.'", {mode: "POST", data: data}, function(xhr) { var el = document.getElementById("hikashop_vote_status_form"); if(xhr.responseText == "1"){el.innerHTML = " ' . JText::_('THANKS_FOR_PARTICIPATION', true) . '";document.getElementById("hikashop_vote_comment").value="";} else if(xhr.responseText == "3"){el.innerHTML = " ' . JText::_('MUST_HAVE_BUY_TO_VOTE', true) . '";} else if(xhr.responseText == "2"){el.innerHTML = " ' . JText::_('REACH_LIMIT_OF_COMMENT', true) . '";} else{el.innerHTML = " ' . JText::_('VOTE_ERROR', true) . '";} }); setTimeout("document.location=\''.$current_url.'\'",2250); } }else if(hikashop_vote_comment != ""){ var data = window.Oby.getFormData("hikashop_comment_form"); var regEx = /ctrl=(.*?)&/; data = data.replace(regEx,""); var regEx = /task=(.*?)&/; data = data.replace(regEx,""); var regEx = /limitstart=(.*?)&/; data = data.replace(regEx,""); data += "&hikashop_vote_type=comment"; regEx = /hikashop_vote_ref_id/; if(!regEx.test(data)){ data += "&vote_type=" + encodeURIComponent(vote_type); data += "&email_comment=" + encodeURIComponent(email_comment); data += "&pseudo_comment=" + encodeURIComponent(pseudo_comment); data += "&hikashop_vote_user_id=" + encodeURIComponent(hikashop_vote_user_id); data += "&hikashop_vote_ref_id=" + encodeURIComponent(hikashop_vote_ref_id); data += "&hikashop_vote_comment=" + encodeURIComponent(hikashop_vote_comment); } window.Oby.xRequest("'.$ajaxUrl.'", {mode: "POST", data: data}, function(xhr) { var el = document.getElementById("hikashop_vote_status_form"); if(xhr.responseText == "1"){el.innerHTML = " ' . JText::_('THANKS_FOR_COMMENT', true) . '";document.getElementById("hikashop_vote_comment").value="";} else if(xhr.responseText == "3"){el.innerHTML = " ' . JText::_('MUST_HAVE_BUY_TO_VOTE', true) . '";} else if(xhr.responseText == "2"){el.innerHTML = " ' . JText::_('REACH_LIMIT_OF_COMMENT', true) . '";} else{el.innerHTML = " ' . JText::_('VOTE_ERROR', true) . '";} }); setTimeout("document.location=\''.$current_url.'\'",2250); }else{ document.getElementById("hikashop_vote_status_form").innerHTML = " ' . JText::_('PLEASE_COMMENT', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); } } }else{ document.getElementById("hikashop_vote_status_form").innerHTML = " ' . JText::_('ONLY_REGISTERED_CAN_COMMENT', true) . '"; setTimeout("document.getElementById(\'hikashop_vote_status_form\').innerHTML = \'\'",2250); } } '; if(!HIKASHOP_PHP5) { $doc =& JFactory::getDocument(); } else { $doc = JFactory::getDocument(); } $doc->addScriptDeclaration("\n<!--\n" . $js . "\n//-->\n"); if(!HIKASHOP_J30) JHTML::_('behavior.mootools'); else JHTML::_('behavior.framework'); } function sendNotifComment($vote_id, $comment, $vote_ref_id, $user_id, $pseudo, $email, $vote_type){ if($pseudo != '0'){ $username = $pseudo; $email = $email; $config =& hikashop_config(); $email_enabled = $config->get('email_comment'); if($email_enabled == 0){ $email = "Not required"; } } else { $userClass = hikashop_get('class.user'); $userInfos = $userClass->get($user_id); if(!empty($userInfos)){ $username = $userInfos->username; $email = $userInfos->email; } } $result = new stdClass(); $result->vote_id = $vote_id; $result->vote_type = $vote_type; $result->product_id = $vote_ref_id; $result->username_comment = $username; $result->email_comment = $email; $result->comment = $comment; $type = null; if($vote_type == 'product') { $productClass = hikashop_get('class.product'); $type = $productClass->get($vote_ref_id); } $mailClass = hikashop_get('class.mail'); $infos = new stdClass(); $infos->type =& $type; $infos->result =& $result; $mail = $mailClass->get('new_comment',$infos); $mail->subject = JText::sprintf($mail->subject,HIKASHOP_LIVE); $config =& hikashop_config(); $mail->dst_email = $config->get('email_each_comment'); $mailClass->sendMail($mail); return ; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка