$totalpages) { $numToShowRight--; } $firstpage = $pagenumber - $numToShowLeft; $lastpage = $pagenumber + $numToShowRight; //"первая страница" if ($firstpage != 1) { if (($addr2 != "rating") && ($addr2 != "power")) { $href = "href=\"opinion.php?$page=1$addr2\""; } else { $href = "href=\"javascript:ChangeText('do=$addr2&num=1', '$addr2', '$vbphrase[opinion_working]')\""; } $pages .= "« $vbphrase[first]"; } // значок "<" if ($pagenumber != 1) { if (($addr2 != "rating") && ($addr2 != "power")) { $href = "href=\"opinion.php?$page=".($pagenumber-1)."$addr2\""; } else { $href = "href=\"javascript:ChangeText('do=$addr2&num=".($pagenumber-1)."', '$addr2', '$vbphrase[opinion_working]')\""; } $pages .= " < "; } //циферы for ($i = $firstpage; $i<=$lastpage; $i++) { if ($i == $pagenumber) { $pages .= " $i "; } else { if (($addr2 != "rating") && ($addr2 != "power")) { $href = "href=\"opinion.php?$page=$i$addr2\""; } else { $href = "href=\"javascript:ChangeText('do=$addr2&num=$i', '$addr2', '$vbphrase[opinion_working]')\""; } $pages .= " $i "; } } //значок ">" if ($pagenumber != $totalpages) { if (($addr2 != "rating") && ($addr2 != "power")) { $href = "href=\"opinion.php?$page=".($pagenumber+1)."$addr2\""; } else { $href = "href=\"javascript:ChangeText('do=$addr2&num=".($pagenumber+1)."', '$addr2', '$vbphrase[opinion_working]')\""; } $pages .= " > "; } //"последняя страница" if ($lastpage < $totalpages) { if (($addr2 != "rating") && ($addr2 != "power")) { $href = "href=\"opinion.php?$page=$totalpages$addr2\""; } else { $href = "href=\"javascript:ChangeText('do=$addr2&num=$totalpages', '$addr2', '$vbphrase[opinion_working]')\""; } $pages .= "» $vbphrase[last]"; } return $pages; } //Статистика по рэйтингу: function makeStats($stats_hash, $vbulletin, $rating, $vbphrase) { while ($pointer = $vbulletin->db->fetch_array($stats_hash)) { $username = $pointer['username']; $stats = $pointer['stats']; $userid = $pointer['userid']; $colorPos = $vbulletin->options['opinion_positive_figures_color']; $colorNeg = $vbulletin->options['opinion_negative_figures_color']; eval('$statsTable.= "' . fetch_template('opinion_stats_table') . '";'); } return $statsTable; } //форма отправки мнения ($touserid - кому правим мнения, $fromuserid - от имени кого правим мнения) function makeForm($vbulletin, $touserid, $fromuserid, $username, $userComment, $uop, $viewerComment, $viewerValue, $smallstats, $about, $vbphrase, $ajax) { //Перед каждой загрузкой формы пишем во временную табличку 3 основные величины: Силу, от кого и кому + имя $postid = rand(1,999999999); $vbulletin->db->query_write(" INSERT INTO " . TABLE_PREFIX . "opinion_post (`postid`, `username`, `fromuserid`, `touserid`, `uop`, `dateline`) VALUES ($postid, '".$vbulletin->db->escape_string($username)."', $fromuserid, $touserid, $uop, ".TIMENOW.") "); if ($viewerValue == "automax") { $optionsPlus.= "\n"; } else { $optionsPlus.= "\n"; } for ($i = $uop; $i >= 1 ; $i--) { if ($i == $viewerValue) { $optionsPlus.= "\n"; } else { $optionsPlus.= "\n"; } } if ((0 == $viewerValue)&&($viewerValue!="automax")&&($viewerValue!="automin")) { $optionZero.= "\n"; } else { $optionZero.= "\n"; } for ($i = 1; $i <= $uop; $i++) { if ($i == ($viewerValue - $viewerValue - $viewerValue)) { $optionsMinus.= "\n"; } else { $optionsMinus.= "\n"; } } if ($viewerValue == "automin") { $optionsMinus.= "\n"; } else { $optionsMinus.= "\n"; } //Редактируем, или просто отправляем мнение? $type = "post"; //Проверяем, редактирование у нас, или обычная форма из FROM/ABOUT if ((string)$ajax=="edit") { $ajaxForm = true; $ajax=true; $type = "edit_save"; } eval('$form = "' . fetch_template('opinion_form') . '";'); return $form; } function makeSmallStats($userid, $opinion_overall, $quantity_pos, $quantity_neg, $username, $about, $navtext, $vbphrase, $colorPos, $colorNeg) { $quantity_all = $quantity_pos + $quantity_neg; if ($opinion_overall > 0) { $figuresColor.= "+"; } else { if ($opinion_overall == 0) { $figuresColor.= ""; } else { $figuresColor.= ""; } } $figuresColor.= $opinion_overall . ""; eval('$smallstats = "' . fetch_template('opinion_smallstats') . '";'); return $smallstats; } function makeAjaxSmallStats ($touserid, $username, $vbphrase, $db, $colorPos, $colorNeg) { $opinionquerry = $db->query_first(" SELECT SUM(value) as stats_averall, count(value) as quantity FROM ( SELECT value FROM ( SELECT `fromuserid` , `touserid` , `dateline` , `value` , `deleted` FROM `" . TABLE_PREFIX . "opinion` WHERE `touserid` = $touserid AND `deleted` IS NULL ORDER BY `dateline` DESC ) AS temp GROUP BY `fromuserid` ) as temp2 "); $opinionquerry2 = $db->query_first(" SELECT count(value) as quantity_neg FROM ( SELECT value FROM ( SELECT `fromuserid` , `touserid` , `dateline` , `value` , `deleted` FROM `" . TABLE_PREFIX . "opinion` WHERE `touserid` = $touserid AND `deleted` IS NULL ORDER BY `dateline` DESC ) AS temp GROUP BY `fromuserid` ) as temp2 WHERE value < 0 "); return makeSmallStats($touserid, $opinionquerry["stats_averall"], ($opinionquerry['quantity']-$opinionquerry2['quantity_neg']), $opinionquerry2['quantity_neg'], $username, true, false, $vbphrase, $colorPos, $colorNeg); } function makeOpinionBank($opinions, $username, $otherUserid, $parser, $vbulletin, $from, $viewHistory, $edit, $vbphrase, $ajax) { $quantity_neg = $quantity_pos = $opinion_overall = 0; if (!$from) { $tousername = $username; if ($username == "") { $last5 = true; } } //Для history - прячем "вернуть" для первого мнения $hideRestoreFirst = true; while ($pointer = $vbulletin->db->fetch_array($opinions)) { $opinionid = $pointer['opinionid']; $whoDeleted = ""; $modyfied = ""; $markStart = ""; $markFinish = ""; //чтобы юзер смог править свои мнения $editTemp = $edit; if ((string)$ajax=="history") { $ajax=false; $showHistory = true; } //Для динамического удаления комментария при нажатии SUBMIT, если включен аякс и яваскрипт if ((!$from) && (!$last5) && ($vbulletin->userinfo['userid'] == $pointer['fromuserid'])) { $markStart = "
"; $markFinish = "
"; } $comment = $parser->do_parse($pointer['comment']); $dateline = vbdate("d.m.Y", $pointer['dateline'], true); if (intval($pointer['value']) < 0) { $quantity_neg++; } else { $quantity_pos++; } $opinion_overall = $opinion_overall + intval($pointer['value']); $figuresColor = makeFiguresColor($pointer['value'], $vbulletin->options['opinion_positive_figures_color'], $vbulletin->options['opinion_negative_figures_color']); //Для динамического изменения комментария при нажатии SUBMIT, если включен аякс и яваскрипт (закрывающий див) if ($viewHistory) { $history = $pointer['history']; if ($pointer['forcehistory'] == 1) { $history = -1; } } if ($pointer['deleted'] != "") { $whoDeleted = $pointer['deleted']; //если первое мнение в хистори удаленное - "вернуть" не прячем $hideRestoreFirst = false; } if ($pointer['modyfied'] != "") { $modyfied = $pointer['modyfied']; } if ($from) { if ($pointer['touserid'] == $vbulletin->userinfo['userid']) { $opinion_bank["userComment"] = $parser->do_parse($pointer['comment']); } $userValue = $pointer['value']; if ($pointer['autofill'] !=0) { $autofill = true; } $userid = $pointer['touserid']; //Для from $tousername = $pointer['username']; //Для History $opinion_bank["username"] = $pointer['username']; //чтобы юзер смог править свои мнения if ($pointer['fromuserid'] == $vbulletin->userinfo['userid']) { $edit = true; } } else { if ($pointer['fromuserid'] == $vbulletin->userinfo['userid']) { //чтобы юзер смог править свои мнения $edit = true; $opinion_bank["viewerComment"] = $pointer['comment']; if ($pointer['autofill'] == -1) { $opinion_bank["viewerValue"] = "automin"; } else { if ($pointer['autofill'] == 1) { $opinion_bank["viewerValue"] = "automax"; } else { $opinion_bank["viewerValue"] = $pointer['value']; } } } if ($pointer['autofill'] !=0) { $autofill = true; } $userid = $pointer['fromuserid']; //для последних пяти мнений if ($last5) { $touser = fetch_userinfo($pointer['touserid']); $tousername = $touser['username']; $otherUserid = $pointer['touserid']; $deleteMark = "last5_table"; } else { //Чтобы разделители не были жирными, убираем верхний. Кроме случая с last5. $border = " style=\"border-top:0px;\""; } $username = $pointer['username']; } if ($edit) { $editMark = "edit_".$opinionid; if ((String)$deleteMark!="last5_table") { $deleteMark = $editMark; } } eval('$opinion_table.= "' . fetch_template('opinion_table') . '";'); $edit = $editTemp; //Чтобы разделители не были жирными, убираем верхний. теперь для случая с last5. $border = " style=\"border-top:0px;\""; $figuresColor=""; $autofill = false; $hideRestoreFirst = false; if ($pointer['deleted'] != "") { //если первое мнение в хистори удаленное, и после него - тоже удаленное итд - прячем "вернуть" для следующего после них "нормального" мнения, которое показывается всем $hideRestoreFirst = true; } } $opinion_bank["stats_averall"] = $opinion_overall; $opinion_bank["stats_quantity_pos"] = $quantity_pos; $opinion_bank["stats_quantity_neg"] = $quantity_neg; $opinion_bank["table"] .= $opinion_table; return $opinion_bank; } function makeFiguresColor($value, $colorPos, $colorNeg) { if ($value > 0) { $figuresColor.= "+"; } else { if ($value == 0) { $figuresColor.= ""; } else { $figuresColor.= ""; } } return ($figuresColor.$value.""); } // ######################## //FUNCTIONS ############################# ?> Форум ClioClub - Система Мнений

Вернуться   Форум ClioClub

Система Мнений v.1.5.0 by True ©2008-2010


 

 
 
Текущее время: 07:57. Часовой пояс GMT +3.


Copyright ©2009 - 2019, CityCat.
Перевод: zCarot
ClioClub.net
ClioClub.net Twitter Internet Map
Время генерации страницы 0.24977 секунды с 13 запросами