コード例 #1
0
ファイル: DefaultCommands.php プロジェクト: frcho/crontask
 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();
     }
 }
コード例 #2
0
ファイル: CronTaskType.php プロジェクト: frcho/crontask
 /**
  * @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));
 }
コード例 #3
0
ファイル: CronTaskController.php プロジェクト: frcho/crontask
 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);
     }
 }