private function RemovePendingOperationForResp($resp) { // This situation occurs when registry module implements server poll // We have response from server and don't know about operation. // So try to find it and remove $opinfo = self::$RespOperationMap[get_class($resp)]; if (!$opinfo) { return; } list($object_type, $op_type) = $opinfo; // Try to find operation in database if ($object_type == self::OBJ_DOMAIN) { $parsed_host = FQDN::Parse($resp->HostName); $object_id = $this->DBDomain->FindByName($parsed_host[0], $parsed_host[1]); if (!$object_id) { return; } } else { if ($object_type == self::OBJ_CONTACT) { $object_id = $this->DBContact->FindByCLID($resp->CLID); if (!$object_id) { return; } } else { return; } } $this->DB->Execute('DELETE FROM pending_operations WHERE objectid = ? AND operation = ? AND objecttype = ?', array($object_id, $op_type, $object_type)); }
/** * private function */ public static function menu() { $ret = DB::Execute('SELECT path,module,function,arguments FROM utils_custommenu_page INNER JOIN utils_custommenu_entry ON page_id=id'); $menu = array(); while ($row = $ret->FetchRow()) { $path = explode('/', $row['path']); //print_r($path); $curr =& $menu; for ($i = 0, $max = count($path) - 1; $i < $max; $i++) { if (!isset($curr[$path[$i]])) { $curr[$path[$i]] = array('__submenu__' => 1); } //if(is_array($curr[$path[$i]])) { $curr =& $curr[$path[$i]]; //} else { //pass //} } $args = unserialize($row['arguments']); if (!is_array($args)) { $args = array($args); } $curr[$path[count($path) - 1]] = array('__module__' => $row['module'], '__function__' => $row['function'], '__function_arguments__' => $args); } //print_r($menu); return $menu; }
function is_user_in_group($uid, $group) { // $groups_arr = Acl::$gacl->get_object_groups($uid); $object_id = $uid; $object_type = 'aro'; $group_table = 'aro_groups'; $map_table = 'groups_aro_map'; $query = 'SELECT gm.group_id FROM ' . $map_table . ' gm '; $query .= 'WHERE gm.' . $object_type . '_id=' . $object_id; $rs = DB::Execute($query); $groups_arr = array(); while ($row = $rs->FetchRow()) { $groups_arr[] = $row[0]; } // END if (!$groups_arr) { return false; } $groups = array(); foreach ($groups_arr as $id) { //$arr = Acl::$gacl->get_group_data($id); $group_id = $id; $group_type = 'aro'; $table = 'aro_groups'; $query = 'SELECT id, parent_id, value, name, lft, rgt FROM ' . $table . ' WHERE id=' . $group_id; $arr = DB::GetRow($query); // END if ($arr[3] == $group) { return true; } } return false; }
public function install() { // Setting default AB icons and launchpad Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '465e51c2b6eba36161f0115442e7406c_d', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '465e51c2b6eba36161f0115442e7406c_l', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '4fe4700ae455ac705d9d5efa1292298b_d', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '4fe4700ae455ac705d9d5efa1292298b_l', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '5ee46bef4c047bd8816ac3810270cc73_d', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '5ee46bef4c047bd8816ac3810270cc73_l', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '7b3558122283d2a14051c96a7da1fb1b_d', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), '7b3558122283d2a14051c96a7da1fb1b_l', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), 'b34db58caa3e6a8b933deca655640047_d', '1'); Base_User_SettingsCommon::save_admin(Base_Menu_QuickAccessInstall::module_name(), 'b34db58caa3e6a8b933deca655640047_l', '1'); // default applets DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(1, 'Applets_Clock', 2, 0, 1, 1)); DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(2, 'CRM_Tasks', 1, 0, 6, 1)); DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(3, 'CRM_PhoneCall', 1, 1, 8, 1)); DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(4, 'Applets_Note', 2, 0, 10, 1)); DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(5, 'CRM_Calendar', 1, 2, 0, 1)); DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(6, 'Apps_Shoutbox', 0, 1, 0, 1)); DB::Execute('INSERT INTO base_dashboard_default_applets (id, module_name, col, pos, color, tab) VALUES (%d, %s, %d, %d, %d, %d)', array(7, 'Utils_Watchdog', 0, 0, 6, 1)); //default note DB::Execute('INSERT INTO base_dashboard_default_settings (applet_id,name,value) VALUES (%d, %s, %s)', array(4, 'bcolor', 'nice-yellow')); DB::Execute('INSERT INTO base_dashboard_default_settings (applet_id,name,value) VALUES (%d, %s, %s)', array(4, 'text', '<div><strong>' . __('Congratulations!') . '</strong><br />' . __('You\'ve just installed EPESI!') . '</div><div>' . __('For more information, help and support please visit %sEPESI website %s', array('<a href="http://epe.si" target="_blank">', '</a></div>')))); DB::Execute('INSERT INTO base_dashboard_default_settings (applet_id,name,value) VALUES (%d, %s, %s)', array(4, 'title', __('Welcome'))); // default favorites and subscriptions Base_User_SettingsCommon::save_admin('Utils_RecordBrowser', 'company_auto_fav', '1'); Base_User_SettingsCommon::save_admin('Utils_RecordBrowser', 'company_auto_subs', '1'); Base_User_SettingsCommon::save_admin('Utils_RecordBrowser', 'contact_auto_fav', '1'); Base_User_SettingsCommon::save_admin('Utils_RecordBrowser', 'contact_auto_subs', '1'); Base_User_SettingsCommon::save_admin('Utils_RecordBrowser', 'phonecall_auto_subs', '1'); Base_User_SettingsCommon::save_admin('Utils_RecordBrowser', 'task_auto_subs', '1'); return true; }
public function install() { Base_ThemeCommon::install_default_theme($this->get_type()); DB::CreateTable('utils_currency', 'id I AUTO KEY,' . 'symbol C(16),' . 'code C(8),' . 'decimal_sign C(2),' . 'thousand_sign C(2),' . 'decimals I1,' . 'active I1,' . 'default_currency I1,' . 'pos_before I1', array('constraints' => '')); DB::Execute('INSERT INTO utils_currency (symbol, code, decimal_sign, thousand_sign, decimals, pos_before, active, default_currency) VALUES (%s, %s, %s, %s, %d, %d, %d, %d)', array('$', 'USD', '.', ',', 2, 1, 1, 1)); return true; }
private function auth($user, $pass) { $error = ''; $t = Variable::get('host_ban_time'); if ($t > 0) { $fails = DB::GetOne('SELECT count(*) FROM user_login_ban WHERE failed_on>%d AND from_addr=%s', array(time() - $t, $_SERVER['REMOTE_ADDR'])); if ($fails >= 3) { $error = 'Host banned.'; } } if ($error === '') { $ret = Base_User_LoginCommon::check_login($user, $pass); if (!$ret) { $error = 'Login failed.'; if ($t > 0) { DB::Execute('DELETE FROM user_login_ban WHERE failed_on<=%d', array(time() - $t)); DB::Execute('INSERT INTO user_login_ban(failed_on,from_addr) VALUES(%d,%s)', array(time(), $_SERVER['REMOTE_ADDR'])); $fails = DB::GetOne('SELECT count(*) FROM user_login_ban WHERE failed_on>%d AND from_addr=%s', array(time() - $t, $_SERVER['REMOTE_ADDR'])); if ($fails >= 3) { $error .= ' Host banned.'; } } } else { $uid = Base_UserCommon::get_user_id($user); Acl::set_user($uid, true); } } return $error; }
/** * Deletes comments by comment group id. * * @param string comment group id */ public static function delete_posts_by_topic($topic) { if (!$topic) { trigger_error('Invalid action: delete post(' . $topic . ').'); } $ret = DB::Execute('SELECT id FROM comment WHERE topic=%s', $topic); while ($row = $ret->FetchRow()) { self::delete_post($row['id']); } }
public function install() { DB::CreateTable('base_acl_permission', 'id I4 AUTO KEY,' . 'name C(255)', array('constraints' => '')); DB::CreateTable('base_acl_rules', 'id I4 AUTO KEY,' . 'permission_id I', array('constraints' => ', FOREIGN KEY (permission_id) REFERENCES base_acl_permission(id)')); DB::CreateTable('base_acl_rules_clearance', 'id I4 AUTO KEY,' . 'rule_id I,' . 'clearance C(64)', array('constraints' => ', FOREIGN KEY (rule_id) REFERENCES base_acl_rules(id)')); DB::CreateTable('base_acl_clearance', 'id I4 AUTO KEY,' . 'callback C(128)', array('constraints' => '')); DB::Execute('INSERT INTO base_acl_clearance (callback) VALUES (%s)', array('Base_AclCommon::basic_clearance')); Base_ThemeCommon::install_default_theme($this->get_type()); return true; }
public static function del_photo($contact_id) { $filename = self::get_photo($contact_id); if (!$filename) { return; } $in = self::Instance(); unlink($in->get_data_dir() . $filename); DB::Execute('DELETE FROM ' . self::table_name . ' WHERE contact_id=%d', array($contact_id)); }
public static function refresh_available_modules() { $module_dirs = ModuleManager::list_modules(); DB::Execute('TRUNCATE TABLE available_modules'); foreach ($module_dirs as $name => $v) { foreach ($v as $ver => $u) { DB::Execute('INSERT INTO available_modules VALUES(%s, %d, %s)', array($name, $ver, $u)); } } return $module_dirs; }
public static function delete($name, $throw_error = true) { self::load(); if (!array_key_exists($name, self::$variables)) { if ($throw_error) { throw new NoSuchVariableException('No such variable in database: ' . $name); } } else { unset(self::$variables[$name]); return DB::Execute("DELETE FROM variables WHERE name=%s", $name); } }
public function install() { DB::CreateTable('utils_bbcode', 'code C(64) KEY,' . 'func C(128)', array('constraints' => '')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('b', 'Utils_BBCodeCommon::tag_b')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('i', 'Utils_BBCodeCommon::tag_i')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('u', 'Utils_BBCodeCommon::tag_u')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('s', 'Utils_BBCodeCommon::tag_s')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('url', 'Utils_BBCodeCommon::tag_url')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('color', 'Utils_BBCodeCommon::tag_color')); DB::Execute('INSERT INTO utils_bbcode VALUES (%s, %s)', array('img', 'Utils_BBCodeCommon::tag_img')); return true; }
public function edit_currency($id) { if ($this->is_back()) { return false; } $form = $this->init_module('Libs_QuickForm'); $form->addElement('header', 'header', __('Edit currency')); $form->addElement('text', 'code', __('Code')); $form->addElement('text', 'symbol', __('Symbol')); $form->addElement('select', 'pos_before', __('Symbol position'), self::$positions); $form->addElement('text', 'decimal_sign', __('Decimal sign')); $form->addElement('text', 'thousand_sign', __('Thousand sign')); $form->addElement('text', 'decimals', __('Decimals')); $form->addElement('select', 'default_currency', __('Default'), self::$active); $form->addElement('select', 'active', __('Active'), self::$active); $form->addRule('code', __('Code must be up to 16 characters long'), 'maxlength', 16); $form->addRule('symbol', __('Symbol must be up to 8 characters long'), 'maxlength', 8); $form->addRule('decimal_sign', __('Decimal sign must be up to 2 characters long'), 'maxlength', 2); $form->addRule('thousand_sign', __('Thousand sign must be up to 2 characters long'), 'maxlength', 2); $form->addRule('decimals', __('Field must hold numeric value'), 'numeric'); $form->addRule('code', __('Field required'), 'required'); $form->addRule('symbol', __('Field required'), 'required'); $form->addRule('decimal_sign', __('Field required'), 'required'); $form->addRule('decimals', __('Field required'), 'required'); if ($id !== null) { $defs = DB::GetRow('SELECT * FROM utils_currency WHERE id=%d', array($id)); $form->setDefaults($defs); if ($defs['default_currency']) { $form->freeze(array('default_currency')); } } if ($form->validate()) { $vals = $form->exportValues(); if (isset($vals['default_currency']) && $vals['default_currency']) { DB::Execute('UPDATE utils_currency SET default_currency=0'); } $vals = array($vals['code'], $vals['symbol'], $vals['pos_before'], $vals['decimal_sign'], $vals['thousand_sign'], $vals['decimals'], $vals['active'], isset($vals['default_currency']) ? $vals['default_currency'] : 1); if ($id !== null) { $vals[] = $id; $sql = 'UPDATE utils_currency SET ' . 'code=%s, ' . 'symbol=%s, ' . 'pos_before=%d, ' . 'decimal_sign=%s, ' . 'thousand_sign=%s, ' . 'decimals=%d, ' . 'active=%d,' . 'default_currency=%d' . ' WHERE id=%d'; } else { $sql = 'INSERT INTO utils_currency (' . 'code, ' . 'symbol, ' . 'pos_before, ' . 'decimal_sign, ' . 'thousand_sign, ' . 'decimals, ' . 'active, ' . 'default_currency' . ') VALUES (' . '%s, ' . '%s, ' . '%d, ' . '%s, ' . '%s, ' . '%d, ' . '%d, ' . '%d' . ')'; } DB::Execute($sql, $vals); return false; } $form->display(); Base_ActionBarCommon::add('back', __('Back'), $this->create_back_href()); Base_ActionBarCommon::add('save', __('Save'), $form->get_submit_form_href()); return true; }
public function install() { $fields = array('name' => _M('County'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries', 'Country', 'Zone'), 'extra' => false, 'QFfield_callback' => array('CRM_Contacts_CountyCommon', 'QFfield_county'), 'position' => 'Zone'); Utils_RecordBrowserCommon::new_record_field('company', $fields); $fields = array('name' => _M('County'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries', 'Country', 'Zone'), 'extra' => false, 'QFfield_callback' => array('CRM_Contacts_CountyCommon', 'QFfield_county'), 'position' => 'Zone'); Utils_RecordBrowserCommon::new_record_field('contact', $fields); $fields = array('name' => _M('Home County'), 'type' => 'commondata', 'required' => false, 'param' => array('Countries', 'Home Country', 'Home Zone'), 'extra' => false, 'QFfield_callback' => array('CRM_Contacts_CountyCommon', 'QFfield_county'), 'position' => 'Home Zone'); Utils_RecordBrowserCommon::new_record_field('contact', $fields); $hc_pos = DB::GetOne('SELECT position FROM contact_field WHERE field=\'Home City\''); $bd_pos = DB::GetOne('SELECT position FROM contact_field WHERE field=\'Birth Date\''); if ($hc_pos + 1 < $bd_pos) { DB::Execute('UPDATE contact_field SET position = position+1 WHERE position>%d AND position<%d', array($hc_pos, $bd_pos)); DB::Execute('UPDATE contact_field SET position = %d WHERE field=\'Birth Date\'', array($hc_pos)); } return true; }
public function get_module_dirs() { //show uninstalled & installed modules $ret = DB::Execute('SELECT * FROM available_modules'); $module_dirs = array(); while ($row = $ret->FetchRow()) { if (ModuleManager::exists($row['name'])) { $module_dirs[$row['name']][$row['vkey']] = $row['version']; ModuleManager::include_install($row['name']); } else { DB::Execute('DELETE FROM available_modules WHERE name=%s and vkey=%d', array($row['name'], $row['vkey'])); } } if (empty($module_dirs)) { $module_dirs = Base_SetupCommon::refresh_available_modules(); } return $module_dirs; }
public static function set_home_page($homepage) { $args = func_get_args(); array_shift($args); DB::StartTrans(); foreach ($args as $home_page) { $prio = DB::GetOne('SELECT MAX(priority) FROM base_home_page') + 1; DB::Execute('INSERT INTO base_home_page (home_page, priority) VALUES (%s, %d)', array($homepage, $prio)); $home_page_id = DB::Insert_ID('base_home_page', 'id'); if (!is_array($home_page)) { $home_page = array($home_page); } foreach ($home_page as $clearance) { DB::Execute('INSERT INTO base_home_page_clearance (home_page_id, clearance) VALUES (%d, %s)', array($home_page_id, $clearance)); } } DB::CompleteTrans(); }
public function install() { $ret = true; DB::Execute('DROP TABLE IF EXISTS base_notify'); DB::CreateTable('base_notify', ' token C(32) NOTNULL PRIMARY KEY, cache X, last_refresh I8, single_cache_uid I, telegram I1 DEFAULT 0', array('constraints' => ', FOREIGN KEY (single_cache_uid) REFERENCES user_login(id)')); if (!$ret) { print 'Unable to create table base_notify.<br>'; return false; } Base_ThemeCommon::install_default_theme($this->get_type()); Utils_CommonDataCommon::new_id('Base_Notify/Timeout', true); Utils_CommonDataCommon::new_array('Base_Notify/Timeout', array(-1 => _M('Disable Notification'), 0 => _M('Manually')), true, true); Utils_CommonDataCommon::new_array('Base_Notify/Timeout', array(10000 => _M('10 seconds'), 30000 => _M('30 seconds'), 60000 => _M('1 minute'))); return $ret; }
public function admin() { if ($this->is_back()) { $this->parent->reset(); } Base_ActionBarCommon::add('back', __('Back'), $this->create_back_href()); $theme = $this->init_module(Base_Theme::module_name()); $new_token_href = $this->create_confirm_callback_href(__('Are you sure?'), array($this, 'new_token')); $theme->assign('new_token_href', $new_token_href); $theme->assign('wiki_url', 'http://www.epesi.org/Cron'); $theme->assign('cron_url', Base_CronCommon::get_cron_url()); $m = $this->init_module(Utils_GenericBrowser::module_name(), null, 'cron'); $m->set_table_columns(array(array('name' => 'Description', 'width' => 65), array('name' => 'Last Run', 'width' => 20), array('name' => 'Running', 'width' => 15))); $ret = DB::Execute('SELECT description,last,running FROM cron ORDER BY last DESC'); while ($row = $ret->FetchRow()) { $m->add_row($row['description'] ? $row['description'] : '???', $row['last'] ? Base_RegionalSettingsCommon::time2reg($row['last']) : '---', $row['running'] ? '<span style="color:red">' . __('Yes') . '</span>' : '<span style="color:green">' . __('No') . '</span>'); } $html = $this->get_html_of_module($m); $theme->assign('history', $html); $theme->display(); }
public function add($def_date,$timeless=false) { if($this->is_back()) $this->back_to_calendar(); $qf = $this->init_module('Libs/QuickForm',null,'addf'); $qf->addElement('datepicker','start','Start Date'); $qf->addElement('datepicker','end','End Date'); // $qf->addElement('checkbox','timeless','Timeless'); //always $qf->addElement('text','title','Title'); $qf->addElement('textarea','description','Description'); $qf->addElement('select','color','Color',array('blue'=>'• Blue', 'red'=>'• Red', 'yellow'=>'• Yellow', 'green'=>'• Green', 'gray' => '• Gray', 'cyan' => '• Cyan', 'magenta' => '• Magenta')); $qf->setDefaults(array('start'=>$def_date,'end'=>$def_date)); if($qf->validate()) { $d = $qf->exportValues(); DB::Execute('INSERT INTO tests_calendar_event(start,duration,timeless,title,description,created_on,created_by,color) VALUES(%d,%d,%b,%s,%s,%T,%d,%s)', array(strtotime($d['start']),strtotime($d['end'])-strtotime($d['start'])+86400,true,$d['title'],$d['description'],time(),Acl::get_user(),$d['color'])); $this->back_to_calendar(); } else { $qf->display(); Base_ActionBarCommon::add('back',__('Cancel'),$this->create_back_href()); Base_ActionBarCommon::add('save',__('Save'),$qf->get_submit_form_href()); } }
public function body($file = null, $callback = null) { if (!isset($file)) { if (!isset($this->file)) { trigger_error('You have to specify file to download', E_USER_ERROR); } $file = $this->file; } if (!isset($callback)) { if (!isset($this->callback)) { trigger_error('You have to specify callback to call on download complete', E_USER_ERROR); } $callback = $this->callback; } if (isset($_REQUEST['download_complete_' . $this->get_path()])) { $did = $this->get_module_variable('download_id'); $dd = $this->get_data_dir(); if (!isset($did) || !file_exists($dd . $did . '.tmp')) { print 'Download error.'; } else { DB::Execute('DELETE FROM utils_filedownload_files WHERE id=%d', array($did)); $tf = $dd . $did . '.tmp'; call_user_func($callback, $tf, basename($file)); @unlink($tf); } return; } $path = $this->get_path(); $id = $this->create_unique_key('stat'); print '<div id="' . $id . '"></div>'; eval_js_once('utils_filedownload_refresh = function(id,path){var stat=$(id);if(!stat || stat.innerHTML==\'Processing downloaded file\') return;' . 'new Ajax.Updater(id,\'' . $this->get_module_dir() . 'refresh.php\',{method:\'post\', parameters:{path: path}});' . 'setTimeout("utils_filedownload_refresh(\'"+id+"\',\'"+path+"\')",3000);}'); eval_js_once('utils_filedownload_check_completed = function(id){stat=document.getElementById(id);' . 'if(stat && stat.innerHTML==\'Finished\'){ stat.innerHTML=\'Processing downloaded file\';' . $this->create_href_js(array('download_complete_' . $this->get_path() => 1), __('Download finished'), 'queue') . '}setTimeout(\'utils_filedownload_check_completed("\'+id+\'")\',500);}'); DB::Execute('INSERT INTO utils_filedownload_files(path,size) VALUES (%s,-1)', array($file)); $this->set_module_variable('download_id', DB::Insert_ID('utils_downloadfile_files', 'id')); print '<iframe src="' . $this->get_module_dir() . 'download.php?' . http_build_query(array('client_id' => CID, 'path' => $path)) . '" width=0 height=0 frameborder=0>'; eval_js('utils_filedownload_refresh("' . $id . '","' . $path . '");utils_filedownload_check_completed("' . $id . '")'); }
function GetPageData() { if ($this->itemperpage <= 0) { $this->itemperpage = $this->defpageitems; } $query = ''; $this->currpage = $this->currpage < 0 ? 0 : $this->currpage; $this->itemperpage = $this->itemperpage < 0 ? 1 : $this->itemperpage; if ($this->isNormalQuery) { $query = $this->Query . ' LIMIT ' . ($this->currpage - 1) * $this->itemperpage . ',' . $this->itemperpage; } else { $query = str_replace('<-s->', ($this->currpage - 1) * $this->itemperpage, $this->querycp); $query = str_replace('<-n->', $this->itemperpage, $query); } DB::Execute($query); $this->InitPageNum(); $setting = array(); while ($row = DB::GetArray()) { $setting[] = $row; } $this->pdata = $setting; return $this->pdata; }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); if (ModuleManager::is_installed('Base_Acl') == -1) { return; } @DB::DropTable('base_acl_clearance'); DB::CreateTable('base_acl_clearance', 'id I4 AUTO KEY,' . 'callback C(128)', array('constraints' => '')); DB::Execute('INSERT INTO base_acl_clearance (callback) VALUES (%s)', array('Base_AclCommon::basic_clearance')); if (ModuleManager::is_installed('CRM_Contacts') == -1) { return; } DB::Execute('INSERT INTO base_acl_clearance (callback) VALUES (%s)', array('CRM_ContactsCommon::crm_clearance'));
public function restore_file($id) { DB::Execute('UPDATE utils_attachment_file SET deleted=0 WHERE id=%d', array($id)); return false; }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); DB::Execute('UPDATE rc_mails_assoc_field SET style=%s WHERE field=%s', array('', 'Record ID'));
public static function delete_group($id) { DB::Execute('DELETE FROM crm_filters_contacts WHERE group_id=%d', array($id)); DB::Execute('DELETE FROM crm_filters_group WHERE id=%d', array($id)); }
function Check4Filtered($headline, $body, $returnbool = false) { global $ANTIRANDOM, $User; $hl_df = defuck_comment($headline); $b_df = defuck_comment($body); $res = DB::Execute("SELECT filText,filReason,filPunishType,filPunishDuration,filReplacement FROM {P}Filters"); $dbg = ''; while (list($fText, $fReason, $fPunishment, $fPunishTime, $fReplacement) = $res->FetchRow()) { // Fastest string search method. $idx = strpos($hl_df . ' ' . $b_df, $fText); if ($idx === false) { continue; } if ($returnbool === true) { return true; } switch ($fPunishment) { case 0: // Just replace $headline = str_ireplace($fText, $fReplacement, $headline); $body = str_ireplace($fText, $fReplacement, $body); break; case 1: // 403 header('HTTP/1.1 403 Forbidden'); Output::HardError("<b>ATBBS has denied your post, as it contains "" . htmlentities($fText) . "", which is banned for the following reason:</b><br />{$fReason}"); break; case 2: // Ban AddBan($User->ID, $_SERVER['REMOTE_ADDR'], $fPunishTime, '<span class="tag filter">Filter</span>' . $fReason, 0); break; default: // Ignore. break; } } $score = GetRandomScore($headline . ' ' . $body); if ($score >= ANTIRANDOM_MAX_SCORE) { if ($returnbool === true) { return true; } header('HTTP/1.1 403 Forbidden'); Output::HardError("Your post contains random data (Score: {$score}, Max score: " . ANTIRANDOM_MAX_SCORE . "). Knock it the f**k off."); exit; } Check4Ban(true); if ($returnbool === true) { return false; } return array($headline, $body); }
$val = null; } else { $table = 'base_dashboard_applets'; $val = $user; } foreach ($x['ab_item'] as $pos => $id) { if (is_numeric($id)) { $vals = array($pos, $_POST['col'], $id); if ($val) { $vals[] = $val; } DB::Execute('UPDATE ' . $table . ' SET pos=%d, col=%d WHERE id=%d' . ($val ? ' AND user_login_id=%d' : ''), $vals); } elseif (strpos($id, 'new_') === 0) { $id = substr($id, 4); $cleanId = str_replace('-', '_', $id); $vals = array($cleanId, $tab, $_POST['col'], $pos); if ($val) { $vals[] = $val; } DB::Execute('INSERT INTO ' . $table . '(module_name,tab,col,pos' . ($val ? ',user_login_id' : '') . ') VALUES (%s,%d,%d,%d' . ($val ? ',%d' : '') . ')', $vals); $new_id = DB::Insert_ID('base_dashboard_applets', 'id'); print 'if(jq("#copy_ab_item_new_' . $id . '").length>0){' . 'jq("#copy_dashboard_remove_applet_' . $id . '").attr("onclick","if(confirm(\'' . __('Delete this applet?') . '\'))remove_applet(' . $new_id . ',' . ($default ? 1 : 0) . ');")' . '.show("fade",300);' . 'jq("#copy_dashboard_applet_content_' . $id . '").hide("blind",300);' . 'jq("#copy_dashboard_remove_applet_' . $id . '").attr("id","dashboard_remove_applet_' . $new_id . '");' . 'jq("#copy_dashboard_applet_content_' . $id . '").attr("id","dashboard_applet_content_' . $new_id . '");' . 'jq("#copy_ab_item_new_' . $id . '").attr("id","ab_item_' . $new_id . '");' . '}'; } } } elseif ($_POST['col'] == 'new') { foreach ($x['ab_item'] as $pos => $id) { if (is_numeric($id)) { Base_DashboardCommon::remove_applet($id, $default); } } }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); DB::Execute('UPDATE crm_meeting_field SET param=%d WHERE field=%s AND param=%d', array(5, 'Time', 255));
public static function mobile_rb_edit($tab, $id) { if ($id === false) { $rec = array(); } else { $rec = self::get_record($tab, $id); } $cols = Utils_RecordBrowserCommon::init($tab); $defaults = array(); if ($id === false) { $mode = 'add'; $access = array(); $defaults = self::record_processing($tab, $defaults, 'adding'); } else { $mode = 'edit'; $access = Utils_RecordBrowserCommon::get_access($tab, 'view', $rec); if (is_array($access)) { foreach ($access as $k => $v) { if (!$v) { unset($rec[$k]); } } } $defaults = $rec = self::record_processing($tab, $rec, 'editing'); } $QFfield_callback_table = array(); $ret = DB::Execute('SELECT * FROM ' . $tab . '_callback WHERE freezed=0'); while ($row = $ret->FetchRow()) { $QFfield_callback_table[$row['field']] = $row['callback']; } $defaults = array_merge($defaults, $_SESSION['rb_' . $tab . '_defaults']); $qf = new HTML_QuickForm('rb_edit', 'post', 'mobile.php?' . http_build_query($_GET)); foreach ($cols as $field => $args) { if (isset($access[$args['id']]) && !$access[$args['id']]) { continue; } if (isset($rec[$args['id']])) { $val = $rec[$args['id']]; } elseif (isset($defaults[$args['id']])) { $val = $defaults[$args['id']]; } else { $val = null; } $label = _V($args['name']); // TRSL if (isset($QFfield_callback_table[$field])) { $mobile_rb = new Utils_RecordBrowserMobile($tab, $rec); self::call_QFfield_callback($QFfield_callback_table[$field], $qf, $args['id'], $label, $mode, $val, $args, $mobile_rb, null); if ($mode == 'edit') { unset($defaults[$args['id']]); } continue; } switch ($args['type']) { case 'calculated': $qf->addElement('static', $args['id'], $label); if (!is_array($rec)) { $values = $defaults; } else { $values = $rec; if (is_array($defaults)) { $values = $values + $defaults; } } if (!isset($values[$args['id']])) { $values[$args['id']] = ''; } $val = Utils_RecordBrowserCommon::get_val($tab, $field, $values, true, $args); if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'integer': case 'float': $qf->addElement('text', $args['id'], $label); if ($args['type'] == 'integer') { $qf->addRule($args['id'], __('Only integer numbers are allowed.'), 'regex', '/^[0-9]*$/'); } else { $qf->addRule($args['id'], __('Only numbers are allowed.'), 'numeric'); } if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'checkbox': $qf->addElement('checkbox', $args['id'], $label, ''); if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'currency': $qf->addElement('currency', $args['id'], $label); if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'text': $qf->addElement('text', $args['id'], $label, array('maxlength' => $args['param'])); $qf->addRule($args['id'], __('Maximum length for this field is %s characters.', array($args['param'])), 'maxlength', $args['param']); if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'long text': $qf->addElement('textarea', $args['id'], $label, array('maxlength' => 200)); $qf->addRule($args['id'], __('Maximum length for this field in mobile edition is 200 chars.'), 'maxlengt', 200); if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'commondata': $param = explode('::', $args['param']['array_id']); foreach ($param as $k => $v) { if ($k != 0) { $param[$k] = self::get_field_id($v); } } if (count($param) == 1) { $qf->addElement($args['type'], $args['id'], $label, $param, array('empty_option' => true, 'id' => $args['id'], 'order_by_key' => $args['param']['order_by_key'])); if ($val !== null) { $qf->setDefaults(array($args['id'] => $val)); } } break; case 'select': $comp = array(); $ref = explode(';', $args['param']); if (isset($ref[1])) { $crits_callback = $ref[1]; } else { $crits_callback = null; } if (isset($ref[2])) { $multi_adv_params = call_user_func(explode('::', $ref[2])); } else { $multi_adv_params = null; } if (!isset($multi_adv_params) || !is_array($multi_adv_params)) { $multi_adv_params = array(); } if (!isset($multi_adv_params['order'])) { $multi_adv_params['order'] = array(); } if (!isset($multi_adv_params['cols'])) { $multi_adv_params['cols'] = array(); } if (!isset($multi_adv_params['format_callback'])) { $multi_adv_params['format_callback'] = array(); } $ref = $ref[0]; @(list($tab2, $col) = explode('::', $ref)); if (!isset($col)) { trigger_error($field); } if ($tab2 == '__RECORDSETS__') { continue; } //skip multi recordsets chained selector if ($tab2 == '__COMMON__') { $data = Utils_CommonDataCommon::get_translated_tree($col); if (!is_array($data)) { $data = array(); } $comp = $comp + $data; } else { if (isset($crits_callback)) { $crit_callback = explode('::', $crits_callback); if (is_callable($crit_callback)) { $crits = call_user_func($crit_callback, false, $rec); $adv_crits = call_user_func($crit_callback, true, $rec); } else { $crits = $adv_crits = array(); } if ($adv_crits === $crits) { $adv_crits = null; } if ($adv_crits !== null) { continue; //skip record picker } } else { $crits = array(); } $col = explode('|', $col); $col_id = array(); foreach ($col as $c) { $col_id[] = self::get_field_id($c); } $records = Utils_RecordBrowserCommon::get_records($tab2, $crits, empty($multi_adv_params['format_callback']) ? $col_id : array(), !empty($multi_adv_params['order']) ? $multi_adv_params['order'] : array()); $ext_rec = array(); if (isset($rec[$args['id']])) { if (!is_array($rec[$args['id']])) { if ($rec[$args['id']] != '') { $rec[$args['id']] = array($rec[$args['id']] => $rec[$args['id']]); } else { $rec[$args['id']] = array(); } } } if (isset($defaults[$args['id']])) { if (!is_array($defaults[$args['id']])) { $rec[$args['id']][$defaults[$args['id']]] = $defaults[$args['id']]; } else { foreach ($defaults[$args['id']] as $v) { $rec[$args['id']][$v] = $v; } } } $single_column = count($col_id) == 1; if (isset($rec[$args['id']])) { $ext_rec = array_flip($rec[$args['id']]); foreach ($ext_rec as $k => $v) { $c = Utils_RecordBrowserCommon::get_record($tab2, $k); if (!empty($multi_adv_params['format_callback'])) { $n = call_user_func($multi_adv_params['format_callback'], $c); } else { if ($single_column) { $n = $c[$col_id[0]]; } else { $n = array(); foreach ($col_id as $cid) { $n[] = $c[$cid]; } $n = implode(' ', $n); } } $comp[$k] = $n; } } if (!empty($multi_adv_params['order'])) { natcasesort($comp); } foreach ($records as $k => $v) { if (!empty($multi_adv_params['format_callback'])) { $n = call_user_func($multi_adv_params['format_callback'], $v); } else { // $n = $v[$col_id]; if ($single_column) { $n = $v[$col_id[0]]; } else { $n = array(); foreach ($col_id as $cid) { $n[] = $v[$cid]; } $n = implode(' ', $n); } } $comp[$k] = $n; unset($ext_rec[$v['id']]); } if (empty($multi_adv_params['order'])) { natcasesort($comp); } } if ($args['type'] === 'select') { $comp = array('' => '---') + $comp; } $qf->addElement($args['type'], $args['id'], $label, $comp, array('id' => $args['id'])); if ($id !== false) { $qf->setDefaults(array($args['id'] => $rec[$args['id']])); } break; case 'date': $qf->addElement('date', $args['id'], $label, array('format' => 'd M Y', 'minYear' => date('Y') - 95, 'maxYear' => date('Y') + 5, 'addEmptyOption' => true, 'emptyOptionText' => '--')); if ($val) { $qf->setDefaults(array($args['id'] => $val)); } break; case 'timestamp': $qf->addElement('date', $args['id'], $label, array('format' => 'd M Y H:i', 'minYear' => date('Y') - 95, 'maxYear' => date('Y') + 5, 'addEmptyOption' => true, 'emptyOptionText' => '--')); if ($val) { $default = Base_RegionalSettingsCommon::time2reg($val, true, true, true, false); $qf->setDefaults(array($args['id'] => $default)); } break; case 'time': $qf->addElement('date', $args['id'], $label, array('format' => 'H:i', 'addEmptyOption' => true, 'emptyOptionText' => '--')); if ($val) { $default = Base_RegionalSettingsCommon::time2reg($val, true, true, true, false); $qf->setDefaults(array($args['id'] => $default)); } break; case 'multiselect': //ignore if ($id === false) { continue; } $val = Utils_RecordBrowserCommon::get_val($tab, $field, $rec, true, $args); if ($val === '') { continue; } $qf->addElement('static', $args['id'], $label); $qf->setDefaults(array($args['id'] => $val)); unset($defaults[$args['id']]); break; } if ($args['required']) { $qf->addRule($args['id'], __('Field required'), 'required'); } } $qf->addElement('submit', 'submit_button', __('Save'), IPHONE ? 'class="button white"' : ''); if ($qf->validate()) { $values = $qf->exportValues(); foreach ($cols as $v) { if ($v['type'] == 'checkbox' && !isset($values[$v['id']])) { $values[$v['id']] = 0; } elseif ($v['type'] == 'date') { if (is_array($values[$v['id']]) && $values[$v['id']]['Y'] !== '' && $values[$v['id']]['M'] !== '' && $values[$v['id']]['d'] !== '') { $values[$v['id']] = sprintf("%d-%02d-%02d", $values[$v['id']]['Y'], $values[$v['id']]['M'], $values[$v['id']]['d']); } else { $values[$v['id']] = ''; } } elseif ($v['type'] == 'timestamp') { if ($values[$v['id']]['Y'] !== '' && $values[$v['id']]['M'] !== '' && $values[$v['id']]['d'] !== '' && $values[$v['id']]['H'] !== '' && $values[$v['id']]['i'] !== '') { $timestamp = $values[$v['id']]['Y'] . '-' . $values[$v['id']]['M'] . '-' . $values[$v['id']]['d'] . ' ' . $values[$v['id']]['H'] . ':' . $values[$v['id']]['i']; $values[$v['id']] = Base_RegionalSettingsCommon::reg2time($timestamp, true); } else { $values[$v['id']] = ''; } } elseif ($v['type'] == 'time') { if ($values[$v['id']]['H'] !== '' && $values[$v['id']]['i'] !== '') { $time = recalculate_time(date('Y-m-d'), $values[$v['id']]); $timestamp = Base_RegionalSettingsCommon::reg2time(date('1970-01-01 H:i:s', $time), true); $values[$v['id']] = date('1970-01-01 H:i:s', $timestamp); } else { $values[$v['id']] = ''; } } } foreach ($defaults as $k => $v) { if (!isset($values[$k])) { $values[$k] = $v; } } if ($id !== false) { $values['id'] = $id; Utils_RecordBrowserCommon::update_record($tab, $id, $values); } else { $id = Utils_RecordBrowserCommon::new_record($tab, $values); } return false; } $renderer =& $qf->defaultRenderer(); $qf->accept($renderer); print $renderer->toHtml(); }
<?php require 'includes/header.php'; if (!ctype_digit($_GET['id'])) { add_error('Invalid ID.', true); } $stmt = DB::Prepare('SELECT headline, visits, replies, author FROM {P}Topics WHERE id = ?'); $stmt = DB::Execute($stmt, array($_GET['id'])); if ($stmt->RecordCount() < 1) { $page_title = 'Non-existent topic'; add_error('There is no such topic. It may have been deleted.', true); } list($topic_headline, $topic_visits, $topic_replies, $topic_author) = $stmt->FetchRow(); update_activity('topic_trivia', $_GET['id']); $page_title = 'Trivia for topic: <a href="/topic/' . $_GET['id'] . '">' . htmlspecialchars($topic_headline) . '</a>'; $statistics = array(); $topic_watchers = DB::GetOne("SELECT count(*) FROM {P}Watchlists WHERE topic_id = " . DB::Q($_GET['id'])); $topic_readers = DB::GetOne("SELECT count(*) FROM {P}Activity WHERE action_name = 'topic' AND action_id = " . DB::Q($_GET['id'])); $topic_writers = DB::GetOne("SELECT count(*) FROM {P}Activity WHERE action_name = 'replying' AND action_id = " . DB::Q($_GET['id'])); $topic_participants = DB::GetOne("SELECT count(DISTINCT author) FROM {P}Replies WHERE parent_id = " . DB::Q($_GET['id']) . " AND author != " . DB::Q($topic_author)); // Alternatively, we could select the most recent poster_number. I'm not sure which method would be fastest. ?> <table> <tr> <th class="minimal">Total visits</th> <td><?php echo format_number($topic_visits); ?> </td> </tr>