function edit_preferences($variable_name, $variable_value) { if (!$this->check_token()) { return false; } if (!vivvo_hooks_manager::call('vivvoCore_preferences', array(&$variable_name, &$variable_value))) { return vivvo_hooks_manager::get_status(); } $sm = vivvo_lite_site::get_instance(); if ($this->_user && $this->_user->is_admin()) { require_once VIVVO_FS_FRAMEWORK . 'vivvo_preference.php'; $preferences_list = new preferences_list(); $preferences = $preferences_list->get_preference_by_variable_name($variable_name); if ($preferences != false) { $variable_value = htmlspecialchars($variable_value, ENT_QUOTES, 'UTF-8'); if ($variable_name == 'VIVVO_GENERAL_TIME_ZONE_FORMAT') { $timezone_abbreviations = DateTimeZone::listIdentifiers(); if (in_array($variable_value, $timezone_abbreviations)) { $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); } else { $this->set_error_code(5122); return false; } } elseif ($variable_name == 'VIVVO_ALLOWED_IP_ADDRESSES') { // normalize passed string (convert to comma-separated IPs) $variable_value = str_replace(array("\r\n", "\n"), ',', $variable_value); $variable_value = preg_replace('/\\s+/', '', $variable_value); $variable_value = trim(preg_replace('/,+/', ',', $variable_value), ','); if (!empty($variable_value)) { $addresses = explode(',', $variable_value); // check valid IP format (with wildcards) foreach ($addresses as $addr) { $parts = explode('.', $addr); if (count($parts) == 4) { foreach ($parts as $part) { if ($part == '*' or is_numeric($part) and ($part = (int) $part) > -1 and $part < 256) { continue; } $this->set_error_code(5120); return false; } } else { $this->set_error_code(5120); return false; } } // prevent user blocking itself $listed = false; foreach ($addresses as $addr) { if (fnmatch($addr, $this->_user->ip)) { $listed = true; break; } } if ($listed == false) { $this->set_error_code(5119); return false; } unset($addresses, $addr, $parts, $part); } $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); } elseif ($variable_name == 'VIVVO_EMAIL_SMTP_PHP' && $variable_value == 0) { $um = $sm->get_url_manager(); $lang = vivvo_lang::get_instance(); $missing = array(); $host = $um->get_param('VIVVO_EMAIL_SMTP_HOST'); $username = $um->get_param('VIVVO_EMAIL_SMTP_USERNAME'); $password = $um->get_param('VIVVO_EMAIL_SMTP_PASSWORD'); empty($host) and $missing[] = $lang->get_value('LNG_CONF_VIVVO_EMAIL_SMTP_HOST'); empty($username) and $missing[] = $lang->get_value('LNG_CONF_VIVVO_EMAIL_SMTP_USERNAME'); empty($password) and $missing[] = $lang->get_value('LNG_CONF_VIVVO_EMAIL_SMTP_PASSWORD'); if (!empty($missing)) { $this->set_error_code(5121, implode(', ', $missing)); $template = $sm->get_template(); $template->assign('VIVVO_EMAIL_SMTP_HOST', $host); $template->assign('VIVVO_EMAIL_SMTP_USERNAME', $username); $template->assign('VIVVO_EMAIL_SMTP_PASSWORD', $password); return false; } $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); } elseif ($variable_name == 'VIVVO_GA_ENABLED' and $variable_value) { $um = $sm->get_url_manager(); $lang = vivvo_lang::get_instance(); $missing = array(); $email = $um->get_param('VIVVO_GA_EMAIL'); $password = $um->get_param('VIVVO_GA_PASSWORD'); $code = $um->get_param('VIVVO_GA_CODE'); empty($email) and $missing[] = $lang->get_value('LNG_CONF_VIVVO_GA_EMAIL'); empty($password) and $missing[] = $lang->get_value('LNG_CONF_VIVVO_GA_PASSWORD'); empty($code) and $missing[] = $lang->get_value('LNG_CONF_VIVVO_GA_CODE'); if (!empty($missing)) { $this->set_error_code(5123, implode(', ', $missing)); // missing google analytics parameter(s) $template = $sm->get_template(); $template->assign('VIVVO_GA_EMAIL', $email); $template->assign('VIVVO_GA_PASSWORD', $password); $template->assign('VIVVO_GA_CODE', $code); return false; } $params = array('username' => $email, 'password' => $password, 'no_auth' => true); if (vivvo_ga::get_instance($params)->authorize($email, $password, true) == false) { $this->set_error_code(5124); // google analytics authentication failed. $template = $sm->get_template(); $template->assign('VIVVO_GA_EMAIL', $email); $template->assign('VIVVO_GA_PASSWORD', $password); $template->assign('VIVVO_GA_CODE', $code); return false; } $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); } elseif ($preferences->check_value($variable_value)) { $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); } else { $preferences->set_error_code(); return false; } if ($this->_post_master->sql_update()) { admin_log($sm->user->get_username(), 'Edited vivvo preferences.'); return true; } else { $this->set_error_code(5101); return false; } } else { $this->set_error_code(5102, $variable_name); return false; } } else { $this->set_error_code(5103); return false; } }
/** * Edit plugin preferences. * * @param string $variable_name * @param int $variable_value * @return bool true on succes or false on failure */ public function preferences_feed($variable_name, $variable_value) { if (!$this->check_token()) { return false; } $sm = vivvo_lite_site::get_instance(); if ($sm->user and $sm->user->can('MANAGE_PLUGIN', 'feed_importer')) { if (!vivvo_hooks_manager::call('feed_preferences', array(&$variable_name, &$variable_value))) { return vivvo_hooks_manager::get_status(); } require_once VIVVO_FS_FRAMEWORK . 'vivvo_preference.php'; $preferences_list = new preferences_list(); $preferences = $preferences_list->get_preference_by_variable_name($variable_name); if ($preferences != false) { if ($variable_name == 'VIVVO_PLUGIN_FEED_IMPORTER_USER_ID' and $variable_value < 0) { $variable_value = 1; } elseif ($variable_name == 'VIVVO_PLUGIN_FEED_IMPORTER_STATUS' and $variable_value != 1) { $variable_value = 0; } elseif ($variable_name == 'VIVVO_PLUGIN_FEED_IMPORTER_AUTO_ARCHIVE' and $variable_value <= 0) { $variable_value = 0; } elseif ($variable_name == 'VIVVO_PLUGIN_FEED_IMPORTER_AUTO_DELETE' and $variable_value <= 0) { $variable_value = 0; } elseif ($variable_name == 'VIVVO_PLUGIN_FEED_IMPORTER_PERIOD' and ($variable_value = (int) $variable_value) <= 0) { $variable_value = 1; } $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); if ($this->_post_master->sql_update()) { if ($variable_name == 'VIVVO_PLUGIN_FEED_IMPORTER_PERIOD') { $pm = $sm->get_plugin_manager(); $cm = $sm->get_cron_manager(); if ($variable_value == 1) { $variable_value = '*'; } else { $variable_value = '*/' . $variable_value; } $cm->cron_job("19 {$variable_value} * * *", $pm->plugins['feed_importer']['root_dir'] . 'tasks/auto_import_feeds.php', null, 'auto_import_feeds'); } return true; } else { $this->set_error_code(10101); // can't update plugin preferences return false; } } else { $this->set_error_code(10102); // preference does not exists return false; } } else { $this->set_error_code(10103); // you don't have sufficient privileges for this action return false; } }
/** * Preferences * Edit preferences for newsletter * * @param string $variable_name * @param integer $variable_value * @return boolean true on succes, or false on fail */ function preferences_newsletter($variable_name, $variable_value) { if ($this->_user && $this->_user->is_admin()) { require_once VIVVO_FS_FRAMEWORK . 'vivvo_preference.php'; $preferences_list = new preferences_list(); $preferences = $preferences_list->get_preference_by_variable_name($variable_name); if ($preferences != false) { if ($variable_name == 'VIVVO_PLUGIN_NEWSLETTER_NUMBER_OF_MAILS') { $variable_value = (int) $variable_value; if ($variable_value <= 0) { $variable_value = 500; } } elseif ($variable_name == 'VIVVO_PLUGIN_NEWSLETTER_PERIOD') { $variable_value = (int) $variable_value; if ($variable_value <= 0) { $variable_value = 60; } } elseif ($variable_name == 'VIVVO_PLUGIN_NEWSLETTER_UNSUBSCRIBE_TEXT' && $variable_value == '') { $variable_value = 'Click following link to Unsubscribe:'; } elseif ($variable_name == 'VIVVO_PLUGIN_NEWSLETTER_SUBSCRIBE_SUBJECT' && $variable_value == '') { $variable_value = 'Subscribe to Newsletter'; } elseif ($variable_name == 'VIVVO_PLUGIN_NEWSLETTER_SUBSCRIBE_BODY' && $variable_value == '') { $variable_value = '<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>'; } $variable_value = htmlspecialchars($variable_value, ENT_QUOTES, 'UTF-8'); $preferences->set_variable_value($variable_value); $this->_post_master->set_data_object($preferences); if ($this->_post_master->sql_update()) { if ($variable_name == 'VIVVO_PLUGIN_NEWSLETTER_PERIOD') { $sm = vivvo_lite_site::get_instance(); $pm = $sm->get_plugin_manager(); $cm = $sm->get_cron_manager(); $cm->cron_job(array('every_i' => $variable_value), $pm->plugins['newsletter']['root_dir'] . 'tasks/mail_queue.php', '', 'mail_queue'); } return true; } else { $this->set_error_code(10228); return false; } } else { $this->set_error_code(10229); return false; } } else { $this->set_error_code(10230); return false; } }
function unregister_url($url) { $sm =& vivvo_lite_site::get_instance(); if ($sm->is_registered_url($url)) { require_once VIVVO_FS_FRAMEWORK . 'vivvo_post.php'; require_once VIVVO_FS_FRAMEWORK . 'vivvo_preference.php'; $pm = new vivvo_post_master(); $config_list = new preferences_list(); if ($config_list->get_preference_by_all_variable($url, '', '', 'url_modules', 1)) { $config_list->sql_delete_list($pm); unset($sm->url_modules[$url]); return true; } } return false; }
/** * Set configuration data * * @param string $name Variable name * @param string $property Variable property name * @param string $value Variable value * @param string $module Module name * @param string $reg_exp Variable value restriction * @param string $doamin_id Doamin restriction * * @return boolean True on success, false on fail */ function set_conf($name, $property = '', $value, $module = '', $reg_exp = '', $domain_id = 1) { require_once VIVVO_FS_FRAMEWORK . 'vivvo_preference.php'; if (!$this->_post_master) { $this->set__post_master(); } $config_list = new preferences_list(); $conf = $config_list->get_preference_by_all_variable($name, '', '', ''); if ($conf) { if ($property != '') { $conf->set_variable_property($property); } $conf->set_variable_value($value); if ($module != '') { $conf->set_module($module); } if ($reg_exp != '') { $conf->set_reg_exp($reg_exp); } $conf->set_domain_id($domain_id); $this->_post_master->set_data_object($conf); $this->_post_master->sql_update(); vivvo_cache::get_instance()->delete('configuration'); } else { $this->add_conf($name, $property, $value, $module, $reg_exp, $domain_id); } }