© Сделано на LiveStreet
Дизайн - ©2009 MODx RED Group
[+form.guest:is=`1`:then=`
.............
<label for="like[+jot.id+]">Понравилось ли*:<br />
<select tabindex="6" name="like" id="like[+jot.id+]" size="1">
<option value="" selected></option>
<option value="1">Да, понравилось</option>
<option value="0">Нет, не понравилось</option>
</select></label><br />
`:strip+]<strong>нравится?:</strong> [+comment.custom.like:esc:is=`0`:then=`<span style="color:red;">Нет, не нравится</span>`:else=`<span style="color:green;">Да, нравится</span>`+][!Jot? &action=`comments` &tplComments=`jotComment` &customfields=`like,name,email`!]
[!Jot? &action=`form` &captcha=`1` &tplForm=`jotForm` &customfields=`name,email,like` &validate=`name:Вы не ввели своё имя,email:Поле с почтой заполнено не верно:email,like:вы не отметили понравилась ли Вам организация`!]<?php
/**
* goodok - вывод результата опроса в jot
* @category snippet
* @version 1.0
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License (GPL)
* @author ManManovich (degunoid@gmaail.com)
* @params &template - имя чанка, с шаблоном. (не обязательно)
* @params &id - id документа, например для вызова в Ditto. По умолчанию documentIdentifier.
* @placeholders [+ok+] - хрошо [+bad+] - плохо :)
*/
//подготовка переменных
if (empty($id)) $id=$modx->documentIdentifier;
if (empty($template)){
$template = "<div style='width:90px; margin:0 auto;'><div style='color:green; float:left; text-align:center'>+[+ok+]</div><div style='color:red;float:right;text-align:center;'>-[+bad+]</div></div>";
}
else{
$template = $modx->getChunk($template);
}
//выбираем id всех опубликованных комментов, в документе с заданным id
$query ='SELECT id FROM '.$modx->getFullTableName('jot_content').' WHERE published=1 AND uparent='.$id;
$result = $modx->db->query($query);
$ids = $modx->db->makeArray($result);
//готовим второй запрос за содержимым поля "понравилось"
$i=0;
if(!empty($ids)){
foreach($ids as $item){
if($i == 0){
$listIds = "id=".$item['id']." ";
}
else{
$listIds .= "OR id=".$item['id']." ";
}
$i++;
}
$query = "SELECT content FROM ".$modx->getFullTableName('jot_fields')." WHERE label='like' AND (".$listIds.")";
$result = $modx->db->query($query);
$result = $modx->db->makeArray($result);
//подсчёт лайков
foreach ($result as $item){
if($item['content'] == 1) $ok++;
if($item['content'] == 0) $bad++;
}
}
//готовим вывод и выводим
$output = str_replace(array("[+ok+]", "[+bad+]"), array($ok, $bad), $template);
return $output;
?>
Комментарии (8)
RSS свернуть / развернутьPaulo
ManManovich
Paulo
Zinich66
Paulo
ManManovich
Paulo
Paulo
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.