KoVaLsKy 59 Posted August 5, 2012 Report Share Posted August 5, 2012 все получилось, кроме одного )))) в general.php function vam_set_status($reviews_id, $status) { if ($status == '1') { return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '1' where '" . $reviews['products_id'] . "' = '" . $products_id . "'"); } elseif ($status == '0') { return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '0' where '" . $reviews['products_id'] . "' = '" . $products_id . "'"); } else { return -1; } } [/CODE] и сразу у всех отзывов меняется статус при клике на любой Link to post Share on other sites
support 446 Posted August 6, 2012 Report Share Posted August 6, 2012 А что это за неконятное условие: where '" . $reviews['products_id'] . "' = '" . $products_id . "'" Оно ведь смысла не имеет вообще. Должно ведь быть что-то типа: where reviews_id = '".[color=#282828][size=2]$reviews_id[/size][/color]."' [/code] Link to post Share on other sites
KoVaLsKy 59 Posted August 6, 2012 Report Share Posted August 6, 2012 та да. я уже как только не пробывал)))) у меня только всему товару сменить статус получается. или всем отзывам стразу(((( Link to post Share on other sites
KoVaLsKy 59 Posted August 6, 2012 Report Share Posted August 6, 2012 Саш. получается только для товара сразу для всех отзывов устанавливать. подскажи как return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '1' where '" . $reviews['products_id'] . "' = '" . $products_id . "'"); } elseif ($status == '0') { return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '0' where '" . $reviews['products_id'] . "' = '" . $products_id . "'"); [/CODE] тут поменять Link to post Share on other sites
support 446 Posted August 6, 2012 Report Share Posted August 6, 2012 Ну я ж выше написал, что в таком виде какой-то не понятный это запрос. В where что-то непонятное наворочено. Link to post Share on other sites
KoVaLsKy 59 Posted August 6, 2012 Report Share Posted August 6, 2012 так я и говорю что туда что только не писал. по идее же должно быть что то return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '1' where products_id = '" . [color=#282828][size=2]$reviews[/size][/color][color=#282828][size=2][[/size][/color][color=#282828][size=2]'products_id'[/size][/color][color=#282828][size=2]][/size][/color] . "'"); } elseif ($status == '0') { return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '0' where products_id = '" . [color=#282828][size=2]$reviews[/size][/color][color=#282828][size=2][[/size][/color][color=#282828][size=2]'products_id'[/size][/color][color=#282828][size=2]][/size][/color] . "'"); [/CODE] но не срабатывает Link to post Share on other sites
support 446 Posted August 7, 2012 Report Share Posted August 7, 2012 Так а ссылка как выглядит на переключение. Какой параметр передаётся?! В ссылке для переключения статуса отзыва, по идее, должен быть id номер отзыва и в sql запросе нужно менять статус отзыва по id номеру отзыва. Link to post Share on other sites
KoVaLsKy 59 Posted August 7, 2012 Report Share Posted August 7, 2012 он и передается. http://сайт.ru/admin/reviews.php?page=1&action=setstatus&flagstatus=1&rID=34 для включения и http://сайт.ru/admin/reviews.php?page=1&action=setstatus&flagstatus=0&rID=34 для отключения. так же при нажатии работает выделение строки (товара) желтинким выделяется, т.е параметры в ссылке срабатывают и передается все ок. Link to post Share on other sites
KoVaLsKy 59 Posted August 7, 2012 Report Share Posted August 7, 2012 в general.php function vam_set_status($reviews_id, $status) { if ($status == '1') { return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '1' where reviews_id = '".(int)$_GET['reviews_id']."'"); } elseif ($status == '0') { return vam_db_query("update " . TABLE_REVIEWS . " set reviews_status = '0' where reviews_id = '".(int)$_GET['reviews_id']."'"); } else { return -1; } } [/CODE] Link to post Share on other sites
support 446 Posted August 7, 2012 Report Share Posted August 7, 2012 action=setstatus Где у Вас код-обработчик для этого action'a?! Link to post Share on other sites
KoVaLsKy 59 Posted August 7, 2012 Report Share Posted August 7, 2012 if ($reviews_status['reviews_status'] == '1') { echo vam_image(DIR_WS_IMAGES . 'icon_status_green.gif', IMAGE_ICON_STATUS_GREEN, 10, 10) . ' <a href="' . vam_href_link(FILENAME_REVIEWS, vam_get_all_get_params(array('action','rID',)) . 'action=setstatus&flagstatus=0&rID=' . $reviews['reviews_id']). '">' . vam_image(DIR_WS_IMAGES . 'icon_status_red_light.gif', IMAGE_ICON_STATUS_RED_LIGHT, 10, 10) . '</a>'; } else { echo '<a href="' . vam_href_link(FILENAME_REVIEWS, vam_get_all_get_params(array('action', 'rID')) . 'action=setstatus&flagstatus=1&rID=' . $reviews['reviews_id']). '">' . vam_image(DIR_WS_IMAGES . 'icon_status_green_light.gif', IMAGE_ICON_STATUS_GREEN_LIGHT, 10, 10) . '</a> ' . vam_image(DIR_WS_IMAGES . 'icon_status_red.gif', IMAGE_ICON_STATUS_RED, 10, 10); } это в reviews.php Link to post Share on other sites
support 446 Posted August 7, 2012 Report Share Posted August 7, 2012 Это ведь просто вывод лампочек, этого недостаточно. Нужен же ещё обработчик для setstatus Как например в /admin/categories.php код начинается с: case 'setxml' : [/code] Это как раз обработчик параметр setxml, который и переключает XML статус товара. Вот для отзывов надо тоже самое делать. А функция, что выше приводили, она должно быть внутри этого обработчика как раз. Хотя сама функция странная, в ней sql запрос неправильный. Link to post Share on other sites
MaZa 10 Posted October 31, 2012 Report Share Posted October 31, 2012 ...Прошло 3 месяца. Премодерация отзывов ещё не вошла в родной дистрибутив? Если нет то собирается? Если нет то кто-то мне предложит готовое решение за вменяемую цену? :bte: Link to post Share on other sites
support 446 Posted October 31, 2012 Report Share Posted October 31, 2012 Да вроде не собирается. Link to post Share on other sites
KoVaLsKy 59 Posted October 31, 2012 Report Share Posted October 31, 2012 ...Прошло 3 месяца. Премодерация отзывов ещё не вошла в родной дистрибутив? Если нет то собирается? Если нет то кто-то мне предложит готовое решение за вменяемую цену? :bte: у меня она есть. Link to post Share on other sites
MaZa 10 Posted November 1, 2012 Report Share Posted November 1, 2012 Саш, а чё?) Вещь нужная, имхо. Мой магазин бомбят 24 в сутки очень активненько. :( Ковальски, жду предложения в личку ;) Link to post Share on other sites
support 446 Posted November 1, 2012 Report Share Posted November 1, 2012 А бомбят почему?! Может просто гостям запретить отзывы? Просто что решит модерация, ну будут так же бомбить в админку спамом, что по сути ничего ведь не меняет. Link to post Share on other sites
KoVaLsKy 59 Posted November 1, 2012 Report Share Posted November 1, 2012 А бомбят почему?! Может просто гостям запретить отзывы? Просто что решит модерация, ну будут так же бомбить в админку спамом, что по сути ничего ведь не меняет. Вот ответ: по любому 99% спама который сыпится это иностранный спам. я в данном сучае делаю 2 вещи - заприщаю латиницу в отзыве и ставлю премодерацию. без нее на раскрученных сайтах у меня по 100 сообщений в неделю спама Link to post Share on other sites
MaZa 10 Posted November 1, 2012 Report Share Posted November 1, 2012 А бомбят почему?! Может просто гостям запретить отзывы? Просто что решит модерация, ну будут так же бомбить в админку спамом, что по сути ничего ведь не меняет. Премодерация позволит гостям оставлять отзыв без регистрации. Мало кто хочет написать отзыв захочет регистрироваться ради этого в магазине. Link to post Share on other sites
KoVaLsKy 59 Posted November 1, 2012 Report Share Posted November 1, 2012 ну это само собой. я вообще к тому что чище сайт становится. потом не очень лестные отзывы могут оставлять ;-) Link to post Share on other sites
support 446 Posted November 1, 2012 Report Share Posted November 1, 2012 Может правильнее будет просто поставить каптчу + спам фильтр, т.е. как раз удалять все ссылки из отзыва или ту же латиница. Просто премодерация это ведь дополнительная нагрузка получается, не проще сделать какой-то фильтр при написании отзыва. Link to post Share on other sites
KoVaLsKy 59 Posted November 1, 2012 Report Share Posted November 1, 2012 а в чем нагрузка? встает только 1 доп колонка в БД Link to post Share on other sites
support 446 Posted November 2, 2012 Report Share Posted November 2, 2012 Нагрузка во времени, которое придётся тратить на модерацию. Link to post Share on other sites
MaZa 10 Posted November 2, 2012 Report Share Posted November 2, 2012 что интересно, капча ведь стоит. Link to post Share on other sites
support 446 Posted November 2, 2012 Report Share Posted November 2, 2012 Есть просто софт типа хрумера, который многие каптчи распознаёт + ещё сервисы по ручному распознаванию у всяких китайцев, индусов. В принципе, какая-либо текстовая каптча + фильтр например на ссылки должно избавить от спама, в будущих версиях, видимо, появится. Link to post Share on other sites
Recommended Posts