Пример #1
0
 /**
  * 	ajaxApi
  *
  * 	handles ajax-based api requests
  *
  * @param array $_acmap
  * 	request data
  *
  * @return string
  * 	arbitrary data in response to requests
  */
 function ajaxApi($_acmap)
 {
     if (!isset($_acmap['m2'])) {
         return;
     }
     $args = (object) array();
     if (isset($_acmap['a'])) {
         $args = json_decode(stripslashes($_acmap['a']));
     }
     $silent = !isset($args->showErrors);
     unset($args->showErrors);
     echo EasyContactFormsRoot::api($_acmap['m2'], $args, FALSE, $silent);
 }
 /**
  * 	installTemplate
  *
  * @param  $map
  * 
  *
  * @return
  * 
  */
 function installTemplate($map)
 {
     $args = $map['a'];
     if (function_exists('gzinflate')) {
         $args['inflate'] = true;
     }
     $apiresponse = EasyContactFormsRoot::api('form-template-install', $args);
     if (is_wp_error($apiresponse)) {
         $this->processAPIError($apiresponse->get_error_message());
     } else {
         if ($apiresponse->error == 1) {
             $this->processAPIError($apiresponse->text);
         }
     }
     $tpl = $apiresponse->text;
     $tpl = base64_decode($tpl);
     if (function_exists('gzinflate')) {
         $tpl = gzinflate($tpl);
     }
     $tpl = unserialize($tpl);
     if (!$tpl) {
         $this->processAPIError('Wrong response from the API');
     }
     $tplfields = array();
     $tplfields[] = 'NotificationText';
     $tplfields[] = 'NotificationSubject';
     $tplfields[] = 'ConfirmationText';
     $tplfields[] = 'ConfirmationSubject';
     $tplfields[] = 'ReplyToNameTemplate';
     $form = EasyContactFormsClassLoader::getObject('CustomForms', true);
     $formid = $form->get('id');
     $form->setData($tpl->form);
     $form->set('id', $formid);
     $form->save();
     $tplfieldvalues = array();
     foreach ($tplfields as $fld) {
         $tplfieldvalues[$fld] = $form->get($fld);
     }
     $mapping = array();
     foreach ($tpl->c as $fld) {
         $oldfldid = $fld->id;
         $field = EasyContactFormsClassLoader::getObject('CustomFormFields', true);
         $fieldid = $field->get('id');
         $mapping[$oldfldid] = $fieldid;
         $field->setData($fld);
         $field->set('id', $fieldid);
         $field->set('CustomForms', $formid);
         $field->set('FieldSet', $fieldid);
         $field->save();
         $field->updateTemplate();
     }
     foreach ($tpl->f as $fld) {
         $oldfldid = $fld->id;
         $field = EasyContactFormsClassLoader::getObject('CustomFormFields', true);
         $fieldid = $field->get('id');
         $field->setData($fld);
         $field->set('id', $fieldid);
         $field->set('CustomForms', $formid);
         $field->set('FieldSet', $mapping[$fld->FieldSet]);
         $field->save();
         $field->updateTemplate();
         foreach ($tplfieldvalues as $name => $value) {
             $tplfieldvalues[$name] = $this->getTemplateTag($field->get('Description'), $fieldid, $value, $oldfldid);
         }
     }
     foreach ($tplfieldvalues as $name => $value) {
         $form->set($name, $value);
     }
     $currentuser = get_current_user_id();
     $query = "SELECT Users.id FROM #wp__easycontactforms_users AS Users WHERE Users.CMSId = '{$currentuser}'";
     $userid = EasyContactFormsDB::getValue($query);
     if (!is_null($userid)) {
         $form->set('ObjectOwner', $userid);
     }
     $form->save();
     $response = (object) array();
     $response->error = 0;
     $response->message = 'The template is installed';
     $response = json_encode($response);
     echo $response;
 }