Bonjour à tous,
Je préfère vous l'écrire en français, car en anglais ce serait une catastrophe.
J'ai fait des corrections pour réussir à faire fonctionner ce système excellent d'article et catégorie.
Je n'ai pas trouvé l'astuce pour éviter les warnings cités plus haut par un autre internaute, donc j'ai créé un "root" bis sur la même sql. Il semblerait que tous les ajouts fait via includes/db_field_definitions.php ... provoquent ces warning, mais je n'ai pas la réponse.
J'ai modifié quelque chose qui pourra certainement aider certains parmi vous qui souhaiterai utiliser la réception des emails lors d'un post commentaire.
Je suis venu à cette correction, par hasard en comparant le code de detais.php, je recevais un mail même si c'est j'était l'auteur ou pas. Avec cette modif j'ai corrigé deux problèmes ... je ne suis pas programmeur, je lis beaucoup ce forum et c'est ainsi que j'ai fait évoluer mon site.
Le second problème, est que la balise {article_title} ne fonctionnait pas dans la mail warning, il y avait un espace à la place du nom de l'article. Avec cette modif, c'est aussi corrigé.
Je me suis appuyé sur une modif proposée dans ce forum à ce lien :
http://www.4homepages.de/forum/index.php?topic=2705.0Voici donc ma modif :Remplacer le code d'origine de
save comment par celui ci :
//-----------------------------------------------------
//--- Save Comment ------------------------------------
//-----------------------------------------------------
$error = 0;
if ($action == "postcomment" && isset($HTTP_POST_VARS[URL_ID])) {
$id = intval($HTTP_POST_VARS[URL_ID]);
$sql = "SELECT cat_id, article_allow_comments
FROM ".ARTICLE_TABLE."
WHERE article_id = $id";
$row = $site_db->query_firstrow($sql);
if ($row['article_allow_comments'] == 0 || !check_permission("auth_postcomment", $row['cat_id']) || !$row) {
$msg = $lang['comments_deactivated'];
}
else {
$user_name = un_htmlspecialchars(trim($HTTP_POST_VARS['user_name']));
$comment_text = un_htmlspecialchars(trim($HTTP_POST_VARS['comment_text']));
$captcha = (isset($HTTP_POST_VARS['captcha'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['captcha'])) : "";
// Flood Check
$sql = "SELECT comment_ip, comment_date
FROM ".COMMENTS_ARTICLE_TABLE."
WHERE article_id = $id
ORDER BY comment_date DESC
LIMIT 1";
$spam_row = $site_db->query_firstrow($sql);
$spamtime = $spam_row['comment_date'] + 180;
if ($session_info['session_ip'] == $spam_row['comment_ip'] && time() <= $spamtime && $user_info['user_level'] != ADMIN) {
$msg .= (($msg != "") ? "<br />" : "").$lang['spamming'];
$error = 1;
}
$user_name_field = get_user_table_field("", "user_name");
if (!empty($user_name_field)) {
if ($site_db->not_empty("SELECT $user_name_field FROM ".USERS_TABLE." WHERE $user_name_field = '".strtolower($user_name)."' AND ".get_user_table_field("", "user_id")." <> '".$user_info['user_id']."'")) {
$msg .= (($msg != "") ? "<br />" : "").$lang['username_exists'];
$error = 1;
}
}
if ($user_name == "") {
$msg .= (($msg != "") ? "<br />" : "").$lang['name_required'];
$error = 1;
}
if ($comment_text == "") {
$msg .= (($msg != "") ? "<br />" : "").$lang['comment_required'];
$error = 1;
}
if ($captcha_enable_comments && !captcha_validate($captcha)) {
$msg .= (($msg != "") ? "<br />" : "").$lang['captcha_required'];
$error = 1;
}
if (!$error) {
$sql = "INSERT INTO ".COMMENTS_ARTICLE_TABLE."
(article_id, user_id, user_name, comment_headline, comment_text, comment_ip, comment_date)
VALUES
($id, ".$user_info['user_id'].", '$user_name', '$comment_headline', '$comment_text', '".$session_info['session_ip']."', ".time().")";
$site_db->query($sql);
$commentid = $site_db->get_insert_id();
update_comment_count($id, $user_info['user_id']);
//-----------------------------------------------------
// Start Emailer for comments
//-----------------------------------------------------
$recipient_name = $article_row['user_name'];
$recipient_email = $article_row['user_email'];
$article_url = $script_url."/article.php?".URL_ARTICLE_ID."=".$id."";
$sql = "SELECT user_com_mail FROM ".USERS_TABLE." WHERE ".get_user_table_field("", "user_name")." = '".$recipient_name."'";
$result = $site_db->query($sql);
$row = $site_db->fetch_array($result);
$user_com_mail = ($row['user_com_mail']);
if ($article_row['user_id'] != $user_info['user_id'] && $user_com_mail == 1) {
include(ROOT_PATH.'includes/email.php');
$site_email = new Email();
$site_email->set_to($recipient_email);
$site_email->set_from($config['site_email'], $config['site_name']);
$site_email->set_subject($lang['comment_mail_image']);
$site_email->register_vars(array(
"user_name" => stripslashes($user_name),
"recipient_name" => stripslashes($article_row['user_name']),
"article_title" => $article_row['article_title'],
"comment_date" => format_date($config['date_format']." ".$config['time_format'], $current_time),
"site_name" => $config['site_name'],
"comment_text" =>(stripslashes($comment_text)),
"article_url" => $article_url,
"url_home" => $url_home,
));
$site_email->set_body("comment_email_article", $config['language_dir']);
$site_email->send_email();
}
$msg = $lang['comment_success'];
$site_sess->set_session_var("msgdetails", $msg);
redirect(ROOT_PATH."article.php?".URL_article_ID."=".$article_id.((!empty($mode)) ? "&mode=".$mode : "").(($page > 1) ? "&page=".$page : ""));
}
}
unset($row);
unset($spam_row);
}
Bravo et merci à l'auteur de cette modif, dommage qu'il n'y ait pas plus d'intéressés car elle est vraiment excellent.
Phi ...
www.monsitephotos.comPS : Si vous visitez mon site et que vous ne voyez pas le copyright 4images, c'est parce que j'ai acheté une licence pour ce nom de domaine.