本文整理汇总了PHP中Mautic\CoreBundle\Helper\InputHelper类的典型用法代码示例。如果您正苦于以下问题:PHP InputHelper类的具体用法?PHP InputHelper怎么用?PHP InputHelper使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了InputHelper类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveEntity
/**
* {@inheritdoc}
*
* @param $entity
* @param $unlock
* @return mixed
*/
public function saveEntity($entity, $unlock = true)
{
$alias = $entity->getAlias();
if (empty($alias)) {
$alias = strtolower(InputHelper::alphanum($entity->getTitle(), false, '-'));
} else {
$alias = strtolower(InputHelper::alphanum($alias, false, '-'));
}
//make sure alias is not already taken
$repo = $this->getRepository();
$testAlias = $alias;
$bundle = $entity->getBundle();
$count = $repo->checkUniqueCategoryAlias($bundle, $testAlias, $entity);
$aliasTag = $count;
while ($count) {
$testAlias = $alias . $aliasTag;
$count = $repo->checkUniqueCategoryAlias($bundle, $testAlias, $entity);
$aliasTag++;
}
if ($testAlias != $alias) {
$alias = $testAlias;
}
$entity->setAlias($alias);
parent::saveEntity($entity, $unlock);
}
示例2: preSubmitData
/**
* @param FormEvent $event
*/
public function preSubmitData(FormEvent $event)
{
$data = $event->getData();
//clean the data
$data = InputHelper::_($data, $this->masks);
$event->setData($data);
}
示例3: getAbTestForm
/**
* @param Request $request
* @param $modelName
* @param $abSettingsFormName
* @param $parentFormName
* @param $abFormTemplate
* @param array $formThemes
*
* @return mixed
*/
private function getAbTestForm(Request $request, $modelName, $abSettingsFormName, $parentFormName, $abFormTemplate, $formThemes = [])
{
$dataArray = ['success' => 0, 'html' => ''];
$type = InputHelper::clean($request->request->get('abKey'));
$id = InputHelper::int($request->request->get('id'));
if (!empty($type)) {
//get the HTML for the form
$model = $this->getModel($modelName);
$entity = $model->getEntity($id);
$abTestComponents = $model->getBuilderComponents($entity, 'abTestWinnerCriteria');
$abTestSettings = $abTestComponents['criteria'];
if (isset($abTestSettings[$type])) {
$html = '';
$formType = !empty($abTestSettings[$type]['formType']) ? $abTestSettings[$type]['formType'] : '';
if (!empty($formType)) {
$formOptions = !empty($abTestSettings[$type]['formTypeOptions']) ? $abTestSettings[$type]['formTypeOptions'] : [];
$form = $this->get('form.factory')->create($abSettingsFormName, [], ['formType' => $formType, 'formTypeOptions' => $formOptions]);
$html = $this->renderView($abFormTemplate, ['form' => $this->setFormTheme($form, $formThemes)]);
}
$html = str_replace(["{$abSettingsFormName}[", "{$abSettingsFormName}_", $abSettingsFormName], ["{$parentFormName}[variantSettings][", "{$parentFormName}_variantSettings_", $parentFormName], $html);
$dataArray['html'] = $html;
$dataArray['success'] = 1;
}
}
return $this->sendJsonResponse($dataArray);
}
示例4: getActionFormAction
/**
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function getActionFormAction(Request $request)
{
$dataArray = ['success' => 0, 'html' => ''];
$type = InputHelper::clean($request->request->get('actionType'));
if (!empty($type)) {
//get the HTML for the form
/** @var \Mautic\PointBundle\Model\PointModel $model */
$model = $this->getModel('point');
$actions = $model->getPointActions();
if (isset($actions['actions'][$type])) {
$themes = ['MauticPointBundle:FormTheme\\Action'];
if (!empty($actions['actions'][$type]['formTheme'])) {
$themes[] = $actions['actions'][$type]['formTheme'];
}
$formType = !empty($actions['actions'][$type]['formType']) ? $actions['actions'][$type]['formType'] : 'genericpoint_settings';
$formTypeOptions = !empty($actions['actions'][$type]['formTypeOptions']) ? $actions['actions'][$type]['formTypeOptions'] : [];
$form = $this->get('form.factory')->create('pointaction', [], ['formType' => $formType, 'formTypeOptions' => $formTypeOptions]);
$html = $this->renderView('MauticPointBundle:Point:actionform.html.php', ['form' => $this->setFormTheme($form, 'MauticPointBundle:Point:actionform.html.php', $themes)]);
//replace pointaction with point
$html = str_replace('pointaction', 'point', $html);
$dataArray['html'] = $html;
$dataArray['success'] = 1;
}
}
return $this->sendJsonResponse($dataArray);
}
示例5: setBuilderContentAction
/**
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function setBuilderContentAction(Request $request)
{
$dataArray = array('success' => 0);
$entityId = InputHelper::clean($request->request->get('entity'));
$session = $this->factory->getSession();
if (!empty($entityId)) {
$sessionVar = 'mautic.pagebuilder.' . $entityId . '.content';
// Check for an array of slots
$slots = InputHelper::_($request->request->get('slots', array(), true), 'html');
$content = $session->get($sessionVar, array());
if (!is_array($content)) {
$content = array();
}
if (!empty($slots)) {
// Builder was closed so save each content
foreach ($slots as $slot => $newContent) {
$content[$slot] = $newContent;
}
$session->set($sessionVar, $content);
$dataArray['success'] = 1;
} else {
// Check for a single slot
$newContent = InputHelper::html($request->request->get('content'));
$slot = InputHelper::clean($request->request->get('slot'));
if (!empty($slot)) {
$content[$slot] = $newContent;
$session->set($sessionVar, $content);
$dataArray['success'] = 1;
}
}
}
return $this->sendJsonResponse($dataArray);
}
示例6: saveEntity
/**
* {@inheritdoc}
*
* @param $entity
* @param bool $unlock
* @return mixed|void
*/
public function saveEntity($entity, $unlock = true)
{
$isNew = $entity->getId() ? false : true;
//set some defaults
$this->setTimestamps($entity, $isNew, $unlock);
$alias = $entity->getAlias();
if (empty($alias)) {
$alias = strtolower(InputHelper::alphanum($entity->getName(), false, '-'));
} else {
$alias = strtolower(InputHelper::alphanum($alias, false, '-'));
}
//make sure alias is not already taken
$repo = $this->getRepository();
$testAlias = $alias;
$user = $this->factory->getUser();
$existing = $repo->getLists($user, $testAlias, $entity->getId());
$count = count($existing);
$aliasTag = $count;
while ($count) {
$testAlias = $alias . $aliasTag;
$existing = $repo->getLists($user, $testAlias, $entity->getId());
$count = count($existing);
$aliasTag++;
}
if ($testAlias != $alias) {
$alias = $testAlias;
}
$entity->setAlias($alias);
$event = $this->dispatchEvent("pre_save", $entity, $isNew);
$repo->saveEntity($entity);
$this->dispatchEvent("post_save", $entity, $isNew, $event);
}
示例7: saveApiKeyAction
/**
* @param Request $request
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function saveApiKeyAction(Request $request)
{
$apiKey = InputHelper::clean($request->request->get('apiKey'));
$dataArray = ['success' => 0];
/** @var \Mautic\InstallBundle\Configurator\Configurator $configurator */
$configurator = $this->get('mautic.configurator');
if ($configurator->isFileWritable()) {
try {
$cronfigConfig = array('api_key' => $apiKey);
// Ensure the config has a secret key
$params = $configurator->getParameters();
if (!isset($params['cronfig']) || empty($params['cronfig']['secret_key'])) {
$cronfigConfig['secret_key'] = EncryptionHelper::generateKey();
$dataArray['secret_key'] = $cronfigConfig['secret_key'];
}
// Save the API key only if it doesn't exist or has changed
if (!isset($params['cronfig']['api_key']) || !isset($params['cronfig']['secret_key']) || isset($params['cronfig']['api_key']) && $params['cronfig']['api_key'] == $apiKey || isset($params['cronfig']['secret_key']) && $params['cronfig']['secret_key'] == $apiKey) {
$configurator->mergeParameters(array('cronfig' => $cronfigConfig));
$configurator->write();
$dataArray['success'] = 1;
// We must clear the application cache for the updated values to take effect
/** @var \Mautic\CoreBundle\Helper\CacheHelper $cacheHelper */
$cacheHelper = $this->factory->getHelper('cache');
$cacheHelper->clearContainerFile();
}
} catch (\RuntimeException $exception) {
$this->addFlash('mautic.config.config.error.not.updated', ['%exception%' => $exception->getMessage()], 'error');
}
} else {
$form->addError(new FormError($this->factory->getTranslator()->trans('mautic.config.notwritable')));
}
return $this->sendJsonResponse($dataArray);
}
示例8: sendHookTestAction
protected function sendHookTestAction(Request $request)
{
$url = InputHelper::url($request->request->get('url'));
// validate the URL
if ($url == '' || !$url) {
// default to an error message
$dataArray = array('success' => 1, 'html' => '<div class="has-error"><span class="help-block">' . $this->factory->getTranslator()->trans('mautic.webhook.label.no.url') . '</span></div>');
return $this->sendJsonResponse($dataArray);
}
// get the selected types
$selectedTypes = InputHelper::cleanArray($request->request->get('types'));
$payloadPaths = $this->getPayloadPaths($selectedTypes);
$payloads = $this->loadPayloads($payloadPaths);
$now = new \DateTime();
$payloads['timestamp'] = $now->format('c');
// Set up custom headers
$headers = ['Content-Type' => 'application/json'];
// instantiate new http class
$http = new Http();
// set the response
$response = $http->post($url, json_encode($payloads), $headers);
// default to an error message
$dataArray = array('success' => 1, 'html' => '<div class="has-error"><span class="help-block">' . $this->factory->getTranslator()->trans('mautic.webhook.label.warning') . '</span></div>');
// if we get a 200 response convert to success message
if ($response->code == 200) {
$dataArray['html'] = '<div class="has-success"><span class="help-block">' . $this->factory->getTranslator()->trans('mautic.webhook.label.success') . '</span></div>';
}
return $this->sendJsonResponse($dataArray);
}
示例9: setIntegrationFilterAction
/**
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function setIntegrationFilterAction(Request $request)
{
$session = $this->factory->getSession();
$pluginFilter = InputHelper::int($this->request->get('plugin'));
$session->set('mautic.integrations.filter', $pluginFilter);
return $this->sendJsonResponse(array('success' => 1));
}
示例10: getAbTestFormAction
/**
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function getAbTestFormAction(Request $request)
{
$dataArray = array('success' => 0, 'html' => '');
$type = InputHelper::clean($request->request->get('abKey'));
$emailId = InputHelper::int($request->request->get('emailId'));
if (!empty($type)) {
//get the HTML for the form
/** @var \Mautic\EmailBundle\Model\EmailModel $model */
$model = $this->factory->getModel('email');
$email = $model->getEntity($emailId);
$abTestComponents = $model->getBuilderComponents($email, 'abTestWinnerCriteria');
$abTestSettings = $abTestComponents['criteria'];
if (isset($abTestSettings[$type])) {
$html = '';
$formType = !empty($abTestSettings[$type]['formType']) ? $abTestSettings[$type]['formType'] : '';
if (!empty($formType)) {
$formOptions = !empty($abTestSettings[$type]['formTypeOptions']) ? $abTestSettings[$type]['formTypeOptions'] : array();
$form = $this->get('form.factory')->create('email_abtest_settings', array(), array('formType' => $formType, 'formTypeOptions' => $formOptions));
$html = $this->renderView('MauticEmailBundle:AbTest:form.html.php', array('form' => $this->setFormTheme($form, 'MauticEmailBundle:AbTest:form.html.php', 'MauticEmailBundle:FormTheme\\Email')));
}
$html = str_replace(array('email_abtest_settings[', 'email_abtest_settings_', 'email_abtest_settings'), array('emailform[variantSettings][', 'emailform_variantSettings_', 'emailform'), $html);
$dataArray['html'] = $html;
$dataArray['success'] = 1;
}
}
return $this->sendJsonResponse($dataArray);
}
示例11: indexAction
/**
* @return JsonResponse|\Symfony\Component\HttpFoundation\Response
*/
public function indexAction()
{
//set some permissions
$permissions = $this->factory->getSecurity()->isGranted(['core:themes:view', 'core:themes:create', 'core:themes:edit', 'core:themes:delete'], "RETURN_ARRAY");
if (!$permissions['core:themes:view']) {
return $this->accessDenied();
}
$themeHelper = $this->container->get('mautic.helper.theme');
$dir = $this->factory->getSystemPath('themes', true);
$action = $this->generateUrl('mautic_themes_index');
$form = $this->get('form.factory')->create('theme_upload', [], ['action' => $action]);
if ($this->request->getMethod() == 'POST') {
if (isset($form) && !($cancelled = $this->isFormCancelled($form))) {
if ($this->isFormValid($form)) {
$fileData = $form['file']->getData();
$fileName = InputHelper::filename($fileData->getClientOriginalName());
$themeName = basename($fileName, '.zip');
if (in_array($themeName, $this->defaultThemes)) {
$form->addError(new FormError($this->factory->getTranslator()->trans('mautic.core.theme.default.cannot.overwrite', ['%name%' => $themeName], 'validators')));
} elseif (!empty($fileData)) {
try {
$fileData->move($dir, $fileName);
$themeHelper->install($dir . '/' . $fileName);
$this->addFlash('mautic.core.theme.installed', ['%name%' => $themeName]);
} catch (\Exception $e) {
$form->addError(new FormError($this->factory->getTranslator()->trans($e->getMessage(), [], 'validators')));
}
} else {
$form->addError(new FormError($this->factory->getTranslator()->trans('mautic.dashboard.upload.filenotfound', [], 'validators')));
}
}
}
}
return $this->delegateView(['viewParameters' => ['items' => $themeHelper->getInstalledThemes('all', true, true), 'defaultThemes' => $this->defaultThemes, 'form' => $form->createView(), 'permissions' => $permissions, 'security' => $this->factory->getSecurity()], 'contentTemplate' => 'MauticCoreBundle:Theme:list.html.php', 'passthroughVars' => ['activeLink' => '#mautic_themes_index', 'mauticContent' => 'theme', 'route' => $this->generateUrl('mautic_themes_index')]]);
}
示例12: saveEntity
/**
* {@inheritdoc}
*/
public function saveEntity($entity, $unlock = true)
{
if (empty($this->inConversion)) {
$alias = $entity->getAlias();
if (empty($alias)) {
$alias = strtolower(InputHelper::alphanum($entity->getTitle(), false, '-'));
} else {
$alias = strtolower(InputHelper::alphanum($alias, false, '-'));
}
//make sure alias is not already taken
$repo = $this->getRepository();
$testAlias = $alias;
$count = $repo->checkUniqueAlias($testAlias, $entity);
$aliasTag = $count;
while ($count) {
$testAlias = $alias . $aliasTag;
$count = $repo->checkUniqueAlias($testAlias, $entity);
$aliasTag++;
}
if ($testAlias != $alias) {
$alias = $testAlias;
}
$entity->setAlias($alias);
}
//set the author for new asset
if (!$entity->isNew()) {
//increase the revision
$revision = $entity->getRevision();
$revision++;
$entity->setRevision($revision);
}
parent::saveEntity($entity, $unlock);
}
示例13: getActionFormAction
/**
* @param Request $request
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
protected function getActionFormAction(Request $request)
{
$dataArray = array('success' => 0, 'html' => '');
$type = InputHelper::clean($request->request->get('actionType'));
if (!empty($type)) {
//get the HTML for the form
/** @var \Mautic\StageBundle\Model\StageModel $model */
$model = $this->getModel('stage');
$actions = $model->getStageActions();
if (isset($actions['actions'][$type])) {
$themes = array('MauticStageBundle:FormTheme\\Action');
if (!empty($actions['actions'][$type]['formTheme'])) {
$themes[] = $actions['actions'][$type]['formTheme'];
}
$formType = !empty($actions['actions'][$type]['formType']) ? $actions['actions'][$type]['formType'] : 'genericstage_settings';
$formTypeOptions = !empty($actions['actions'][$type]['formTypeOptions']) ? $actions['actions'][$type]['formTypeOptions'] : array();
$form = $this->get('form.factory')->create('stageaction', array(), array('formType' => $formType, 'formTypeOptions' => $formTypeOptions));
$html = $this->renderView('MauticStageBundle:Stage:actionform.html.php', array('form' => $this->setFormTheme($form, 'MauticStageBundle:Stage:actionform.html.php', $themes)));
$html = str_replace('stageaction', 'stage', $html);
$dataArray['html'] = $html;
$dataArray['success'] = 1;
}
}
return $this->sendJsonResponse($dataArray);
}
示例14: buildForm
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
foreach ($options['integration_fields'] as $field => $details) {
$label = is_array($details) ? $details['label'] : $details;
$field = InputHelper::alphanum($field, false, '_');
$builder->add($field, 'choice', array('choices' => $options['lead_fields'], 'label' => $label, 'required' => is_array($details) && isset($details['required']) ? $details['required'] : false, 'label_attr' => array('class' => 'control-label'), 'attr' => array('class' => 'form-control', 'data-placeholder' => ' ')));
}
}
示例15: getDataAction
/**
* Obtains a list of available widget types.
*
* @param string $type of the widget
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function getDataAction($type)
{
$start = microtime(true);
$timezone = InputHelper::clean($this->request->get('timezone', null));
$from = InputHelper::clean($this->request->get('dateFrom', null));
$to = InputHelper::clean($this->request->get('dateTo', null));
$dataFormat = InputHelper::clean($this->request->get('dataFormat', null));
$response = ['success' => 0];
if ($timezone) {
$fromDate = new \DateTime($from, new \DateTimeZone($timezone));
$toDate = new \DateTime($to, new \DateTimeZone($timezone));
} else {
$fromDate = new \DateTime($from);
$toDate = new \DateTime($to);
}
$params = ['timeUnit' => InputHelper::clean($this->request->get('timeUnit', 'Y')), 'dateFormat' => InputHelper::clean($this->request->get('dateFormat', null)), 'dateFrom' => $fromDate, 'dateTo' => $toDate, 'limit' => InputHelper::int($this->request->get('limit', null)), 'filter' => $this->request->get('filter', [])];
$cacheTimeout = InputHelper::int($this->request->get('cacheTimeout', null));
$widgetHeight = InputHelper::int($this->request->get('height', 300));
$widget = new Widget();
$widget->setParams($params);
$widget->setType($type);
$widget->setHeight($widgetHeight);
if ($cacheTimeout === null) {
$widget->setCacheTimeout($cacheTimeout);
}
$this->model->populateWidgetContent($widget);
$data = $widget->getTemplateData();
if (!$data) {
return $this->notFound();
}
if ($dataFormat == 'raw') {
if (isset($data['chartData']['labels']) && isset($data['chartData']['datasets'])) {
$rawData = [];
foreach ($data['chartData']['datasets'] as $dataset) {
$rawData[$dataset['label']] = [];
foreach ($dataset['data'] as $key => $value) {
$rawData[$dataset['label']][$data['chartData']['labels'][$key]] = $value;
}
}
$data = $rawData;
} elseif (isset($data['raw'])) {
$data = $data['raw'];
}
} else {
if (isset($data['raw'])) {
unset($data['raw']);
}
}
$response['cached'] = $widget->isCached();
$response['execution_time'] = microtime(true) - $start;
$response['success'] = 1;
$response['data'] = $data;
$view = $this->view($response, Codes::HTTP_OK);
return $this->handleView($view);
}