/** * 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; }