Notice: CMSB v2.16 Beta!

34 posts by 6 authors in: Forums > CMS Builder
Last Post: August 28, 2012   (RSS)

Re: [Djulia] Notice: CMSB v2.16 Beta!

  • Archived  

By Dave - August 24, 2012

Try adding this line (in red) to /lib/common.php in emailTemplate_load()

function emailTemplate_load($options) {
...
$emailHeaders = array(
'from' => $FROM,
'to' => $TO,
'subject' => $SUBJECT,
'html' => $HTML,
);
if (array_key_exists('logging', $options)) { $emailHeaders['logging'] = $options['logging']; }
return $emailHeaders;
}


Also, note that logging is off by default and nothing will be logged at all unless you turn it on.

Let me know if that works for you.
Dave Edis - Senior Developer
interactivetools.com
  • Archived  

By Djulia - August 24, 2012

It is perfect! :)

Thanks again!

Djulia

Re: [Djulia] Notice: CMSB v2.16 Beta!

  • Archived  

By Toledoh - August 24, 2012

LOL. I don't understand what half (3/4?) of this thread means, but it sounds like iTools have done a great job again. Thanks!
Cheers,

Tim (toledoh.com.au)

Re: [Toledoh] Notice: CMSB v2.16 Beta!

  • Archived  

By Djulia - August 25, 2012 - edited: August 25, 2012

Hi Tim,

Here an example which can help you to understand with my alertAdminLogin plugin.

If you activate option Send & Log, the email will be recorded in the cms__outgoing_mail table.

You must comment the lines for headers array with 'logging' = TRUE, otherwise the email is not sent.
If, you do not wish that the emails be recorded in the cms__outgoing_mail table, you must put 'logging' = FALSE.

In this example, I use the function sendMessage(). But, it would be possible to use the function emailTemplate_load(). I use this function in my AlertRecordSaved plugin. You can perhaps use this example for your try.

Dave modified the function so that it is possible also to use 'logging' = FALSE/TRUE.

Dave recommends to try the function emailTemplate_loadFromDB() which is more comfortable.
I think that Website Membership can help you to understand his use.

Djulia :)
Attachments:

alertadminlogin_002.php 2K

  • Archived  

By Djulia - August 25, 2012 - edited: August 25, 2012

Hi Dave,

I tried to use the function. But, I have error messages.


Undefined variable: placeholderListAsText in ../lib/common.php on line 1347
Undefined variable: placeholderList in ../lib/common.php on line 1348
Undefined variable: defaultPlaceholders in ../lib/common.php on line 1352
Fatal error: Unsupported operand types in ../lib/common.php on line 1352


For use (#settings.adminEmail#):
$emailHeaders = emailTemplate_loadFromDB(array(
'template_id' => 'ADMIN-ALERT-LOGIN',
'template_table' => 'email_templates',
'placeholders' => array(
'settings.adminEmail' => $SETTINGS['adminEmail'],
),
));
$errors = sendMessage($emailHeaders);
if ($errors) { alert("Mail Error: $errors"); }



Moreover, it also seems that after the first use, the function remove the Placeholders (#settings.adminEmail#) on Placeholders field in email_templates table.

An idea?

Thanks!

Djulia
  • Archived  

By Djulia - August 25, 2012 - edited: August 25, 2012

I think that I found the origin.

In common.php, it is necessary to remove the redundancy of code:

//replaces placeholders


These lines are normally replaced by the emailTemplate_replacePlaceholders() function ?

I also replaced placeholderListAsText and placeholderList with textPlaceholderList.

also : $defaultPlaceholders['settings.adminUrl'] = @$GLOBALS['SETTINGS']['adminUrl'];

That functions correctly for me.

Djulia
  • Archived  

By Djulia - August 25, 2012

>No, only if you had set backgroundSend = 1.

Excuse my curiosity, but is it possible to give a value to backgroundSend since the function ?


Thanks again!

Djulia

Re: [Djulia] Notice: CMSB v2.16 Beta!

  • Archived  

By Dave - August 27, 2012

Hi Djulia,

>>No, only if you had set backgroundSend = 1.

>Excuse my curiosity, but is it possible to give a value to backgroundSend since the function ?

Can you explain more, I'm not sure what you mean. If you don't specify a value then backgroundSend defaults to 0.

I added an option to emailTemplate_loadFromDB() in /lib/common.php to pass logging through as well (new code in red):

$passThruFields = array('attachments','headers','logging');
Dave Edis - Senior Developer
interactivetools.com

Re: [Djulia] Notice: CMSB v2.16 Beta!

  • Archived  

By Dave - August 27, 2012

>In common.php, it is necessary to remove the redundancy of code

Thanks Djulia, those fixes you mentioned are exactly what was missing. I'll update the code, do some more testing, and release that for the next beta/release.

Thanks!
Dave Edis - Senior Developer
interactivetools.com