/**
  * static task getter
  * 
  * @param  string $_type
  * @param  array $_requestOptions
  * @param  array $_taskOptions
  * @return Tinebase_Scheduler_Task
  */
 public static function getPreparedTask($_type, array $_requestOptions, array $_taskOptions = array())
 {
     $request = new Zend_Controller_Request_Simple();
     $request->setControllerName($_requestOptions['controller']);
     $request->setActionName($_requestOptions['action']);
     if (isset($_requestOptions['params']) || array_key_exists('params', $_requestOptions)) {
         foreach ($_requestOptions['params'] as $key => $value) {
             $request->setParam($key, $value);
         }
     }
     $task = new Tinebase_Scheduler_Task($_taskOptions);
     $task->setMonths("Jan-Dec");
     $task->setWeekdays("Sun-Sat");
     $task->setDays("1-31");
     $task->setRequest($request);
     switch ($_type) {
         case self::TASK_TYPE_MINUTELY:
             $task->setHours("0-23");
             $task->setMinutes("0/1");
             break;
         case self::TASK_TYPE_HOURLY:
             $task->setHours("0-23");
             $task->setMinutes("0");
             break;
         case self::TASK_TYPE_DAILY:
             $task->setHours("0");
             $task->setMinutes("0");
             break;
     }
     return $task;
 }
 /**
  * Tests if a task can be saved.
  */
 public function testSaveTask()
 {
     $this->testClearQueue();
     $request = new Zend_Controller_Request_Simple();
     $request->setControllerName('Tinebase_Alarm');
     $request->setActionName('sendPendingAlarms');
     $request->setParam('eventName', 'Tinebase_Event_Async_Minutely');
     $task = Zend_Scheduler_Task::getTask()->setMonths("Jan-Dec")->setWeekdays("Sun-Sat")->setDays("1-31")->setHours("0-23")->setMinutes("0/1")->setRequest($request);
     $this->_scheduler->addTask('Tinebase_Alarm_Test', $task);
     $this->_scheduler->saveTask();
     $tasks = $this->_scheduler->getBackend()->loadQueue();
     $this->assertEquals(1, count($tasks));
 }
Пример #3
0
 public function testPopStackPopulatesControllerAndModuleFromRequestIfEmpty()
 {
     $plugin = new Zend_Controller_Plugin_ActionStack();
     $request = $this->getNewRequest();
     $plugin->setRequest($request);
     $request1 = new Zend_Controller_Request_Simple();
     $request1->setActionName('blah');
     $plugin->pushStack($request1);
     $next = $plugin->popStack();
     $this->assertTrue($next instanceof Zend_Controller_Request_Simple);
     $this->assertEquals($request1->getActionName(), $next->getActionName());
     $this->assertEquals($request->getControllerName(), $next->getControllerName());
     $this->assertEquals($request->getModuleName(), $next->getModuleName());
 }
Пример #4
0
    {
    }
    public function route(Zend_Controller_Request_Abstract $dispatcher)
    {
    }
}
try {
    $opts = new Zend_Console_Getopt(array('help|h' => 'Displays usage information.', 'action|a=s' => 'Action to perform in format of module.controller.action', 'verbose|v' => 'Verbose messages will be dumped to the default output.', 'development|d' => 'Enables development mode.'));
    $opts->parse();
} catch (Zend_Console_Getopt_Exception $e) {
    exit($e->getMessage() . "\n\n" . $e->getUsageMessage());
}
if (isset($opts->h)) {
    echo $opts->getUsageMessage();
    exit;
}
if (isset($opts->a)) {
    $reqRoute = array_reverse(explode('::', $opts->a));
    @(list($action, $controller) = $reqRoute);
    $request = new Zend_Controller_Request_Simple();
    $request->setControllerName($controller);
    $request->setActionName($action);
    $request->setModuleName('default');
    $front = Zend_Controller_Front::getInstance();
    $front->setRequest($request);
    $front->setRouter(new RouterCli());
    $front->setResponse(new Zend_Controller_Response_Cli());
    $front->throwExceptions(true);
    $front->addModuleDirectory(APPLICATION_PATH . '/modules/');
    $front->dispatch();
}
Пример #5
0
 /**
  * update to 3.8
  * - schedulers
  */
 public function update_7()
 {
     $declaration = new Setup_Backend_Schema_Table_Xml('
      <table>
         <name>scheduler</name>
         <version>1</version>
         <declaration>
             <field>
                 <name>id</name>
                 <type>integer</type>
                 <length>11</length>
                 <autoincrement>true</autoincrement>
                 <notnull>true</notnull>
             </field>
             <field>
                 <name>name</name>
                 <type>text</type>
                 <length>255</length>
                 <notnull>true</notnull>
             </field>
             <field>
                 <name>data</name>
                 <type>text</type>
                 <notnull>true</notnull>
             </field>
             <index>
                 <name>id</name>
                 <primary>true</primary>
                 <field>
                     <name>id</name>
                 </field>
             </index>
         </declaration>
     </table>');
     try {
         $this->_backend->createTable($declaration);
         Tinebase_Application::getInstance()->addApplicationTable(Tinebase_Application::getInstance()->getApplicationByName('Tinebase'), 'scheduler', 1);
     } catch (Zend_Db_Statement_Exception $zdse) {
         // do nothing
     }
     $request = new Zend_Controller_Request_Simple();
     $request->setControllerName('Tinebase_Alarm');
     $request->setActionName('sendPendingAlarms');
     $request->setParam('eventName', 'Tinebase_Event_Async_Minutely');
     $task = new Tinebase_Scheduler_Task();
     $task->setMonths("Jan-Dec");
     $task->setWeekdays("Sun-Sat");
     $task->setDays("1-31");
     $task->setHours("0-23");
     $task->setMinutes("0/1");
     $task->setRequest($request);
     $scheduler = Tinebase_Core::getScheduler();
     $scheduler->addTask('Tinebase_Alarm', $task);
     $scheduler->saveTask();
     $this->setApplicationVersion('Tinebase', '3.8');
 }