_plugin_activated=false; $settings=get_option("awp_plugins"); if(get_option("awp_plugins")!=="false"){ if($settings["newsletters"]) $this->_plugin_activated=true; } } /** * Returns plugin instance * * @return AWP_ContactForms */ function &instance() { static $instances = array(); if (!isset($instances[0])) { $class = __CLASS__; $instances[0] = & new $class(); } return $instances[0]; } /** * Runs plugin */ function run() { if($this->_plugin_activated){ add_action( 'widgets_init',array(&$this,'register_widget')); //initialize widget add_action('the_posts', array( &$this,'check_for_shortcode' )); // check shortcode add_shortcode('apptivonewsletterform', array(&$this,'shownewsletterform')); } } function shownewsletterform($atts){ extract(shortcode_atts(array('name'=> ''), $atts)); $formname=trim($name); $content=""; $successmsg=""; $newsletterform=$this->get_newsletterform_fields($formname); $submitformname=$_POST['awp_newsletterformname']; if(isset($_POST['awp_newsletterform_submit']) && $submitformname==$formname){ $successmsg= $this->save_newsletter($submitformname); } ob_start(); if(!empty($newsletterform) && !empty($newsletterform[fields]) ){ include $newsletterform['templatefile']; }else{ echo awp_messagelist('newsletter-display-page'); } $content = ob_get_clean(); return $content; } function save_newsletter($formname){ $newsletterform=$this->get_newsletterform_fields($formname); if(!empty($newsletterform)){ $newsletterformfields=$newsletterform['fields']; //Process the $_POST here.. $submittedformvalues=array(); $submittedformvalues['category'] = $_POST['newsletter_category']; foreach($newsletterformfields as $field) { $fieldid=$field['fieldid']; if($fieldid=='newsletter_phone'){ if(isset($_POST[$formname.'_newsletter_phone1'])) { $submittedformvalues[$fieldid]= $_POST[$formname.'_newsletter_phone1'].$_POST[$formname.'_newsletter_phone2'].$_POST[$formname.'_newsletter_phone3']; } else { $submittedformvalues[$fieldid]= $_POST[$fieldid]; } } else { $submittedformvalues[$fieldid]= stripslashes($_POST[$fieldid]); } } //Submit the $submittedformvalues to Apptivo Lead Webservice //Dont forgot to save the contact form name as Lead Source value $category = $submittedformvalues[category]; $firstname = $submittedformvalues[newsletter_firstname]; $lastname = $submittedformvalues[newsletter_lastname]; $email = $submittedformvalues[newsletter_email]; $phoneNumber = $submittedformvalues[newsletter_phone]; $comments = $submittedformvalues[newsletter_comments]; if(!empty($email)){ $response = createTargetList($category, $firstname, $lastname,$email,$phoneNumber,$comments); $confmsg = $response->return->responseMessage; } if($response == 'E_100') { echo awp_messagelist('newslettertarget-display-page'); }else if(!empty($confmsg) && $confmsg != "Email already registered"){ if(!empty($newsletterform[confmsg])){ $confmsg = $newsletterform[confmsg]; } } } return $confmsg; } function get_newsletterform_fields($formname){ $formExists=""; $newsletter_forms=array(); $newsletterform=array(); $newsletterformdetails=array(); $formname=trim($formname); $newsletter_forms=get_option('awp_newsletterforms'); if($formname=="") $formExists=""; else if(!empty($newsletter_forms)) $formExists = awp_recursive_array_search($newsletter_forms,$formname,'name' ); if(trim($formExists)!=="" ){ $newsletterform=$newsletter_forms[$formExists]; //build contactformdetails array $newsletterformdetails['name']=$newsletterform['name']; //add properties $newsletterformproperties=$newsletterform['properties']; $newsletterformdetails['tmpltype']=$newsletterformproperties['tmpltype']; $newsletterformdetails['layout']=$newsletterformproperties['layout']; $newsletterformdetails['confmsg']=$newsletterformproperties['confmsg']; $newsletterformdetails['css']=$newsletterformproperties['css']; $newsletterformdetails['category']=$newsletterformproperties['category']; $newsletterformdetails['submit_button_type']=$newsletterformproperties['submit_button_type']; $newsletterformdetails['submit_button_val']=$newsletterformproperties['submit_button_val']; //include newsletter template files. if($newsletterformproperties['tmpltype']=="awp_plugin_template") : $templatefile=AWP_NEWSLETTER_TEMPLATEPATH."/".$newsletterformproperties['layout']; //plugin template else : $templatefile=TEMPLATEPATH."/newsletter/".$newsletterformproperties['layout']; //theme template endif; $newsletterformdetails['templatefile']=$templatefile; //add fields $newsletterformfields=$newsletterform['fields']; if(!empty($newsletterformfields)){ //usort($newsletterformfields, "awp_sort_by_order"); $newnewsletterformfields=array(); foreach( $newsletterformfields as $newsletterformfield ) { $fieldinfo= $this->get_master_newsformfield($newsletterformfield['fieldid']); if(trim($newsletterformfield['showtext'])=="") $newsletterformfield['showtext']=$fieldinfo['showtext']; if(trim($newsletterformfield['required'])=="") $newsletterformfield['required']=0; $newsletterformfield['validation']=$fieldinfo['validation']; $newsletterformfield['fieldtype']=$fieldinfo['fieldtype']; array_push($newnewsletterformfields,$newsletterformfield); } usort($newnewsletterformfields, "awp_sort_by_order"); $newsletterformdetails['fields']=$newnewsletterformfields; } } return $newsletterformdetails; } function get_master_newsformfield($fieldid){ $masterfields=$this->get_master_newsletterform_fields(); $fieldinfo=array(); $fieldid=trim($fieldid); if($fieldid!=""){ $formExists=""; $formExists = awp_recursive_array_search($masterfields,$fieldid,'fieldid' ); if(trim($formExists)!=="" ){ $fieldinfo['validation']=$masterfields[$formExists]['validation']; $fieldinfo['fieldtype']=$masterfields[$formExists]['fieldtype']; $fieldinfo['showtext']=$masterfields[$formExists]['defaulttext']; } } return $fieldinfo; } function awp_getnewsletterletter_settings($title){ $formExists=""; $newsletter_forms=array(); $newsletterform=array(); $formname=trim($title); $newsletter_forms=get_option('awp_newsletterforms'); if($formname=="") $formExists=""; else if(!empty($newsletter_forms)) $formExists = awp_recursive_array_search($newsletter_forms,$formname,'name' ); if(trim($formExists)!=="" ){ $newsletterform=$newsletter_forms[$formExists]; } return $newsletterform; } function get_master_newsletterform_fields() { $fields = array( array('fieldid' => 'newsletter_firstname','fieldname' => 'First Name','defaulttext' => 'First Name','showorder' => '1','validation' => 'text','fieldtype' => 'text'), array('fieldid' => 'newsletter_lastname','fieldname' => 'Last Name','defaulttext' => 'Last Name','showorder' => '2','validation' => 'text','fieldtype' => 'text'), array('fieldid' => 'newsletter_email','fieldname' => 'Email','defaulttext' => 'Email','showorder' => '3','validation' => 'email','fieldtype' => 'text'), array('fieldid' => 'newsletter_phone','fieldname' => 'Phone','defaulttext' => 'Phone','showorder' => '4','validation' => 'number','fieldtype' => 'text'), array('fieldid' => 'newsletter_comments','fieldname' => 'Comments','defaulttext' => 'Comments','showorder' => '5','validation' => 'text','fieldtype' => 'textarea') ); return $fields; } function options(){ // Delete form Name: if($_POST['delformname']) { if(strlen(trim($_POST['delformname'])) != 0) { $formname = $_POST['delformname']; $newsletter_forms=get_option('awp_newsletterforms'); //get Key value. $formExists = awp_recursive_array_search($newsletter_forms,$formname,'name' ); if(isset($formExists)) { unset($newsletter_forms[$formExists]); } $newsletter_sort_form = array(); foreach($newsletter_forms as $news_forms_tosort ) { array_push($newsletter_sort_form,$news_forms_tosort); } update_option('awp_newsletterforms', $newsletter_sort_form); $updatemessage= 'Newsletter Form "'.$formname.'" Deleted Successfully.'; } } /* * Saving New form */ $newsletter_forms=get_option('awp_newsletterforms'); if(isset($_POST['newnewsletterformname'])) { $newsletter_forms=get_option('awp_newsletterforms'); $newnewsletterformname = $_POST['newnewsletterformname']; $newnewsletterformname = preg_replace('/[^\w]/', '', $newnewsletterformname); if($newnewsletterformname!='') { $newsletterform=array(); $newsletterform=$this->awp_getnewsletterletter_settings($newnewsletterformname); if( count($newsletterform)==0 ) { $newnewsletterformname_array =array("name"=>$newnewsletterformname); $newnewsletterform=array($newnewsletterformname_array); if( empty($newsletter_forms) ){ update_option('awp_newsletterforms',$newnewsletterform); }else{ array_push($newsletter_forms, $newnewsletterformname_array); update_option('awp_newsletterforms',$newsletter_forms); } $newsletter_forms=get_option('awp_newsletterforms'); $newsletterform=$this->awp_getnewsletterletter_settings($newnewsletterformname); $selectednewsletterform=$newnewsletterformname; $updatemessage= "Newsletter Form created. Please configure settings using the below Configuration section."; }else{ $updatemessage= "Form already exists. To change configuration, please select the form from below configuration section."; } }else{ $updatemessage= "Form Name cannot be empty."; } } /* * Loading the settings of selected form */ if(isset($_POST['awp_newsletter_selection_form'])) { $selectednewsletterform = trim( $_POST['awp_newsletter_selection_form']); if($selectednewsletterform != '') { $newsletterforms_name=array(); $newsletterforms_name=$this->awp_getnewsletterletter_settings($selectednewsletterform); if( empty($newsletterforms_name)) { //echo "Selected form configuration doestn exist."; }else{ $newsletterforms_name=$newsletterforms_name; } } } if($_POST['awp_newsletterform_settings']){ $templatelayoutnewsletter=""; if($_POST['awp_newsletterform_templatetype']=="awp_plugin_template") $templatelayoutnewsletter=$_POST['awp_newsletterform_plugintemplatelayout']; else $templatelayoutnewsletter=$_POST['awp_newsletterform_themetemplatelayout']; $newformname=$_POST['awp_newsletterform_name']; $newsletterformproperties=array( 'tmpltype' =>$_POST['awp_newsletterform_templatetype'], 'layout' =>$templatelayoutnewsletter, 'subscribetype' =>$_POST['awp_newsletterform_subscribetype'], 'confmsg' =>stripslashes($_POST['awp_newsletterform_confirmation_msg']), 'css' => $_POST['awp_newsletterform_customcss'], 'category' => $_POST['awp_newsletterform_category'], 'submit_button_type' => $_POST['awp_newsletterform_submit_type'], 'submit_button_val' => $_POST['awp_newsletterform_submit_val']); $newsletterformfields=array(); foreach( $this->get_master_newsletterform_fields() as $fieldsmasterproperties ) { $enabled=0; $newsletterformfield=array(); $fieldid=$fieldsmasterproperties['fieldid']; $fieldtype= $fieldsmasterproperties['fieldtype']; if($fieldsmasterproperties['fieldid']=='newsletter_email'){ $enabled = 1; $required = 1; $validate = 'email'; } else{ $enabled = $_POST[$fieldid.'_show']; $required = $_POST[$fieldid.'_require']; $validate = $_POST[$fieldid.'_validation']; } if(!empty($_POST[$fieldid.'_text'])){ $displaytext = $_POST[$fieldid.'_text']; } else{ $displaytext = $fieldsmasterproperties['defaulttext']; } if(!empty($_POST[$fieldid.'_order'])){ $displayorder = $_POST[$fieldid.'_order']; } else{ $displayorder = $fieldsmasterproperties['showorder']; } if($enabled){ $newsletterformfield=$this->createformfield_array($fieldid,$displaytext,$required,$fieldtype,$validate,$_POST[$fieldid.'_options'],$displayorder); array_push($newsletterformfields, $newsletterformfield); } } $newnewsletterformdetails=array('name'=>$newformname,'properties'=>$newsletterformproperties,'fields'=>$newsletterformfields); $formExists=""; if(!empty($newsletter_forms)) $formExists = awp_recursive_array_search($newsletter_forms,$newformname,'name' ); if(trim($formExists)!=="" ){ unset($newsletter_forms[$formExists]); array_push($newsletter_forms, $newnewsletterformdetails); sort($newsletter_forms); update_option('awp_newsletterforms',$newsletter_forms); $newsletter_forms=get_option('awp_newsletterforms'); $updatemessage= "Newsletter Form '".$newformname."' settings updated. Use Shortcode '[apptivonewsletterform name=\"".$newformname."\"]' in your page to use this form."; } $selectednewsletterform=$newformname; } echo "
| _plugin_activated) {?> |