ДоХтор,
$total = mysql_result(mysql_query("SELECT count(*) FROM `anekdot` WHERE `type` = 'anekdot'"), 0);
Спасибо. Но тогда по типу
anekdot так как подсчитывать нужно количество анекдотов. Еще раз спасибо.
Ой, тебе же не категории нужны, а анекдоты? Тогда по типу
anekdot:
$total = mysql_result(mysql_query("SELECT count(*) FROM `anekdot` WHERE `type` = 'anekdot'"), 0);
# Dezaktivator (21.12.2017 / 17:09)
ДоХтор, $total = mysql_result(mysql_query("SELECT count(*) FROM `anekdot` WHERE `type` = 'anekdot'"), 0);
Спасибо. Но тогда по типу anekdot так как подсчитывать нужно количество анекдотов. Еще раз с
Да-да, по типу "анекдот", всё верно )
Не пойму в чем причина, когда жмешь на + голос засчитывается и страница просто обновляется, а когда на - то голос засчитывает и перекидывает к категориям.
else {
$rating = '<a href="?act=plus&id='.$res['id'].'">+</a> <strong>'.$res['rating'].'</strong> <a href="?act=minus&id='.$res['id'].'">-</a>';
}
Dezaktivator, это надо смотреть в файле minus (с расширением, скорее всего .php) , потому что при клике по "-" браузер направляется по адресу: ?act=minus&id=xxx
ДоХтор, Так там всего один файл индекс (в архиве) если не считать инсталла.
# Dezaktivator (22.12.2017 / 20:00)
ДоХтор, Так там всего один файл индекс (в архиве) если не считать инсталла.
Тогда надо найти в этом файле блок кода, который работает со значением
act . Это может быть или
switch ($act) {
case 'minus':
// тут какое-то действие
}
или
if ($_GET['act'] == 'minus') {
// тут какое-то действие
}
И там уже смотреть, куда и почему происходит редирект.
Добавлено: 22.12.2017 / 20:30
ДоХтор, Спасибо, поправил. Вот может кому пригодиться.
case 'minus':
if($user_id) {
$res = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdot` WHERE `id` = '".$id."'"));
$user_rat = explode('|', $res['rating_users']);
if(!in_array($user_id, $user_rat)) {
mysql_query("UPDATE `anekdot` SET `rating` = `rating`-1 WHERE `id` = '".$id."'");
mysql_query("UPDATE `anekdot` SET `rating_users` = '".$user_id."|".$res['rating_users']."' WHERE `id` = '".$id."'");
header('Location: ?act=catalog&id='.$res['refid']);
} else {
echo functions::display_error($lng_an['rating_error'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
header('Location: ?');
}
А было так
header('Location: ?');
Добавлено: 22.12.2017 / 20:32
Только теперь если анекдот на 3-й странице после нажатия на минус бросает на первую страницу категории
Dezaktivator, протестил - работает
* (+/-)
<?php
/*
* Анекдоты для Джонцмс 4.х и 5.х
* Автор: Alibek_kz
* 2014.04.06
*/
define('_IN_JOHNCMS', true);
require_once('../incfiles/core.php');
$lng_an = core::load_lng('anekdot');
$textl = $lng_an['title'];
require_once('../incfiles/head.php');
$page = empty($_GET['page']) ? 0 : (int) abs($_GET['page']);
$uri = empty($page) ? '' : "&page=$page";
switch ($act) {
default:
echo '<div class="phdr">'. $lng_an['title'] .'</div>';
$total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `type` = 'cat'"), 0);
if ($total) {
$query = mysql_query("SELECT * FROM `anekdot` WHERE `type` = 'cat' ORDER BY(`time`) DESC LIMIT " . $start . ", " . $kmess . "");
$i = 0;
while ($res = mysql_fetch_assoc($query)) {
$count = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `refid` = '".$res['id']."'"), 0);
echo $i % 2 ? '<div class="list2">' : '<div class="list1">';
echo '<img src="cat.gif" /> <a href="?act=catalog&id='.$res['id'].'">'.$res['text'].'</a> ('.$count.')';
echo ($rights >= 6 ? '<div class="func"><a href="?act=deletecat&id='.$res['id'].'">'.$lng_an['remove'].'</a> | <a href="?act=editcat&id='.$res['id'].'">'.$lng_an['edit'].'</a></div>' : '');
echo '</div>';
}
echo '<div class="phdr">'.$lng_an['all'].': ' . $total . '</div>';
if ($total > $kmess) {
echo '<div class="topmenu">' . functions::display_pagination('?', $start, $total, $kmess) . '</div>';
}
} else {
echo functions::display_error($lng_an['empty']);
}
if ($user_id) {
echo '<div class="gmenu"><a href="?act=addcat">'.$lng_an['addcat'].'</a></div>';
}
if ($rights >= 6) {
$cm = mysql_result(mysql_query("SELECT COUNT(*) FROM `anekdot` WHERE `mod` = 0"), 0);
echo '<div class="rmenu">
<div class="func">
<a href="?act=mod">'.$lng_an['moderation'].'</a> ('.$cm.')
</div>
</div>';
}
break;
case 'catalog':
$cat = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> » '.$cat['text'].'</div>';
$total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `type` = 'anekdot' AND `refid` = '".$id."' AND `mod` = 1"), 0);
if ($total) {
$query = mysql_query("SELECT * FROM `anekdot` WHERE `type` = 'anekdot' AND `refid` = '".
$id."' AND `mod` = 1 ORDER BY(`time`) DESC LIMIT " . $start . ", " . $kmess . "");
$i = 0;
if ($rights >= 6) {
echo '<form action="" method="post">';
}
while ($res = mysql_fetch_assoc($query)) {
$user_get = functions::get_user($res['user_id']);
$time = functions::display_date($res['time']);
$user_rat = explode('|', $res['rating_users']);
if (in_array($user_id, $user_rat)) {
$rating = '<strong>'.$res['rating'].'</strong>';
} else {
$rating = '<a href="?act=plus&id='. $res['id'] . $uri .'">+</a> '.
'<strong>'.$res['rating'].'</strong> '.
'<a href="?act=minus&id='. $res['id'] . $uri .'">-</a>';
}
echo $i % 2 ? '<div class="list2">' : '<div class="list1">' . functions::display_user($user_get, array(
'body' => functions::checkout($res['text'], 1, 1),
'iphide'=> 1,
'footer'=> $lng_an['time_added'].': ' . $time)
) . ' '.$lng_an['rating'].': '.$rating.'<br />
'.($rights >= 6 ? '<div class="func"><input type="checkbox" name="id[]" value="'.$res['id'].'" /> '.$lng_an['remove'].' <a href="?act=edit&id='.$res['id'].'">'.$lng_an['edit'].'</a></div>' : '').'</div>';
}
if ($rights >= 6) {
echo '<input type="hidden" name="act" value="delete" />
<div class="rmenu"><div class="func"><input type="submit" name="submit" value="'.$lng_an['remove'].'" /></div></div></form>';
}
echo '<div class="phdr">'.$lng_an['all'].': ' . $total . '</div>';
if ($total > $kmess) {
echo '<div class="topmenu">' . functions::display_pagination('?act=catalog&id='.$id.'&', $start, $total, $kmess) . '</div>';
}
} else {
echo functions::display_error($lng_an['empty']);
}
if ($user_id) {
echo '<div class="gmenu"><a href="?act=add&id='.$id.'">'.$lng_an['add_new_anekdot'].'</a></div>';
}
break;
case 'editcat':
if ($rights >= 6) {
if ($id > 0) {
$cat = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['edit'].' "'.$cat['text'].'"</div>';
if (isset($_POST['submit'])) {
$name = trim(mysql_real_escape_string($_POST['name']));
$query = mysql_query("UPDATE `anekdot` SET `text` = '".$name."', `time` = '".time()."' WHERE `id` = '".$id."'");
if ($query) {
echo '<div class="gmenu">'.$lng_an['successfully_edited'].'</div>';
} else {
echo functions::display_error($lng_an['error'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
echo '<div class="menu"><form action="" method="POST">
'.$lng_an['namecat'].'<br />
<input type="text" name="name" value="'.$cat['text'].'" /><br />
<input type="submit" name="submit" value="'.$lng_an['edit'].'" />
</form></div>';
}
} else {
die(header('Location: ?'));
}
} else {
echo functions::display_error($lng_an['access_denied_admin'], '<a href="?">'.$lng_an['title'].'</a>');
}
break;
case 'edit':
if ($rights >= 6) {
if ($id > 0) {
$f = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['edit'].'</div>';
if (isset($_POST['submit'])) {
$text = trim(mysql_real_escape_string($_POST['text']));
$query = mysql_query("UPDATE `anekdot` SET `text` = '".$text."' WHERE `id` = '".$id."'");
if ($query) {
echo '<div class="gmenu">'.$lng_an['successfully_edited'].'</div>';
} else {
echo functions::display_error($lng_an['error'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
echo '<div class="menu"><form action="" method="POST">
'.$lng_an['namecat'].'<br />
<textarea name="text" cols="10" rows="10">'.$f['text'].'</textarea><br />
<input type="submit" name="submit" value="'.$lng_an['edit'].'" />
</form></div>';
}
} else {
die(header('Location: ?'));
}
} else {
echo functions::display_error($lng_an['access_denied_admin'], '<a href="?">'.$lng_an['title'].'</a>');
}
break;
case 'plus':
if ($user_id) {
$res = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdot` WHERE `id` = '".$id."'"));
$user_rat = explode('|', $res['rating_users']);
if (!in_array($user_id, $user_rat)) {
mysql_query("UPDATE `anekdot` SET `rating` = `rating`+1 WHERE `id` = '".$id."'");
mysql_query("UPDATE `anekdot` SET `rating_users` = '".$user_id."|".$res['rating_users']."' WHERE `id` = '".$id."'");
die(header('Location: ?act=catalog&id='. $res['refid'] . $uri));
} else {
echo functions::display_error($lng_an['rating_error'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
die(header('Location: ?'));
}
break;
case 'minus':
if ($user_id) {
$res = mysql_fetch_assoc(mysql_query("SELECT * FROM `anekdot` WHERE `id` = '".$id."'"));
$user_rat = explode('|', $res['rating_users']);
if (!in_array($user_id, $user_rat)) {
mysql_query("UPDATE `anekdot` SET `rating` = `rating`-1 WHERE `id` = '".$id."'");
mysql_query("UPDATE `anekdot` SET `rating_users` = '".$user_id."|".$res['rating_users']."' WHERE `id` = '".$id."'");
die(header('Location: ?act=catalog&id='. $res['refid'] . $uri));
} else {
echo functions::display_error($lng_an['rating_error'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
die(header('Location: ?'));
}
break;
case 'add':
if ($user_id) {
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['add_new_anekdot'].'</div>';
if (isset($_POST['submit'])) {
$mod = ($rights >= 6 ? 1 : 0);
mysql_query("INSERT INTO `anekdot` SET
`text` = '" . functions::checkin(trim($_POST['msg'])) . "',
`user_id` = '" . $user_id . "',
`mod` = '" . $mod . "',
`refid` = '".$id."',
`type` = 'anekdot',
`time` = '" . time() . "'");
echo '<div class="gmenu">'.$lng_an['successfully_added'].'<br />
<a href="?">'.$lng_an['title'].'</a></div>';
} else {
echo ' <div class="menu">
<form action="" method="POST">'.$lng_an['add_text'].':<br />
<textarea name="msg" rows="10" cols="10"></textarea><br />
<input type="submit" name="submit" value="'.$lng_an['add'].'" />
</form>
</div>';
}
} else {
echo functions::display_error($lng_an['access_denied']);
}
break;
case 'addcat':
if ($rights >= 6) {
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['addcat'].'</div>';
if (isset($_POST['submit'])) {
$mod = ($rights >= 6 ? 1 : 0);
mysql_query("INSERT INTO `anekdot` SET
`text` = '" . functions::checkin(trim($_POST['name'])) . "',
`user_id` = '" . $user_id . "',
`mod` = '" . $mod . "',
`type` = 'cat',
`time` = '" . time() . "'");
echo '<div class="gmenu">'.$lng_an['successfully_added_cat'].'<br />
<a href="?">'.$lng_an['title'].'</a></div>';
} else {
echo ' <div class="menu">
<form action="" method="POST">'.$lng_an['namecat'].':<br />
<input type="text" name="name" value="" /><br />
<input type="submit" name="submit" value="'.$lng_an['add'].'" />
</form>
</div>';
}
} else {
echo functions::display_error($lng_an['access_denied_admin']);
}
break;
case 'delete':
if ($rights >= 6) {
if (isset($_POST['submit']) && isset($_POST['id'])) {
if (isset($_POST['yes'])) {
foreach ($_POST['id'] as $key => $val) {
mysql_query("DELETE FROM `anekdot` WHERE `id` = '".$val."';");
}
echo '<div class="gmenu">'.$lng_an['successfully_removed'].'<br />
<a href="?">'.$lng_an['title'].'</a></div>';
} else {
echo '<div class="menu">
<form action="" method="post">'.$lng_an['remove_text'].'<br />';
foreach ($_POST['id'] as $key => $val) {
echo '<input type="hidden" name="id[]" value="'.$val.'" />';
}
echo '<input type="hidden" name="act" value="delete" />
<input type="hidden" name="yes" value="yes" />
<input type="submit" name="submit" value="'.$lng_an['yes_or'].'" /></form> <a href="?">'.$lng_an['back'].'</a></div>';
}
} else {
echo functions::display_error($lng_an['select_one'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
echo functions::display_error($lng_an['access_for_admin']);
}
break;
case 'deletecat':
if ($rights >= 6) {
if ($id > 0) {
$cat = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `anekdot` WHERE `id` = '".$id."'"));
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['remove'].' "'.$cat['text'].'"</div>';
if (isset($_GET['yes'])) {
mysql_query("DELETE FROM `anekdot` WHERE `id` = '".$id."';");
mysql_query("DELETE FROM `anekdot` WHERE `refid` = '".$id."';");
echo '<div class="gmenu">'.$lng_an['successfully_removed'].'<br />
<a href="?">'.$lng_an['title'].'</a></div>';
} else {
echo '<div class="menu">'.$lng_an['remove_text'].'<br />';
echo '<a href="?act=deletecat&id='.$id.'&yes">'.$lng_an['yes_or'].'</a> | <a href="?">'.$lng_an['back'].'</a></div>';
}
} else {
echo functions::display_error($lng_an['error'], '<a href="?">'.$lng_an['title'].'</a>');
}
} else {
echo functions::display_error($lng_an['access_for_admin']);
}
break;
case 'mod':
echo '<div class="phdr"><a href="?">'.$lng_an['title'].'</a> | '.$lng_an['moderation'].'</div>';
if ($rights >= 6) {
$total = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `anekdot` WHERE `mod` = 0"), 0);
if ($total) {
if (isset($_POST['submit'])) {
foreach ($_POST['id'] as $key => $val) {
mysql_query("UPDATE `anekdot` SET `mod` = 1 WHERE `id` = '".$val."';");
}
echo '<div class="gmenu">'.$lng_an['successfully_added'].'</div>';
} else {
$query = mysql_query("SELECT * FROM `anekdot` WHERE `mod` = 0");
echo '<form action="" method="POST">';
while ($res = mysql_fetch_assoc($query)) {
$user_get = functions::get_user($res['user_id']);
$time = functions::display_date($res['time']);
echo $i % 2 ? '<div class="list2">' : '<div class="list1">' . functions::display_user($user_get, array(
'body' => functions::checkout($res['text'], 1, 1),
'iphide'=> 1,
'footer'=> $lng_an['time_added'].': ' . $time)) . '
<input type="checkbox" name="id[]" checked="checked" value="'.$res['id'].'" /> '.$lng_an['moder'].'
</div>';
}
echo '<div class="rmenu"><input type="submit" name="submit" value="'.$lng_an['yes_or'].'" /></div>
</form>';
echo '<div class="phdr">'.$lng_an['all'].': ' . $total . '</div>';
if ($total > $kmess) {
echo '<div class="topmenu">' . functions::display_pagination('?act='.$act.'&', $start, $total, $kmess) . '</div>';
}
}
} else {
echo functions::display_error($lng_an['all_anek_added']);
}
} else {
echo functions::display_error($lng_an['access_for_admin']);
}
break;
}
require_once('../incfiles/end.php');
ДоХтор, Да, проверил, все работает как надо. Спасибо большое.