PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/baser/plugins/mail/views/helpers/mail.php

https://github.com/hashing/basercms
PHP | 223 lines | 122 code | 16 blank | 85 comment | 20 complexity | e89b4a1c43726d6ee1e2e2f471146d52 MD5 | raw file
Possible License(s): MIT
  1. <?php
  2. /* SVN FILE: $Id$ */
  3. /**
  4. * メールヘルパー
  5. *
  6. * PHP versions 5
  7. *
  8. * baserCMS : Based Website Development Project <http://basercms.net>
  9. * Copyright 2008 - 2012, baserCMS Users Community <http://sites.google.com/site/baserusers/>
  10. *
  11. * @copyright Copyright 2008 - 2012, baserCMS Users Community
  12. * @link http://basercms.net baserCMS Project
  13. * @package baser.plugins.mail.views.helpers
  14. * @since baserCMS v 0.1.0
  15. * @version $Revision$
  16. * @modifiedby $LastChangedBy$
  17. * @lastmodified $Date$
  18. * @license http://basercms.net/license/index.html
  19. */
  20. /**
  21. * Include files
  22. */
  23. /**
  24. * メールヘルパー
  25. *
  26. * @package baser.plugins.mail.views.helpers
  27. *
  28. */
  29. class MailHelper extends AppHelper {
  30. /**
  31. * view
  32. * @var View
  33. * @access protected
  34. */
  35. var $_view = null;
  36. /**
  37. * ヘルパー
  38. * @var array
  39. * @access public
  40. */
  41. var $helpers = array(BC_BASER_HELPER);
  42. /**
  43. * コンストラクタ
  44. *
  45. * @return void
  46. * @access public
  47. */
  48. function __construct() {
  49. $this->_view =& ClassRegistry::getObject('view');
  50. $this->setMailContent();
  51. }
  52. /**
  53. * メールコンテンツデータをセットする
  54. *
  55. * @param int $mailContentId
  56. */
  57. function setMailContent($mailContentId = null) {
  58. if(isset($this->mailContent) && !$mailContentId) {
  59. return;
  60. }
  61. if($mailContentId) {
  62. $MailContent = ClassRegistry::getObject('MailContent');
  63. $MailContent->expects(array());
  64. $this->mailContent = Set::extract('MailContent', $MailContent->read(null, $mailContentId));
  65. } elseif(isset($this->_view->viewVars['mailContent'])) {
  66. $this->mailContent = $this->_view->viewVars['mailContent']['MailContent'];
  67. }
  68. }
  69. /**
  70. * メールフィールド一覧ページへのリンクを張る【非推奨】
  71. *
  72. * @param string $mailContentId
  73. * @return void
  74. * @access public
  75. * @deprecated ツールバーに移行
  76. */
  77. function indexFields($mailContentId) {
  78. if(!empty($this->BcBaser->_view->viewVars['user']) && !Configure::read('BcRequest.agent')) {
  79. echo '<div class="edit-link">'.$this->BcBaser->getLink('≫ 編集する', array('prefix' => 'mail', 'controller' => 'mail_fields', 'action' => 'index', $mailContentId), array('target' => '_blank')).'</div>';
  80. }
  81. }
  82. /**
  83. * レイアウトテンプレートを取得
  84. * コンボボックスのソースとして利用
  85. * TODO 他のヘルパーに移動する
  86. * @return array
  87. * @access public
  88. */
  89. function getLayoutTemplates() {
  90. $templatesPathes = array();
  91. if($this->BcBaser->siteConfig['theme']){
  92. $templatesPathes[] = WWW_ROOT.'themed'.DS.$this->BcBaser->siteConfig['theme'].DS.'layouts'.DS;
  93. }
  94. $templatesPathes[] = APP . 'plugins' . DS . 'mail'.DS.'views'.DS.'layouts'.DS;
  95. $templatesPathes = am($templatesPathes,array(BASER_PLUGINS.'mail'.DS.'views'.DS.'layouts'.DS,
  96. BASER_VIEWS.'layouts'.DS));
  97. $_templates = array();
  98. foreach($templatesPathes as $templatesPath){
  99. $folder = new Folder($templatesPath);
  100. $files = $folder->read(true, true);
  101. $foler = null;
  102. if($files[1]){
  103. if($_templates){
  104. $_templates = am($_templates,$files[1]);
  105. }else{
  106. $_templates = $files[1];
  107. }
  108. }
  109. }
  110. $templates = array();
  111. foreach($_templates as $template){
  112. $ext = Configure::read('BcApp.templateExt');
  113. if($template != 'installations'.$ext){
  114. $template = basename($template, $ext);
  115. $templates[$template] = $template;
  116. }
  117. }
  118. return $templates;
  119. }
  120. /**
  121. * フォームテンプレートを取得
  122. * コンボボックスのソースとして利用
  123. * TODO 他のヘルパーに移動する
  124. * @return array
  125. * @access public
  126. */
  127. function getFormTemplates() {
  128. $templatesPathes = array();
  129. if($this->BcBaser->siteConfig['theme']){
  130. $templatesPathes[] = WWW_ROOT.'themed'.DS.$this->BcBaser->siteConfig['theme'].DS.'mail'.DS;
  131. }
  132. $templatesPathes[] = APP . 'plugins' . DS . 'mail'.DS.'views'.DS.'mail'.DS;
  133. $templatesPathes[] = BASER_PLUGINS.'mail'.DS.'views'.DS.'mail'.DS;
  134. $_templates = array();
  135. foreach($templatesPathes as $templatePath){
  136. $folder = new Folder($templatePath);
  137. $files = $folder->read(true, true);
  138. $foler = null;
  139. if($files[0]){
  140. if($_templates){
  141. $_templates = am($_templates,$files[0]);
  142. }else{
  143. $_templates = $files[0];
  144. }
  145. }
  146. }
  147. $templates = array();
  148. foreach($_templates as $template){
  149. if($template != 'mobile'){
  150. $templates[$template] = $template;
  151. }
  152. }
  153. return $templates;
  154. }
  155. /**
  156. * レイアウトテンプレートを取得
  157. * コンボボックスのソースとして利用
  158. * TODO 他のヘルパに移動する
  159. * @return array
  160. * @access public
  161. */
  162. function getMailTemplates() {
  163. $templatesPathes = array();
  164. if($this->BcBaser->siteConfig['theme']){
  165. $templatesPathes[] = WWW_ROOT.'themed'.DS.$this->BcBaser->siteConfig['theme'].DS.'elements'.DS.'email'.DS.'text'.DS;
  166. }
  167. $templatesPathes[] = APP . 'plugins' . DS . 'mail'.DS.'views'.DS.'elements'.DS.'email'.DS.'text'.DS;
  168. $templatesPathes[] = BASER_PLUGINS.'mail'.DS.'views'.DS.'elements'.DS.'email'.DS.'text'.DS;
  169. $_templates = array();
  170. foreach($templatesPathes as $templatesPath){
  171. $folder = new Folder($templatesPath);
  172. $files = $folder->read(true, true);
  173. $foler = null;
  174. if($files[1]){
  175. if($_templates){
  176. $_templates = am($_templates,$files[1]);
  177. }else{
  178. $_templates = $files[1];
  179. }
  180. }
  181. }
  182. $templates = array();
  183. foreach($_templates as $template){
  184. $ext = Configure::read('BcApp.templateExt');
  185. if($template != 'mail_data'.$ext){
  186. $template = basename($template, $ext);
  187. $templates[$template] = $template;
  188. }
  189. }
  190. return $templates;
  191. }
  192. /**
  193. * メールの説明文を取得する
  194. * @return string
  195. */
  196. function getDescription() {
  197. return $this->mailContent['description'];
  198. }
  199. /**
  200. * メールの説明文を表示する
  201. * @return void
  202. */
  203. function description() {
  204. echo $this->getDescription();
  205. }
  206. }
  207. ?>