Skip to content

Commit

Permalink
CI_Email::print_debugger() option to limit the type of data to be pri…
Browse files Browse the repository at this point in the history
…nted

(an alternative to PR #1759; partially solves issue #1742)
  • Loading branch information
narfbg committed Nov 26, 2012
1 parent cff3580 commit 61797f6
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 3 deletions.
25 changes: 23 additions & 2 deletions system/libraries/Email.php
Original file line number Diff line number Diff line change
Expand Up @@ -2062,9 +2062,11 @@ protected function _get_hostname()
/**
* Get Debug Message
*
* @param array $include List of raw data chunks to include in the output
* Valid options are: 'headers', 'subject', 'body'
* @return string
*/
public function print_debugger()
public function print_debugger($include = array('headers', 'subject', 'body'))
{
$msg = '';

Expand All @@ -2076,7 +2078,26 @@ public function print_debugger()
}
}

return $msg.'<pre>'.$this->_header_str."\n".htmlspecialchars($this->_subject)."\n".htmlspecialchars($this->_finalbody).'</pre>';
// Determine which parts of our raw data needs to be printed
$raw_data = '';
is_array($include) OR $include = array($include);

if (in_array('headers', $include, TRUE))
{
$raw_data = $this->_header_str."\n";
}

if (in_array('subject', $include, TRUE))
{
$raw_data .= htmlspecialchars($this->_subject)."\n";
}

if (in_array('body', $include, TRUE))
{
$raw_data .= htmlspecialchars($this->_finalbody);
}

return $msg.($raw_data === '' ? '' : '<pre>'.$raw_data.'</pre>');
}

// --------------------------------------------------------------------
Expand Down
1 change: 1 addition & 0 deletions user_guide_src/source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ Release Date: Not Released
- Default charset now relies on the global ``$config['charset']`` setting.
- Removed unused protected method ``_get_ip()`` (:doc:`Input Library <libraries/input>`'s ``ip_address()`` should be used anyway).
- Internal method ``_prep_q_encoding()`` now utilizes PHP's *mbstring* and *iconv* extensions (when available) and no longer has a second (``$from``) argument.
- Added an optional parameter to ``print_debugger()`` to allow specifying which parts of the message should be printed ('headers', 'subject', 'body').
- :doc:`Pagination Library <libraries/pagination>` changes include:
- Added support for the anchor "rel" attribute.
- Added support for setting custom attributes.
Expand Down
12 changes: 11 additions & 1 deletion user_guide_src/source/libraries/email.rst
Original file line number Diff line number Diff line change
Expand Up @@ -268,11 +268,21 @@ parameter as mime-type::
$this->email->attach($buffer, 'attachment', 'report.pdf', 'application/pdf');

$this->email->print_debugger()
-------------------------------
------------------------------

Returns a string containing any server messages, the email headers, and
the email messsage. Useful for debugging.

You can optionally specify which parts of the message should be printed.
Valid options are: **headers**, **subject**, **body**.

Example::

// Will only print the email headers, excluding the message subject and body
$this->email->print_debugger(array('headers'));

.. note:: By default, all of the raw data will be printed.

Overriding Word Wrapping
========================

Expand Down

0 comments on commit 61797f6

Please sign in to comment.