4images Modifications / Modifikationen > Mods & Plugins (Releases & Support)
[MOD] Send complete HTML-Postcards in mailboxes
ch€ri{Bi}²:
Tested with 4images1.7
this mod allows users to send the complete ecard thanks to an email in HTML language .
the sender can choose between those notifications : 1) text notification (classic way => default choice)2) whole ecard by html mail3) both methods (1 & 2 => 2 mails sent)
never forget to backup the files which you will modify.
>> 04 files to edit from 4images root:
[change]/postcards.php
[change]/templates/<yourtemplate>/postcard_create.html
[change]/templates/<yourtemplate>/postcard_preview.html
[change]/lang/<yourlanguage>/main.php
>> 01 new file to create from 4images root:
[new]/include/html_mime_mail.php
------ Installation ------
STEP 1:
Open postcards.php
1.1:
Find:
--- Code: ---$recipient_email = un_htmlspecialchars(trim($HTTP_POST_VARS['recipient_email']));
--- End code ---
Add after:
--- Code: ---$email_format = $HTTP_POST_VARS['email_format'];
--- End code ---
1.2:
Find:
--- Code: ---include(ROOT_PATH.'includes/email.php');
$site_email = new Email();
$site_email->set_to(stripslashes($recipient_email));
$site_email->set_from(stripslashes($sender_email), stripslashes($sender_name));
$site_email->set_subject($lang['send_postcard_emailsubject']);
$site_email->register_vars(array(
"sender_name" => stripslashes($sender_name),
"sender_email" => stripslashes($sender_email),
"recipient_name" => stripslashes($recipient_name),
"postcard_url" => stripslashes($postcard_url),
"postcard_send_date" => format_date($config['date_format']." ".$config['time_format'], $current_time),
"site_name" => $config['site_name']
));
$site_email->set_body("postcard_message", $config['language_dir']);
$site_email->send_email();
--- End code ---
Replace with:
--- Code: ---
if ($email_format == 'html' || $email_format == 'txthtml') {
// email html
include(ROOT_PATH.'includes/html_mime_mail.php');
$html_to_send .= "<center>
<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">
<tr>
<td>
<table border=\"0\" cellspacing=\"0\" cellpadding=\"1\">
<tr>
<td bgcolor=\"".$border_color."\">
<table border=\"0\" cellspacing=\"0\" cellpadding=\"10\" bgcolor=\"".$bg_color."\">
<tr>
<td valign=\"top\"><div><img src=\"".MEDIA_PATH."/".$cat_id."/".$image_row['image_media_file']."\" border=\"0\" /></div></td>
<td valign=\"top\" width=\"200\" height=\"250\">
<div align=\"right\"><img src=\"".TEMPLATE_PATH."/images/stamp.gif\" border=\"0\" /></div>
<br /><br />
<b><font face=\"".$font_face."\" color=\"".$font_color."\" size=\"4\">".$headline."</font></b>
<br /><br />
<font face=\"".$font_face."\" color=\"".$font_color."\" size=\"2\">".$message."</font>
<br /><br />
<font face=\"".$font_face."\" color=\"".$font_color."\" size=\"2\">".$sender_name."</font><br />
<a href=\"mailto:".$sender_email."\"><font face=\"".$font_face."\" color=\"".$font_color."\" size=\"2\">".$sender_email."</font></a>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br />
</td>
</tr>
</table>
<b><font face=\"".$font_face."\" color=\"".$font_color."\" size=\"2\">See your eCard <a href=\"".$postcard_url."\">here</a>.</font><br />
".$config['site_name']."</center>";
$mel = new html_mime_mail(102400, "iso-8859-1");
$fp = fopen(MEDIA_PATH."/".$cat_id."/".$image_row['image_media_file'], "r");
$bin_img = fread($fp, filesize(MEDIA_PATH."/".$cat_id."/".$image_row['image_media_file']));
fclose($fp);
$mel->add_img($bin_img, MEDIA_PATH."/".$cat_id."/".$image_row['image_media_file'], "image/jpeg");
$fp = fopen(TEMPLATE_PATH."/images/stamp.gif", "r");
$bin_img = fread($fp, filesize(TEMPLATE_PATH."/images/stamp.gif"));
fclose($fp);
$mel->add_img($bin_img, TEMPLATE_PATH."/images/stamp.gif", "image/gif");
$mel->add_body($html_to_send);
$mel->build_mail("base64", 5);
$mel->send($sender_name, $sender_email, $recipient_name, $recipient_email, "eCard for you !");
//echo $mel->get_rfc822($sender_name, $sender_email, $recipient_name, $recipient_email, "test ecard");
} // end if
if ($email_format == 'txt' || $email_format == 'txthtml') {
include(ROOT_PATH.'includes/email.php');
$site_email = new Email();
$site_email->set_to(stripslashes($recipient_email));
$site_email->set_from(stripslashes($sender_email), stripslashes($sender_name));
$site_email->set_subject($lang['send_postcard_emailsubject']);
$site_email->register_vars(array(
"sender_name" => stripslashes($sender_name),
"sender_email" => stripslashes($sender_email),
"recipient_name" => stripslashes($recipient_name),
"postcard_url" => stripslashes($postcard_url),
"postcard_send_date" => format_date($config['date_format']." ".$config['time_format'], $current_time),
"site_name" => $config['site_name']
));
$site_email->set_body("postcard_message", $config['language_dir']);
$site_email->send_email();
} // end if
--- End code ---
now, you can modify the code in $html_to_send .= to customize the final email.
1.3:
Find:
--- Code: ---
$main_template = "postcard_preview";
$image = get_media_code($image_row['image_media_file'], $image_id, $cat_id, $image_row['image_name'], $mode, 1);
$thumbnail = get_thumbnail_code($image_row['image_media_file'], $image_row['image_thumb_file'], $image_id, $cat_id, $image_row['image_name'], $mode);
$site_template->register_vars(array(
--- End code ---
Add right after:
--- Code: ---
"lang_postcard_email_format" => $lang['postcard_email_format'],
"postcard_email_format" => ($HTTP_POST_VARS['email_format'] == 'txt') ? 'text' : (($HTTP_POST_VARS['email_format'] == 'html') ? 'HTML' : 'text & HTML'),
"email_format" => $HTTP_POST_VARS['email_format'],
--- End code ---
1.4:
Find:
--- Code: ---
if ($action == "createcard") {
if (!$sendprocess) {
$bg_color = "";
$border_color = "";
$font_color = "";
$font_face = "";
$sender_name = ($user_info['user_level'] != GUEST) ? $user_info['user_name'] : "";
$sender_email = ($user_info['user_level'] != GUEST) ? $user_info['user_email'] : "";
$recipient_name = "";
$recipient_email = "";
$headline = "";
$message = "";
}
$image = get_media_code($image_row['image_media_file'], $image_id, $cat_id, $image_row['image_name'], $mode, 1);
$thumbnail = get_thumbnail_code($image_row['image_media_file'], $image_row['image_thumb_file'], $image_id, $cat_id, $image_row['image_name'], $mode);
$site_template->register_vars(array(
--- End code ---
Add right after:
--- Code: ---
"lang_postcard_email_format" => $lang['postcard_email_format']."?",
--- End code ---
Step 2:
Open /lang/<yourlanguage>/main.php
Add at the end of the file, just before ?> :
--- Code: ---$lang['postcard_email_format'] = "Type of notification";
--- End code ---
Step 3:
Open /templates/<yourtemplate>/postcard_create.html
Add this:
--- Code: ---
<tr>
<td class="row2" valign="top"><b>{lang_postcard_email_format}</b></td>
<td class="row2" valign="top">
<table border=0 cellspacing=3 cellpadding=1>
<tr>
<td>
<input name="email_format" type="radio" value="txt" checked />
</td>
<td><font face="arial">Text</font></td>
<td>
<input name="email_format" type="radio" value="html" />
</td>
<td><font face="verdana">HTML</font></td>
<td>
<input name="email_format" type="radio" value="txthtml" />
</td>
<td><font face="arial">text & HTML</font></td>
</tr>
</table>
</td>
</tr>
--- End code ---
Step 4:
Open /templates/<yourtemplate>/postcard_preview.html
Add this:
--- Code: ---
<B>{lang_postcard_email_format}:</B> {postcard_email_format}
--- End code ---
and this:
--- Code: ---
<INPUT type="hidden" name="email_format" value="{email_format}" />
--- End code ---
Step 5:
Download attched file, unzip it and copy it in 4images/includes/ directory.
------ END of Installation ------
it should work !!! :wink:
DigitalOldschool:
Hey,
This is something I'd really like to use. Unfortunately when I go to test it out I get the following error message:
--- Code: ---error :: cannot attach ./data/media/6/JordansHaircut03.jpg (limited to 100ko/mail) !!!
--- End code ---
Is that a server side setting or something in the HTML_MIME_MAIL.PHP file?
Thanks again for this mod and hopefully I can get it to work.
-DigitalOldschool
drhtm:
--- Quote from: DigitalOldschool on June 03, 2005, 03:59:47 PM ---Hey,
This is something I'd really like to use. Unfortunately when I go to test it out I get the following error message:
--- Code: ---error :: cannot attach ./data/media/6/JordansHaircut03.jpg (limited to 100ko/mail) !!!
--- End code ---
Is that a server side setting or something in the HTML_MIME_MAIL.PHP file?
Thanks again for this mod and hopefully I can get it to work.
-DigitalOldschool
--- End quote ---
I'm getting the same error and I made sure I added each step to the letter!
However when I tested it, I received two emails. One from the orginal notification and a second one with the ecard as a HTML file. However the image is not there, only the message, stamp and a link to the orginal image. For some reason, the image never got attached?
drhtm:
Have you looked at this thread?
http://www.4homepages.de/forum/index.php?topic=7462.0
ch€ri{Bi}²:
--- Quote from: DigitalOldschool on June 03, 2005, 03:59:47 PM ---Is that a server side setting or something in the HTML_MIME_MAIL.PHP file?
--- End quote ---
you're right for the error!
there is a limit for attached files in the mail (see html_mime_mail.php line 58).
if you want to modify this, find this code in html_mime_mail.php:
--- Code: ---function html_mime_mail($limit=102400, $charset="iso-8859-1", $headers="")
--- End code ---
and change 102400 (value of $limit) by whatever you want.
it should work better now :wink:
Navigation
[0] Message Index
[#] Next page
Go to full version