summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrey Andreev <narf@bofh.bg>2012-11-26 15:15:12 +0100
committerAndrey Andreev <narf@bofh.bg>2012-11-26 15:15:12 +0100
commit61797f67a9bcb357ae7e1be9dadffd58eaa3e540 (patch)
tree540d1e0bed4a9b26dc10d3b314a549d589ca7e2e
parentcff35804fa53661df357699260a04aa50fc05b21 (diff)
CI_Email::print_debugger() option to limit the type of data to be printed
(an alternative to PR #1759; partially solves issue #1742)
-rw-r--r--system/libraries/Email.php25
-rw-r--r--user_guide_src/source/changelog.rst1
-rw-r--r--user_guide_src/source/libraries/email.rst12
3 files changed, 35 insertions, 3 deletions
diff --git a/system/libraries/Email.php b/system/libraries/Email.php
index 92ccde60c..5d8fc8aea 100644
--- a/system/libraries/Email.php
+++ b/system/libraries/Email.php
@@ -2062,9 +2062,11 @@ class CI_Email {
/**
* 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 = '';
@@ -2076,7 +2078,26 @@ class CI_Email {
}
}
- 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>');
}
// --------------------------------------------------------------------
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 92989af75..e1e6df6ce 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -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.
diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst
index da3bf2616..8643444f8 100644
--- a/user_guide_src/source/libraries/email.rst
+++ b/user_guide_src/source/libraries/email.rst
@@ -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
========================