/**
  * Feed importer install procedure
  *
  * @param	vivvo_site 	$site_manager
  * @param 	int			$step
  */
 public function install($site_manager, $step = 1)
 {
     parent::install($site_manager, $step);
     if ($step == 2) {
         $plugin_dir_abs = VIVVO_FS_PLUGIN_ROOT . ($plugin_dir = $this->get_root_dir());
         $sqlRunner = new SQLRunner(array('db' => $site_manager->get_db(), 'filename' => $plugin_dir_abs . 'db/install.sql'));
         try {
             $sqlRunner->load() and $sqlRunner->run();
         } catch (SQLRunnerException $e) {
             $this->set_error_code(14, $e->getMessage());
             // error executing sql script file
             $this->install($site_manager, 1);
             return;
         }
         $conf = $site_manager->get_configuration();
         $conf->add_conf('VIVVO_PLUGIN_NEWSLETTER_SUBSCRIBE_BODY', '', '<vte:template>Dear <vte:value select="{email}" />,' . "\n\n" . 'Thank you for signing up! Click or copy and paste this URL to your browser to activate your account:' . "\n" . '<vte:value  select="{activation_url}" />' . "\n\n" . 'Please note that your activation code is NOT your password.' . "\n" . 'Thank you for using our service' . "\n\n" . 'Best regards,' . "\n" . '<vte:value select="{VIVVO_WEBSITE_TITLE}" />' . "\n" . '<vte:value select="{VIVVO_URL}" />' . "\n" . '</vte:template>', '', '');
         $conf->add_conf('VIVVO_PLUGIN_NEWSLETTER_SUBSCRIBE_SUBJECT', '', 'Subscribe to Newsletter', '', '');
         $conf->add_conf('VIVVO_PLUGIN_NEWSLETTER_UNSUBSCRIBE_TEXT', '', 'Click following link to Unsubscribe:', '', '');
         $conf->add_conf('VIVVO_PLUGIN_NEWSLETTER_PERIOD', '', '60', '', '');
         $conf->add_conf('VIVVO_PLUGIN_NEWSLETTER_NUMBER_OF_MAILS', '', '50', '', '');
         $site_manager->register_action('newsletter', $plugin_dir . 'service/newsletter.action.php');
         $site_manager->register_module('box_newsletter', 'box_newsletter', $plugin_dir . 'box_newsletter.php');
         $site_manager->register_module('box_maillist', 'box_maillist', $plugin_dir . '/box_newsletter.php');
         $site_manager->get_url_manager()->register_url('newsletter', $plugin_dir . 'newsletter_url_handler.php', 'newsletter_url_handler', 'newsletter_content_handler');
         require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/framework/vivvo_cron.php';
         $cm = new vivvo_cron_manager($site_manager);
         $cm->cron_job('11 * * * *', $plugin_dir . 'tasks/mail_queue.php', null, 'mail_queue');
         $site_manager->get_plugin_manager()->register($this->plugin_name, $plugin_dir, $this->plugin_title);
         //Copy files to templates and theme
         @copy($plugin_dir_abs . 'templates/plugin_newsletter.tpl', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'box/plugin_newsletter.tpl');
         @copy($plugin_dir_abs . 'templates/newsletter_confirm.tpl', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'plugin/newsletter_confirm.tpl');
         @copy($plugin_dir_abs . 'templates/newsletter_unsubscribe.tpl', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'plugin/newsletter_unsubscribe.tpl');
         @copy($plugin_dir_abs . 'templates/newsletter_user_unsubscribe.tpl', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'plugin/newsletter_user_unsubscribe.tpl');
         @copy($plugin_dir_abs . 'css/plugin_newsletter.css', VIVVO_FS_ROOT . 'themes/' . VIVVO_DEFAULT_THEME . '/css/plugin_newsletter.css');
         @copy($plugin_dir_abs . 'js/plugin_newsletter.js', VIVVO_FS_ROOT . 'js/plugin_newsletter.js');
         @copy($plugin_dir_abs . 'templates/plugin_newsletter.tpl.original', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'box/plugin_newsletter.tpl.original');
         @copy($plugin_dir_abs . 'templates/newsletter_confirm.tpl.original', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'plugin/newsletter_confirm.tpl.original');
         @copy($plugin_dir_abs . 'templates/newsletter_unsubscribe.tpl.original', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'plugin/newsletter_unsubscribe.tpl.original');
         @copy($plugin_dir_abs . 'templates/newsletter_user_unsubscribe.tpl.original', VIVVO_FS_TEMPLATE_ROOT . VIVVO_TEMPLATE_DIR . 'plugin/newsletter_user_unsubscribe.tpl.original');
         @copy($plugin_dir_abs . 'css/plugin_newsletter.css.original', VIVVO_FS_ROOT . 'themes/' . VIVVO_DEFAULT_THEME . '/css/plugin_newsletter.css.original');
     }
     $output = $site_manager->get_output();
     echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n";
     echo $output;
 }
 function edit_cron_task($in_task)
 {
     if (!$this->check_token()) {
         return false;
     }
     if (!vivvo_hooks_manager::call('vivvoCore_cronTask', array(&$in_task))) {
         return vivvo_hooks_manager::get_status();
     }
     if ($this->_user && $this->_user->is_admin()) {
         if (isset($in_task['name'])) {
             $sm = vivvo_lite_site::get_instance();
             $_config = $sm->get_configuration();
             $cron_tasks = $_config->get_configuration_property_list('cron_task');
             if (array_key_exists($in_task['name'], $cron_tasks)) {
                 require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/framework/vivvo_cron.php';
                 $cm = new vivvo_cron_manager();
                 if (trim($in_task['time_mask']) != '') {
                     //edit
                     $cm->cron_job($in_task['time_mask'], $cron_tasks[$in_task['name']]['file'], $cron_tasks[$in_task['name']]['class'], $cron_tasks[$in_task['name']]['method'], unserialize($cron_tasks[$in_task['name']]['arguments']));
                     admin_log($sm->user->get_username(), 'Edited cron #' . $in_task['name']);
                 } else {
                     //delete
                     $cm->delete_cron_job($cron_tasks[$in_task['name']]['file'], $cron_tasks[$in_task['name']]['class'], $cron_tasks[$in_task['name']]['method'], unserialize($cron_tasks[$in_task['name']]['arguments']));
                     admin_log($sm->user->get_username(), 'Deleted cron #' . $in_task['name']);
                 }
                 return true;
             } else {
                 $this->set_error_code(5104);
                 return false;
             }
         } else {
             $this->set_error_code(5105);
             return false;
         }
     } else {
         $this->set_error_code(5106);
         return false;
     }
 }
 /**
  * Feed importer install procedure
  *
  * @param	vivvo_site 	$site_manager
  * @param 	int			$step
  */
 public function install($site_manager, $step = 1)
 {
     parent::install($site_manager, $step);
     if ($step == 2) {
         $plugin_dir_abs = VIVVO_FS_PLUGIN_ROOT . ($plugin_dir = $this->get_root_dir());
         $sqlRunner = new SQLRunner(array('db' => $site_manager->get_db(), 'filename' => $plugin_dir_abs . 'db/install.sql'));
         try {
             $sqlRunner->load() and $sqlRunner->run();
         } catch (SQLRunnerException $e) {
             $this->set_error_code(14, $e->getMessage());
             // error executing sql script file
             $this->install($site_manager, 1);
             return;
         }
         $conf = $site_manager->get_configuration();
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_AUTHOR', '', '', '');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_AUTO_ARCHIVE', '', 15, '', '\\d*');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_AUTO_DELETE', '', 30, '', '\\d*');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_PERIOD', '', 3, '', '[1-9]\\d*');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_STATUS', '', 1, '', '0|1');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_SHOW_COMMENT', '', 1, '', '0|1');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_UPDATE_ARTICLES', '', 1, '', '0|1');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_USE_LOGO', '', 0, '', '0|1');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_TRASH', '', 0, '', '0|1');
         $conf->add_conf('VIVVO_PLUGIN_FEED_IMPORTER_USER_ID', '', '', '', '[1-9]\\d*');
         $site_manager->register_action('feed', $plugin_dir . 'service/feed.action.php');
         require_once VIVVO_FS_INSTALL_ROOT . 'lib/vivvo/framework/vivvo_cron.php';
         $cm = new vivvo_cron_manager($site_manager);
         $cm->cron_job('19 */3 * * *', $plugin_dir . 'tasks/auto_import_feeds.php', null, 'auto_import_feeds');
         $site_manager->get_plugin_manager()->register($this->plugin_name, $plugin_dir, $this->plugin_title);
     }
     $output = $site_manager->get_output();
     echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n";
     echo $output;
 }