$article_id = intval(@$_POST["article"]); $category_id = intval(@$_POST["category"]); $page = intval(@$_POST["page"]); if (empty($article_id)) { redirect_header("javascript:history.go(-1);", 1, art_constant("MD_INVALID")); exit; } $article_handler =& xoops_getmodulehandler("article", $GLOBALS["artdirname"]); $category_handler =& xoops_getmodulehandler("category", $GLOBALS["artdirname"]); $article_obj =& $article_handler->get($article_id); if (!$category_handler->getPermission($category_id, "rate")) { $message = art_constant("MD_NOACCESS"); } else { $uid = is_object($xoopsUser) ? $xoopsUser->getVar("uid") : 0; $criteria = new CriteriaCompo(new Criteria("art_id", $article_id)); $ip = art_getIP(); if ($uid > 0) { $criteria->add(new Criteria("uid", $uid)); } else { $criteria->add(new Criteria("rate_ip", $ip)); $criteria->add(new Criteria("rate_time", time() - 24 * 3600, ">")); } $rate_handler =& xoops_getmodulehandler("rate", $GLOBALS["artdirname"]); if ($count = $rate_handler->getCount($criteria)) { $message = art_constant("MD_ALREADYRATED"); } else { $rate_obj =& $rate_handler->create(); $rate_obj->setVar("art_id", $article_id); $rate_obj->setVar("uid", $uid); $rate_obj->setVar("rate_ip", $ip); $rate_obj->setVar("rate_rating", $rate);
if ($trackback_handler->getCount($criteria) > 0) { art_trackback_response(1, "We already have a ping from that URI for this article."); } $charset = empty($charset) ? "utf-8" : $charset; $title = XoopsLocal::convert_encoding($title, _CHARSET, $charset); $excerpt = XoopsLocal::convert_encoding($excerpt, _CHARSET, $charset); $blog_name = XoopsLocal::convert_encoding($blog_name, _CHARSET, $charset); $tb_status = intval($xoopsModuleConfig["trackback_option"]); $trackback_obj = $trackback_handler->create(); $trackback_obj->setVar("art_id", $article_id); $trackback_obj->setVar("tb_time", time()); $trackback_obj->setVar("tb_title", $title); $trackback_obj->setVar("tb_url", $url); $trackback_obj->setVar("tb_excerpt", $excerpt); $trackback_obj->setVar("tb_blog_name", $blog_name); $trackback_obj->setVar("tb_ip", art_getIP()); $trackback_obj->setVar("tb_status", $tb_status); $result = $trackback_handler->insert($trackback_obj); $criteria = new CriteriaCompo(new Criteria("art_id", $article_id)); $criteria->add(new Criteria("tb_status", 0, ">")); $count = $trackback_handler->getCount($criteria); $article_handler =& xoops_getmodulehandler("article", $GLOBALS["artdirname"]); $article_obj =& $article_handler->get($article_id); if ($count > $article_obj->getVar("art_trackbacks")) { $article_obj->setVar("art_trackbacks", $count); $article_handler->insert($article_obj); } art_trackback_response(0); if (!empty($xoopsModuleConfig["notification_enabled"]) && $result) { $notification_handler =& xoops_gethandler("notification"); $tags = array();