4images Modifications / Modifikationen > Mods & Plugins (Releases & Support)

[MOD] Send complete HTML-Postcards in mailboxes

(1/6) > >>

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