function setArrayCommands(array $params) { foreach ($params as $param) { $prev = $this->em->getRepository('FrchoCrontaskBundle:CronTask')->findOneBy(array('name' => $param['name'], 'commands' => $param['commands'])); $range = $this->range($param); $interval = Util::convertDaysHoursMinutes($param['interval'], $range); if (!empty($prev) && $prev->getIsHide() == true && $prev->getInterval() != $param['interval'] || !empty($prev) && $prev->getRange() != $param['range']) { $range = $this->range($param); $interval = Util::convertDaysHoursMinutes($param['interval'], $range); $prev->setRange($range); $prev->setInterval($interval); $this->em->persist($prev); } if (!$prev) { $range = $this->range($param); $interval = Util::convertDaysHoursMinutes($param['interval'], $range); $cronTask = new Entity\CronTask(); $cronTask->setName($param['name']); $cronTask->setRange($range); $cronTask->setInterval($interval); $cronTask->setCommands($param['commands']); $cronTask->setStatusTask($param['enabled']); if (isset($param['isHide'])) { $cronTask->setIsHide($param['isHide']); } $this->em->persist($cronTask); } $this->em->flush(); } }
/** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) { $data = $event->getData(); $form = $event->getForm(); if ($data instanceof Entity\CronTask) { $resultInterval = Util::convertDaysHoursMinutes($data->getInterval(), $data->getRange(), true); $form->add('interval', TextType::class, array('data' => $resultInterval)); } }); $builder->add('name', TextType::class)->add('range', TextType::class)->add('statusTask', CheckboxType::class, array('label' => " ", 'required' => false)); }
public function cronTaskUpdateAction(Request $request) { $em = $this->getDoctrine()->getManager(); if ($request->isMethod('POST')) { $parameters = $request->request->getIterator()->getArrayCopy(); $i = 0; foreach ($parameters as $form) { $prev = $em->getRepository(self::FrchoCrontaskBundleCronTask)->findAll(); $interval = Util::convertDaysHoursMinutes($form['interval'], $form['range']); if (isset($form['statusTask'])) { $statusTask = boolval((int) $form['statusTask']); } else { $statusTask = boolval((int) Entity\CronTask::DISABLED); } $prev[$i]->setInterval($interval); $prev[$i]->setStatusTask($statusTask); $em->persist($prev[$i]); $em->flush(); $i++; } $referer = $request->headers->get('referer'); return $this->redirect($referer); } }