From 0aae75388cef0a41931c491dfef7deb0a18fa101 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 06:54:25 -0500 Subject: Added custom file name to attach(), updated _build_message to handle it --- system/libraries/Email.php | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 7bde4c4fd..b898bae2a 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -38,7 +38,7 @@ * @author EllisLab Dev Team * @link http://codeigniter.com/user_guide/libraries/email.html */ -class CI_Email { +class CI_Email{ var $useragent = "CodeIgniter"; var $mailpath = "/usr/sbin/sendmail"; // Sendmail path @@ -418,9 +418,9 @@ class CI_Email { * @param string * @return void */ - public function attach($filename, $disposition = 'attachment') + public function attach($filepath, $filename=NULL, $disposition = 'attachment') { - $this->_attach_name[] = $filename; + $this->_attach_name[] = array($filepath, $filename); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); $this->_attach_disp[] = $disposition; // Can also be 'inline' Not sure if it matters return $this; @@ -1151,13 +1151,19 @@ class CI_Email { for ($i=0; $i < count($this->_attach_name); $i++) { - $filename = $this->_attach_name[$i]; - $basename = basename($filename); + $filepath = $this->_attach_name[$i][0]; + $basename = $this->_attach_name[$i][1]; + + if( ! $basename) + { + $basename = basename($filename); + } + $ctype = $this->_attach_type[$i]; - if ( ! file_exists($filename)) + if ( ! file_exists($filepath)) { - $this->_set_error_message('lang:email_attachment_missing', $filename); + $this->_set_error_message('lang:email_attachment_missing', $filepath); return FALSE; } @@ -1168,11 +1174,11 @@ class CI_Email { $h .= "Content-Transfer-Encoding: base64".$this->newline; $attachment[$z++] = $h; - $file = filesize($filename) +1; + $file = filesize($filepath) +1; - if ( ! $fp = fopen($filename, FOPEN_READ)) + if ( ! $fp = fopen($filepath, FOPEN_READ)) { - $this->_set_error_message('lang:email_attachment_unreadable', $filename); + $this->_set_error_message('lang:email_attachment_unreadable', $filepath); return FALSE; } -- cgit v1.2.3-24-g4f1b From a1dc1f94e1186f60211fca07addd829ef2ebd19c Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 07:00:09 -0500 Subject: Fixed variable name causing problem --- system/libraries/Email.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index b898bae2a..6be294377 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1156,7 +1156,7 @@ class CI_Email{ if( ! $basename) { - $basename = basename($filename); + $basename = basename($filepath); } $ctype = $this->_attach_type[$i]; -- cgit v1.2.3-24-g4f1b From bc4ac992d1d609c559884e5164b2c51fb0c1fc89 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 07:19:41 -0500 Subject: Changed filepath back to filename --- system/libraries/Email.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 6be294377..f2670f961 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -1151,19 +1151,19 @@ class CI_Email{ for ($i=0; $i < count($this->_attach_name); $i++) { - $filepath = $this->_attach_name[$i][0]; + $filename = $this->_attach_name[$i][0]; $basename = $this->_attach_name[$i][1]; if( ! $basename) { - $basename = basename($filepath); + $basename = basename($filename); } $ctype = $this->_attach_type[$i]; - if ( ! file_exists($filepath)) + if ( ! file_exists($filename)) { - $this->_set_error_message('lang:email_attachment_missing', $filepath); + $this->_set_error_message('lang:email_attachment_missing', $filename); return FALSE; } @@ -1174,11 +1174,11 @@ class CI_Email{ $h .= "Content-Transfer-Encoding: base64".$this->newline; $attachment[$z++] = $h; - $file = filesize($filepath) +1; + $file = filesize($filename) +1; - if ( ! $fp = fopen($filepath, FOPEN_READ)) + if ( ! $fp = fopen($filename, FOPEN_READ)) { - $this->_set_error_message('lang:email_attachment_unreadable', $filepath); + $this->_set_error_message('lang:email_attachment_unreadable', $filename); return FALSE; } -- cgit v1.2.3-24-g4f1b From 151fc68508658ef342f7ad53187ca28d9ec15c97 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 07:30:06 -0500 Subject: Changed the names around again --- system/libraries/Email.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index f2670f961..8f2ca62ea 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -418,9 +418,9 @@ class CI_Email{ * @param string * @return void */ - public function attach($filepath, $filename=NULL, $disposition = 'attachment') + public function attach($filename, $newname=NULL, $disposition = 'attachment') { - $this->_attach_name[] = array($filepath, $filename); + $this->_attach_name[] = array($filename, $newname); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); $this->_attach_disp[] = $disposition; // Can also be 'inline' Not sure if it matters return $this; -- cgit v1.2.3-24-g4f1b From 2ca47a99bd7ec44c0b4c9df6aa7364e11492e081 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 07:32:34 -0500 Subject: Switched order of arguments to maintain compatibility --- system/libraries/Email.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 8f2ca62ea..d81fd44dc 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -418,7 +418,7 @@ class CI_Email{ * @param string * @return void */ - public function attach($filename, $newname=NULL, $disposition = 'attachment') + public function attach($filename, $disposition = 'attachment', $newname=NULL) { $this->_attach_name[] = array($filename, $newname); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); -- cgit v1.2.3-24-g4f1b From a15dd4f52933dff11b5b542d16d8e49a973a0e89 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 07:40:05 -0500 Subject: Added space after CI_Email for coding standard --- system/libraries/Email.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index d81fd44dc..d24a30493 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -38,7 +38,7 @@ * @author EllisLab Dev Team * @link http://codeigniter.com/user_guide/libraries/email.html */ -class CI_Email{ +class CI_Email { var $useragent = "CodeIgniter"; var $mailpath = "/usr/sbin/sendmail"; // Sendmail path -- cgit v1.2.3-24-g4f1b From 7f42519fd156a541bdb3517b517287f3352b5e49 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 15:19:49 -0500 Subject: Added a couple of style tweaks and a note about function change in changelog --- system/libraries/Email.php | 9 ++------- user_guide_src/source/changelog.rst | 3 ++- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index d24a30493..e012545d9 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -418,7 +418,7 @@ class CI_Email { * @param string * @return void */ - public function attach($filename, $disposition = 'attachment', $newname=NULL) + public function attach($filename, $disposition = 'attachment', $newname = NULL) { $this->_attach_name[] = array($filename, $newname); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); @@ -1152,12 +1152,7 @@ class CI_Email { for ($i=0; $i < count($this->_attach_name); $i++) { $filename = $this->_attach_name[$i][0]; - $basename = $this->_attach_name[$i][1]; - - if( ! $basename) - { - $basename = basename($filename); - } + $basename = is_null($this->_attach_name[$i][1]) ? basename($filename) : $this->_attach_name[$i][1]; $ctype = $this->_attach_type[$i]; diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst index b9ca39cee..dff4f001d 100644 --- a/user_guide_src/source/changelog.rst +++ b/user_guide_src/source/changelog.rst @@ -44,7 +44,8 @@ Release Date: Not Released - Added max_filename_increment config setting for Upload library. - CI_Loader::_ci_autoloader() is now a protected method. - Modified valid_ip() to use PHP's filter_var() when possible (>= PHP 5.2) in the :doc:`Form Validation library `. - + - Added custom filename to Email::attach() as $this->email->attach($filename, $disposition, $newname) + - Core - Changed private functions in CI_URI to protected so MY_URI can -- cgit v1.2.3-24-g4f1b From 10eb14d37a4399f7ed4dfa212feef07e2041f889 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 15:48:21 -0500 Subject: Changed attachment definition to allow for blank disposition defaulting to attachment - should make things easier for the user who uses a custom name --- system/libraries/Email.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index e012545d9..a24ce7440 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -418,8 +418,10 @@ class CI_Email { * @param string * @return void */ - public function attach($filename, $disposition = 'attachment', $newname = NULL) + public function attach($filename, $disposition = '', $newname = NULL) { + if(empty($disposition)) + $disposition = 'attachment'; $this->_attach_name[] = array($filename, $newname); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); $this->_attach_disp[] = $disposition; // Can also be 'inline' Not sure if it matters @@ -1152,7 +1154,7 @@ class CI_Email { for ($i=0; $i < count($this->_attach_name); $i++) { $filename = $this->_attach_name[$i][0]; - $basename = is_null($this->_attach_name[$i][1]) ? basename($filename) : $this->_attach_name[$i][1]; + $basename = ( is_null($this->_attach_name[$i][1]) ? basename($filename) : $this->_attach_name[$i][1] ); $ctype = $this->_attach_type[$i]; -- cgit v1.2.3-24-g4f1b From b2b510dd441d6fc450c046a2fcb0b3742d6a7e04 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 15:51:08 -0500 Subject: More style tweaks --- system/libraries/Email.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index a24ce7440..3c679ce48 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -421,7 +421,10 @@ class CI_Email { public function attach($filename, $disposition = '', $newname = NULL) { if(empty($disposition)) + { $disposition = 'attachment'; + } + $this->_attach_name[] = array($filename, $newname); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); $this->_attach_disp[] = $disposition; // Can also be 'inline' Not sure if it matters -- cgit v1.2.3-24-g4f1b From d52699842f598d185b1388f4c6b72d2d63e21e64 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 17:22:44 -0500 Subject: Switch disposition set to ternary operation --- system/libraries/Email.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/system/libraries/Email.php b/system/libraries/Email.php index 3c679ce48..631b62e86 100644 --- a/system/libraries/Email.php +++ b/system/libraries/Email.php @@ -420,14 +420,9 @@ class CI_Email { */ public function attach($filename, $disposition = '', $newname = NULL) { - if(empty($disposition)) - { - $disposition = 'attachment'; - } - $this->_attach_name[] = array($filename, $newname); $this->_attach_type[] = $this->_mime_types(pathinfo($filename, PATHINFO_EXTENSION)); - $this->_attach_disp[] = $disposition; // Can also be 'inline' Not sure if it matters + $this->_attach_disp[] = empty($disposition) ? 'attachment' : $disposition; // Can also be 'inline' Not sure if it matters return $this; } -- cgit v1.2.3-24-g4f1b From 88c739e7c17edf99c68b7a139f84455c73c4c698 Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 17:46:52 -0500 Subject: Added an entry for the new Email::attach parameters --- user_guide_src/source/libraries/email.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst index 759899242..66769a8dd 100644 --- a/user_guide_src/source/libraries/email.rst +++ b/user_guide_src/source/libraries/email.rst @@ -228,7 +228,11 @@ use the function multiple times. For example:: $this->email->attach('/path/to/photo2.jpg'); $this->email->attach('/path/to/photo3.jpg'); - $this->email->send(); +If you'd like to change the disposition or add a custom file name, use the second and third paramaters. Leaving the second parameter blank will default to attachment:: + + $this->email->attach('/path/to/photo1.jpg', 'inline'); + $this->email->attach('/path/to/photo1.jpg', '', 'birthday.jpg'); + $this->email->print_debugger() ------------------------------- -- cgit v1.2.3-24-g4f1b From e3d60b8880abb09555509e650aafe07136d1adee Mon Sep 17 00:00:00 2001 From: trit Date: Wed, 23 Nov 2011 17:57:48 -0500 Subject: Reworded new attach() section in email user guide --- user_guide_src/source/libraries/email.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/user_guide_src/source/libraries/email.rst b/user_guide_src/source/libraries/email.rst index 66769a8dd..27b704dae 100644 --- a/user_guide_src/source/libraries/email.rst +++ b/user_guide_src/source/libraries/email.rst @@ -228,7 +228,7 @@ use the function multiple times. For example:: $this->email->attach('/path/to/photo2.jpg'); $this->email->attach('/path/to/photo3.jpg'); -If you'd like to change the disposition or add a custom file name, use the second and third paramaters. Leaving the second parameter blank will default to attachment:: +If you'd like to change the disposition or add a custom file name, you can use the second and third paramaters. To use the default disposition (attachment), leave the second parameter blank. Here's an example:: $this->email->attach('/path/to/photo1.jpg', 'inline'); $this->email->attach('/path/to/photo1.jpg', '', 'birthday.jpg'); -- cgit v1.2.3-24-g4f1b