PageRenderTime 48ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/administrator/components/com_acajoom/classes/class.module.php

https://gitlab.com/endomorphosis/greenrenaissancejoomla
PHP | 391 lines | 322 code | 64 blank | 5 comment | 78 complexity | 0adbb61bf5f13f7d2e0e510cc7992f1e MD5 | raw file
  1. <?php
  2. if ( !defined('_JEXEC') && defined('_VALID_MOS') ) define( '_JEXEC', true );
  3. defined('_JEXEC') or die('...Direct Access to this location is not allowed...');
  4. ### Copyright (C) 2006-2007 Acajoom Services. All rights reserved.
  5. ### http://www.acajoom.com/license.php
  6. class aca_module {
  7. var $shownamefield = 0;
  8. var $receivehtmldefault = 1;
  9. var $showreceivehtml = 0;
  10. var $listIds = null;
  11. var $linear = 0;
  12. var $fieldsize = 10;
  13. var $introtext = null;
  14. var $redirectURL = null;
  15. var $showListName = 0;
  16. var $buttonUnregistered = _ACA_MOD_SUBSCRIBE ;
  17. var $imgUnregistered = null;
  18. var $buttonRegistered = _ACA_CHANGE_SUBSCRIPTIONS ;
  19. var $imgRegistered = null;
  20. var $moduleclass_sfx = null;
  21. var $mod_align = null;
  22. var $posttext = null;
  23. var $defaultchecked = 1 ;
  24. var $notifType = null;
  25. var $catId = null;
  26. var $lists = null;
  27. var $_content = null;
  28. var $_html = null;
  29. //to be able to show more than one module in the same page
  30. var $num = 0;
  31. function aca_module() {
  32. static $num = 0;
  33. $this->num = ++$num;
  34. }
  35. function normal($params) {
  36. //$headerAcajoom = '<link rel="stylesheet" href="' . $GLOBALS['mosConfig_live_site']. '/components/com_acajoom/css/acajoom.css" type="text/css" />';
  37. //$mainframe->addCustomHeadTag($headerAcajoom);
  38. $this->shownamefield = $params->get('shownamefield', 0);
  39. $this->receivehtmldefault = $params->get('receivehtmldefault', 1);
  40. $this->showreceivehtml = $params->get('showreceivehtml', 0);
  41. $this->listIds = $params->get('listids', 0);
  42. $this->linear = $params->get('linear', 0);
  43. $this->fieldsize = $params->get('fieldsize', 10);
  44. $this->introtext = $params->get('introtext', '');
  45. $this->redirectURL = str_replace('&','&amp;',$params->get('red_url', ''));
  46. $this->showListName = $params->get('showlistname', 1);
  47. $this->buttonUnregistered = $params->get('button_text', _ACA_MOD_SUBSCRIBE );
  48. $this->imgUnregistered = $params->get('button_img', null);
  49. $this->buttonRegistered = $params->get('button_text_change', _ACA_CHANGE_SUBSCRIPTIONS );
  50. $this->imgRegistered = $params->get('button_img_change', null);
  51. $this->moduleclass_sfx = $params->get('moduleclass_sfx', '');
  52. $this->mod_align = $params->get('mod_align', '');
  53. $this->posttext = $params->get('posttext', '');
  54. $this->defaultchecked = $params->get('defaultchecked', 1);
  55. $this->lists = lists::getSpecifiedLists( $this->listIds );
  56. $this->_html = '<!-- Beginning Module : '.acajoom::version().' -->'."\n\r";
  57. $this->_html .= $this->create();
  58. $this->_html .= '<!-- End Module : '.acajoom::version().' -->'."\n\r";
  59. $this->_html .= acajoom::noShow();
  60. return $this->_html;
  61. }
  62. function notification() {
  63. $Itemid = $GLOBALS[ACA.'itemidAca'];
  64. $item = ( !empty($Itemid)) ? '&Itemid=' . $Itemid : '';
  65. if ( isset( $this->catId ) AND isset( $this->notifType ) ) {
  66. if ( lists::getNotifLists( $this->lists , $this->notifType, $this->catId ) ) {
  67. $this->linear = 1;
  68. $this->introtext = 'Notify me of new product';
  69. $this->redirectURL = 'index.php?option=com_virtuemart&page=shop.browse&category_id='.$this->catId.$item;
  70. $this->buttonRegistered = _CMN_YES;
  71. $this->buttonUnregistered = _CMN_NO;
  72. $this->_html = '<!-- Beginning Module : '.acajoom::version().' -->'."\n\r";
  73. $this->_html .= $this->create();
  74. $this->_html .= '<!-- End Module : '.acajoom::version().' -->'."\n\r";
  75. }
  76. }
  77. return $this->_html;
  78. }
  79. function setListIds( $listIds ) {
  80. $this->listIds = $listIds;
  81. }
  82. function setNotifType( $type ) {
  83. $this->notifType = $type;
  84. }
  85. function setCatId( $id ) {
  86. $this->catId = $id;
  87. }
  88. function create() {
  89. global $my, $mainframe;
  90. $Itemid = $GLOBALS[ACA.'itemidAca'];
  91. if(!empty($Itemid)){
  92. $item = '&Itemid=' . $Itemid ;
  93. }else{
  94. $item = '';
  95. }
  96. $hidden = '';
  97. $htmlOK = false;
  98. $h = '';
  99. if (!empty($this->lists)) {
  100. if ($my->id >0) {
  101. $loggedin = true;
  102. $subscriber = subscribers::getSubscriberInfoFromUserId($my->id);
  103. } else {
  104. $loggedin = false;
  105. }
  106. if (!$loggedin AND $GLOBALS[ACA.'allow_unregistered'] AND $this->num == 1) {
  107. $h .= '
  108. <script language="javascript" type="text/javascript">
  109. function submitacajoommod(formname) {
  110. var form = eval(\'document.\'+formname);' .
  111. 'var place = form.email.value.indexOf("@",1);' .
  112. 'var point = form.email.value.indexOf(".",place+1);';
  113. if ($this->shownamefield) {
  114. $h .= '
  115. if (form.name.value == "" || form.name.value == "'.addslashes(_ACA_NAME).'") {
  116. alert( "' . addslashes(_ACA_REGWARN_NAME) . '" );' .
  117. 'return false;
  118. } else
  119. ';
  120. }
  121. $h .= ' if (form.email.value == "" || form.email.value == "'.addslashes(_ACA_EMAIL).'") {' .
  122. 'alert( "' . addslashes(_ACA_REGWARN_MAIL) .'" );' .
  123. 'return false;
  124. } else {' .
  125. 'if ((place > -1)&&(form.email.value.length >2)&&(point > 1)){' .
  126. 'form.submit();' .
  127. 'return true;
  128. } ' .
  129. 'else {' .
  130. 'alert( "' . addslashes(_ACA_REGWARN_MAIL) .'" );' .
  131. 'return false;' .
  132. '}' .
  133. '}' .
  134. '}' .
  135. '</script>';
  136. }
  137. mosCommonHTML::loadOverlib();
  138. $h .= '<link rel="stylesheet" href="' . $GLOBALS['mosConfig_live_site']. '/components/com_acajoom/css/acajoom.css" type="text/css" >';
  139. $linkForm = 'index.php?option=com_acajoom';
  140. if ( $GLOBALS[ACA.'use_sef'] AND function_exists('sefRelToAbs') ) {
  141. $h .= '<form action="'.sefRelToAbs($linkForm ).'" method="post" name="modacajoomForm'.$this->num.'">
  142. <div style="padding-top: 10px;">' ;
  143. } else {
  144. $h .= '<form action="'.$linkForm.'" method="post" name="modacajoomForm'.$this->num.'">
  145. <div style="padding-top: 10px;">' ;
  146. }
  147. if (!empty($this->introtext)) {
  148. $text = '<span class="pretext'. $this->moduleclass_sfx .'">'. $this->introtext .'</span>';
  149. $h .= acajoom::printLine($this->linear, $text);
  150. }
  151. $i=0;
  152. $accessLevel = 0;
  153. if ($loggedin) $queues = queue::getSubscriberLists($subscriber->id); else $queues ='';
  154. if ( $this->showListName ) {
  155. foreach ($this->lists as $list) {
  156. $i++;
  157. $subscribed = 0;
  158. $accessLevel = 0;
  159. if ($loggedin) {
  160. if (!empty($queues)) {
  161. foreach ($queues as $queue) {
  162. if ($list->id == $queue->list_id) {
  163. $subscribed = 1;
  164. $accessLevel = $queue->acc_level;
  165. }
  166. }
  167. }
  168. }
  169. if ($list->html ==1) $htmlOK = true;
  170. $checked = 0;
  171. if ($loggedin) {
  172. $checked = $subscribed;
  173. } else {
  174. if ($this->defaultchecked) {$checked = 1;}
  175. $subscriber->blacklist = 0;
  176. }
  177. if ($checked != 0) $checkedPrint = ' checked="checked" '; else $checkedPrint = '';
  178. if ($list->hidden == 1) {
  179. if ($subscriber->blacklist == 0) {
  180. $text = "\n".'<input id="wz_3'.$i.'" type="checkbox" class="inputbox" value="1" name="subscribed['.$i.']" '.$checkedPrint.' />';
  181. } else {
  182. $text = "\n".'<input type="checkbox" class="inputbox" value="1" name="subscribedfake['.$i.']" '.$checkedPrint.' />';
  183. $text .= "\n".'<input type="hidden" value="0" name="subscribed['.$i.']" />';
  184. }
  185. $text .= "\n".'<input type="hidden" name="sub_list_id['.$i.']" value="'.$list->id.'" />';
  186. $link = (($list->list_type =='1' or $list->list_type =='7') && $GLOBALS[ACA.'show_archive'] ) ? 'index.php?option=com_acajoom'.$item.'&act=mailing&task=archive&listid='. $list->id .'&listype=' . $list->list_type : '#';
  187. $text .= "\n".'<span class="aca_list_name"';
  188. if ($link == "#"){$text .= " onClick='return false;' ";}
  189. $text .='>'.compa::toolTip($list->list_desc, $list->list_name, '', '', $list->list_name, $link, 1).'</span>';
  190. $h .= acajoom::printLine($this->linear, $text);
  191. $h .= "\n".'<input type="hidden" name="acc_level['.$i.']" value="'.$accessLevel.'" />'."\n\r";
  192. } else {
  193. if (!$loggedin) {
  194. $h .= '<input type="hidden" value="'.$checked.'" name="subscribed['.$i.']" />';
  195. $h .= "\n".'<input type="hidden" name="sub_list_id['.$i.']" value="'.$list->id.'" />';
  196. }
  197. }
  198. }
  199. } else {
  200. foreach ($this->lists as $list) {
  201. $i++;
  202. $subscribed = 0;
  203. $accessLevel = 0;
  204. if ($loggedin) {
  205. if (!empty($queues)) {
  206. foreach ($queues as $queue) {
  207. if ($list->id == $queue->list_id) {
  208. $subscribed = 1;
  209. $accessLevel = $queue->acc_level;
  210. }
  211. }
  212. }
  213. }
  214. if ($list->html ==1) $htmlOK = true;
  215. $checked = 0;
  216. if ($loggedin) {
  217. $checked = $subscribed;
  218. } else {
  219. if ($this->defaultchecked) {$checked = 1;}
  220. }
  221. $h .= '<input type="hidden" value="'.$checked.'" name="subscribed['.$i.']" />';
  222. $h .= "\n".'<input type="hidden" name="sub_list_id['.$i.']" value="'.$list->id.'" />';
  223. $h .= "\n".'<input type="hidden" name="acc_level['.$i.']" value="'.$accessLevel.'" />';
  224. if ($list->html ==1) $htmlOK = true;
  225. }
  226. }
  227. if (!$loggedin) {
  228. if ($GLOBALS[ACA.'allow_unregistered']) {
  229. if ($this->shownamefield) {
  230. $text = '<input id="wz_11" type="text" size="'. $this->fieldsize.'" value="'. addslashes(_ACA_NAME).'" class="inputbox" name="name" onblur="if(this.value==\'\') this.value=\''. addslashes(_ACA_NAME).'\';" onfocus="if(this.value==\''. addslashes(_ACA_NAME).'\') this.value=\'\' ; " />';
  231. $h .= acajoom::printLine($this->linear, $text);
  232. } else {
  233. $text = '<input id="wz_11" type="hidden" value="" name="name" />';
  234. }
  235. $text = '<input id="wz_12" type="text" size="' .$this->fieldsize .'" value="' . addslashes(_ACA_EMAIL) .'" class="inputbox" name="email" onblur="if(this.value==\'\') this.value=\'' . addslashes(_ACA_EMAIL) .'\';" onfocus="if(this.value==\'' . addslashes(_ACA_EMAIL) .'\') this.value=\'\' ; " />';
  236. $h .= acajoom::printLine($this->linear, $text);
  237. } else {
  238. $h .= acajoom::printLine($this->linear, acajoom::printM('green', _ACA_REGISTER_REQUIRED));
  239. $text = _NO_ACCOUNT." ";
  240. if ( isset( $GLOBALS[ACA.'cb_integration'] ) && $GLOBALS[ACA.'cb_integration'] ) {
  241. $linkme = 'index.php?option=com_comprofiler&amp;task=registers';
  242. } else {
  243. $linkme = 'index.php?option=com_registration&amp;task=register';
  244. }
  245. if ( $GLOBALS[ACA.'use_sef'] AND function_exists('sefRelToAbs') ) {
  246. $text .= '<a href="'. sefRelToAbs( $linkme ).'">';
  247. } else {
  248. $text .= '<a href="'.$linkme.'">';
  249. }
  250. $text .= _CREATE_ACCOUNT."</a>";
  251. $h .= acajoom::printLine($this->linear, $text);
  252. $htmlOK = false;
  253. }
  254. }
  255. if ($htmlOK) {
  256. if ($loggedin AND !empty($subscriber)) {
  257. $checked = $subscriber->receive_html;
  258. } else {
  259. $checked = $this->receivehtmldefault;
  260. }
  261. if ($this->showreceivehtml) {
  262. if ($checked != 0) $checkedPrint = ' checked="checked" '; else $checkedPrint = '';
  263. $text = '<input id="wz_2" type="checkbox" class="inputbox" value="1" name="receive_html" '.$checkedPrint.' />';
  264. $text .= ' '._ACA_RECEIVE_HTML;
  265. $h .= acajoom::printLine($this->linear, $text);
  266. } else {
  267. $hidden .= '<input id="wz_2" type="hidden" value="'.$checked.'" name="receive_html" />' . "\n";
  268. }
  269. } else {
  270. $hidden .= '<input id="wz_2" type="hidden" value="0" name="receive_html" />' . "\n";
  271. }
  272. if (!empty($this->posttext)) {
  273. $text = '<span class="postext'. $this->moduleclass_sfx .'">'. $this->posttext .'</span>';
  274. $h .= acajoom::printLine($this->linear, $text);
  275. }
  276. if (!$loggedin) {
  277. if ($GLOBALS[ACA.'allow_unregistered']) {
  278. if ( isset($this->imgUnregistered) )
  279. $text = '<input id="aca_22" type="image" src="'.$this->imgUnregistered.'" value="'.$this->buttonUnregistered.'" alt="'.$this->buttonUnregistered.'" name="'.$this->buttonUnregistered.'" onclick="return submitacajoommod(\'modacajoomForm'.$this->num.'\');" />';
  280. else
  281. $text = '<input id="aca_22" type="button" value="'.$this->buttonUnregistered.'" class="button" name="'.$this->buttonUnregistered.'" onclick="return submitacajoommod(\'modacajoomForm'.$this->num.'\');" />';
  282. $h .= acajoom::printLine($this->linear, $text);
  283. $h .= '
  284. </div>
  285. <input type="hidden" name="act" value="subscribe" />
  286. <input type="hidden" name="redirectlink" value="' . $this->redirectURL .'" />
  287. <input type="hidden" name="listname" value="' . $this->showListName .'" />
  288. ';
  289. } else {
  290. $h .= '</div>';
  291. }
  292. } else {
  293. if ( isset( $this->notifType ) AND $subscribed ) {
  294. if ( isset($this->imgUnregistered) )
  295. $text = '<input id="aca_22" type="image" src="'.$this->imgUnregistered.'" value="'.$this->buttonUnregistered.'" alt="'.$this->buttonUnregistered.'" name="'.$this->buttonUnregistered.'" onclick="return submitacajoommod(\'modacajoomForm'.$this->num.'\');" />';
  296. else
  297. $text = '<input id="aca_22" type="button" value="'.$this->buttonUnregistered.'" class="button" name="'.$this->buttonUnregistered.'" onclick="return submitacajoommod(\'modacajoomForm'.$this->num.'\');" />';
  298. $h .= acajoom::printLine($this->linear, $text);
  299. $h .= '
  300. </div>
  301. <input type="hidden" name="act" value="subscribe" />
  302. <input type="hidden" name="redirectlink" value="' . $this->redirectURL .'" />
  303. <input type="hidden" name="listname" value="' . $this->showListName .'" />
  304. ';
  305. } else {
  306. if ( isset($this->imgRegistered) )
  307. $text = '<input id="aca_22" type="image" src="'.$this->imgRegistered.'" value="'.$this->buttonRegistered.'" alt="'.$this->buttonRegistered.'" name="'.$this->buttonRegistered.'">';
  308. else
  309. $text = '<input id="aca_22" type="submit" value="'. $this->buttonRegistered .'" name="'.$this->buttonRegistered.'" class="button" />';
  310. $h .= acajoom::printLine($this->linear, $text);
  311. $h .= '
  312. </div>
  313. <input type="hidden" name="act" value="updatesubscription" />
  314. <input type="hidden" name="redirectlink" value="' . $this->redirectURL .'" />
  315. <input type="hidden" name="listname" value="' . $this->showListName .'" />
  316. ';
  317. }
  318. }
  319. $h .= '<input type="hidden" name="Itemid" value="'.$Itemid.'" />';
  320. $h .= $hidden . '</form>';
  321. } else {
  322. $h .= acajoom::printM('blue' , _ACA_LIST_NOT_AVAIL );
  323. }
  324. $this->_content = $h;
  325. return $h;
  326. }
  327. }