Ejemplo n.º 1
0
 function modify()
 {
     global $Itemid;
     $app = JFactory::getApplication();
     $pathway = $app->getPathway();
     $document = JFactory::getDocument();
     $values = new stdClass();
     $values->show_page_heading = 0;
     $listsClass = acymailing_get('class.list');
     $subscriberClass = acymailing_get('class.subscriber');
     $jsite = JFactory::getApplication('site');
     $menus = $jsite->getMenu();
     $menu = $menus->getActive();
     if (empty($menu) and !empty($Itemid)) {
         $menus->setActive($Itemid);
         $menu = $menus->getItem($Itemid);
     }
     if (is_object($menu)) {
         jimport('joomla.html.parameter');
         $menuparams = new acyParameter($menu->params);
         if (!empty($menuparams)) {
             $this->assign('introtext', $menuparams->get('introtext'));
             $this->assign('finaltext', $menuparams->get('finaltext'));
             if ($menuparams->get('menu-meta_description')) {
                 $document->setDescription($menuparams->get('menu-meta_description'));
             }
             if ($menuparams->get('menu-meta_keywords')) {
                 $document->setMetadata('keywords', $menuparams->get('menu-meta_keywords'));
             }
             if ($menuparams->get('robots')) {
                 $document->setMetadata('robots', $menuparams->get('robots'));
             }
             if ($menuparams->get('page_title')) {
                 acymailing_setPageTitle($menuparams->get('page_title'));
             }
             $values->suffix = $menuparams->get('pageclass_sfx', '');
             $values->page_heading = ACYMAILING_J16 ? $menuparams->get('page_heading') : $menuparams->get('page_title');
             $values->show_page_heading = ACYMAILING_J16 ? $menuparams->get('show_page_heading', 0) : $menuparams->get('show_page_title', 0);
         }
     }
     $subscriber = $subscriberClass->identify(true);
     if (empty($subscriber)) {
         $subscription = $listsClass->getLists('listid');
         $subscriber = new stdClass();
         $subscriber->html = 1;
         $subscriber->subid = 0;
         $subscriber->key = 0;
         if (!empty($subscription)) {
             foreach ($subscription as $id => $onesub) {
                 $subscription[$id]->status = 1;
                 if (!empty($menuparams) and strtolower($menuparams->get('listschecked', 'all')) != 'all' and !in_array($id, explode(',', $menuparams->get('listschecked', 'all')))) {
                     $subscription[$id]->status = 0;
                 }
             }
         }
         $pathway->addItem(JText::_('SUBSCRIPTION'));
         if (empty($menu)) {
             acymailing_setPageTitle(JText::_('SUBSCRIPTION'));
         }
     } else {
         $subscription = $subscriberClass->getSubscription($subscriber->subid, 'listid');
         $pathway->addItem(JText::_('MODIFY_SUBSCRIPTION'));
         if (empty($menu)) {
             acymailing_setPageTitle(JText::_('MODIFY_SUBSCRIPTION'));
         }
     }
     acymailing_initJSStrings();
     if (!empty($menuparams) and strtolower($menuparams->get('lists', 'all')) != 'all') {
         $visibleLists = strtolower($menuparams->get('lists', 'all'));
         if ($visibleLists == 'none') {
             $subscription = array();
         } else {
             $newSubscription = array();
             $visiblesListsArray = explode(',', $visibleLists);
             foreach ($subscription as $id => $onesub) {
                 if (in_array($id, $visiblesListsArray)) {
                     $newSubscription[$id] = $onesub;
                 }
             }
             $subscription = $newSubscription;
         }
     }
     if (!acymailing_level(3)) {
         if (!empty($menuparams) && strtolower($menuparams->get('customfields', 'default')) != 'default') {
             $fieldsToDisplay = strtolower($menuparams->get('customfields', 'default'));
             $this->assignRef('fieldsToDisplay', $fieldsToDisplay);
         } else {
             $this->assign('fieldsToDisplay', 'default');
         }
     }
     $displayLists = false;
     foreach ($subscription as $oneSub) {
         if (!empty($oneSub->published) and $oneSub->visible) {
             $displayLists = true;
             break;
         }
     }
     $this->assignRef('values', $values);
     $this->assign('status', acymailing_get('type.festatus'));
     $this->assignRef('subscription', $subscription);
     $this->assignRef('subscriber', $subscriber);
     $this->assignRef('displayLists', $displayLists);
     $this->assign('config', acymailing_config());
 }
Ejemplo n.º 2
0
 static function initJSStrings($includejs = 'header', $params = null)
 {
     return acymailing_initJSStrings($includejs, $params);
 }
Ejemplo n.º 3
0
	function modify(){
		global $Itemid;

		$app = JFactory::getApplication();
		$pathway	= $app->getPathway();
		$document	= JFactory::getDocument();
		$values = new stdClass();
		$values->show_page_heading = 0;

		$listsClass = acymailing_get('class.list');
		$subscriberClass = acymailing_get('class.subscriber');

		$jsite = JFactory::getApplication('site');
		$menus = $jsite->getMenu();
		$menu	= $menus->getActive();

		if(empty($menu) AND !empty($Itemid)){
			$menus->setActive($Itemid);
			$menu	= $menus->getItem($Itemid);
		}

		if (is_object( $menu )) {
			jimport('joomla.html.parameter');
			$menuparams = new acyParameter( $menu->params );

			if(!empty($menuparams)){
				$this->assign('introtext',$menuparams->get('introtext'));
				$this->assign('finaltext',$menuparams->get('finaltext'));

				if ($menuparams->get('menu-meta_description')) $document->setDescription($menuparams->get('menu-meta_description'));
				if ($menuparams->get('menu-meta_keywords')) $document->setMetadata('keywords',$menuparams->get('menu-meta_keywords'));
				if ($menuparams->get('robots')) $document->setMetadata('robots',$menuparams->get('robots'));
				if ($menuparams->get('page_title')) acymailing_setPageTitle($menuparams->get('page_title'));

				$values->suffix = $menuparams->get('pageclass_sfx','');
				$values->page_heading = ACYMAILING_J16 ? $menuparams->get('page_heading') : $menuparams->get('page_title');
				$values->show_page_heading = ACYMAILING_J16 ? $menuparams->get('show_page_heading',0) : $menuparams->get('show_page_title',0);
			}
		}

		$subscriber = $subscriberClass->identify(true);
		if(empty($subscriber)){
			$subscription = $listsClass->getLists('listid');
			$subscriber = new stdClass();
			$subscriber->html = 1;
			$subscriber->subid = 0;
			$subscriber->key = 0;

			if(!empty($subscription)){
				foreach($subscription as $id => $onesub){
					$subscription[$id]->status = 1;
					if(!empty($menuparams) && strtolower($menuparams->get('listschecked','all')) != 'all' && !in_array($id,explode(',',$menuparams->get('listschecked','all')))){
						$subscription[$id]->status = 0;
					}
				}
			}

			$pathway->addItem(JText::_('SUBSCRIPTION'));
			if(empty($menu)) acymailing_setPageTitle(JText::_('SUBSCRIPTION'));
		}else{
			$subscription = $subscriberClass->getSubscription($subscriber->subid,'listid');

			$pathway->addItem(JText::_('MODIFY_SUBSCRIPTION'));
			if(empty($menu)) acymailing_setPageTitle(JText::_('MODIFY_SUBSCRIPTION'));
		}

		acymailing_initJSStrings();

		if(!empty($menuparams) AND strtolower($menuparams->get('lists','all')) != 'all'){
			$visibleLists = strtolower($menuparams->get('lists','all'));
			if($visibleLists == 'none') $subscription = array();
			else{
				$newSubscription = array();
				$visiblesListsArray = explode(',',$visibleLists);
				foreach($subscription as $id => $onesub){
					if(in_array($id,$visiblesListsArray)) $newSubscription[$id] = $onesub;
				}
				$subscription = $newSubscription;
			}
		}

		if(acymailing_level(1)){
			$subscription = $listsClass->onlyCurrentLanguage($subscription);

			$js = "function refreshCaptcha(){
					var captchaLink = document.getElementById('captcha_picture').src;
					myregexp = new RegExp('val[-=]([0-9]+)');
					valToChange=captchaLink.match(myregexp)[1];
					document.getElementById('captcha_picture').src = captchaLink.replace(valToChange,valToChange+'0');
				}";
			$document->addScriptDeclaration( $js );
		}

		if(acymailing_level(3)){
			$fieldsClass = acymailing_get('class.fields');
			$fieldsClass->origin = 'subform';
			if(!empty($menuparams) && strtolower($menuparams->get('customfields','default')) != 'default'){
				$extraFields = $fieldsClass->getFields(strtolower($menuparams->get('customfields')),$subscriber);
			} else{
				$extraFields = $fieldsClass->getFields('frontcomp',$subscriber);
			}
			$this->assignRef('fieldsClass',$fieldsClass);
			$this->assignRef('extraFields',$extraFields);
			$js = $fieldsClass->prepareConditionalDisplay($extraFields, 'data[subscriber]', 'modifyForm');
			if(!empty($js)) $document->addScriptDeclaration($js);

			$requiredFields = array();
			$validMessages = array();
			$checkFields = array();
			$checkFieldsType = array();
			$checkFieldsRegexp = array();
			$validCheckMsg = array();

			foreach($extraFields as $oneField){
				if(in_array($oneField->namekey,array('name','email'))) continue;
				if(!empty($oneField->required)){
					$requiredFields[] = $oneField->namekey;
					if(!empty($oneField->options['errormessage'])){
						$validMessages[] = addslashes($fieldsClass->trans($oneField->options['errormessage']));
					}else{
						$validMessages[] = addslashes(JText::sprintf('FIELD_VALID',$fieldsClass->trans($oneField->fieldname)));
					}
				}
				if($oneField->type == 'text' && !empty($oneField->options['checkcontent'])){
					$checkFields[] = $oneField->namekey;
					$checkFieldsType[] = $oneField->options['checkcontent'];
					if($oneField->options['checkcontent'] == 'regexp') $checkFieldsRegexp[] = $oneField->options['regexp'];
					if(!empty($oneField->options['errormessagecheckcontent'])){
						$validCheckMsg[] = addslashes($fieldsClass->trans($oneField->options['errormessagecheckcontent']));
					}elseif(!empty($oneField->options['errormessage'])){
						$validCheckMsg[] = addslashes($fieldsClass->trans($oneField->options['errormessage']));
					} else{
						$validCheckMsg[] = addslashes(JText::sprintf('FIELD_CONTENT_VALID',$fieldsClass->trans($oneField->fieldname)));
					}
				}
			}

			$doc = JFactory::getDocument();
			if(!empty($requiredFields)){
				$js = "
				acymailing['reqFieldsComp'] = Array('".implode("','",$requiredFields)."');
				acymailing['validFieldsComp'] = Array('".implode("','",$validMessages)."');
				";
				$doc->addScriptDeclaration( $js );
			}
			if(!empty($checkFields)){
				$js = "acymailing['checkFields'] = Array('".implode("','",$checkFields)."');
				acymailing['checkFieldsType'] = Array('".implode("','",$checkFieldsType)."');
				acymailing['validCheckFields'] = Array('".implode("','",$validCheckMsg)."');";
				if(!empty($checkFieldsRegexp)) $js .= "acymailing['checkFieldsRegexp'] = Array('".implode("','",$checkFieldsRegexp)."');";
				$js .= "
				";
				$doc->addScriptDeclaration( $js );
			}

			$my = JFactory::getUser();
			foreach($subscription as $listid => $oneList){
				if(!acymailing_isAllowed($oneList->access_sub)){
					$subscription[$listid]->published = false;
					continue;
				}
			}
		}


		if(!acymailing_level(3)){
			if(!empty($menuparams) && strtolower($menuparams->get('customfields','default')) != 'default'){
				$fieldsToDisplay = strtolower($menuparams->get('customfields','default'));
				$this->assignRef('fieldsToDisplay',$fieldsToDisplay);
			} else{
				$this->assign('fieldsToDisplay','default');
			}
		}

		$hiddenLists = '';
		if(!empty($menuparams)){
			$hiddenLists = trim($menuparams->get('hiddenlists','None'));
			if(empty($subscriber)) $allLists = $listsClass->getLists('listid');
			else $allLists = $subscriberClass->getSubscription($subscriber->subid,'listid');
			if(acymailing_level(1)) $allLists = $listsClass->onlyCurrentLanguage($allLists);
			if(acymailing_level(3)) $allLists = $listsClass->onlyAllowedLists($allLists);

			$hiddenListsArray = array();
			if(strpos($hiddenLists,',') || is_numeric($hiddenLists)){
				$allhiddenlists = explode(',',$hiddenLists);
				foreach($allLists as $oneList){
					if(!$oneList->published || !in_array($oneList->listid,$allhiddenlists)) continue;
					$hiddenListsArray[] = $oneList->listid;
					unset($subscription[$oneList->listid]);
				}
			}elseif(strtolower($hiddenLists) == 'all'){
				$subscription = array();
				foreach($allLists as $oneList){
					if(!empty($oneList->published)) $hiddenListsArray[] = $oneList->listid;
				}
			}
			$hiddenLists = implode(',',$hiddenListsArray);
		}

		$displayLists = false;
		foreach($subscription as $oneSub){
			if(!empty( $oneSub->published) AND $oneSub->visible){
				$displayLists = true;
				break;
			}
		}

		$this->assignRef('hiddenlists',$hiddenLists);
		$this->assignRef('values',$values);
		$this->assign('status',acymailing_get('type.festatus'));
		$this->assignRef('subscription',$subscription);
		$this->assignRef('subscriber',$subscriber);
		$this->assignRef('displayLists',$displayLists);
		$this->assign('config',acymailing_config());
	}