Example #1
0
 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));
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
Example #5
0
 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;
 }
Example #6
0
 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;
 }
Example #7
0
 /**
  * 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']);
     }
 }
Example #8
0
 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;
 }
Example #9
0
 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));
 }
Example #10
0
 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;
 }
Example #11
0
 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);
     }
 }
Example #12
0
 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;
 }
Example #13
0
 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;
 }
Example #14
0
 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;
 }
Example #15
0
 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;
 }
Example #16
0
 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();
 }
Example #17
0
    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;
    }
Example #18
0
 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();
 }
Example #19
0
	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'=>'&bull; Blue', 'red'=>'&bull; Red', 'yellow'=>'&bull; Yellow', 'green'=>'&bull; Green', 'gray' => '&bull; Gray', 'cyan' => '&bull; Cyan', 'magenta' => '&bull; 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());
		}
	}
Example #20
0
    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;
 }
Example #22
0
<?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'));
Example #23
0
 public function restore_file($id)
 {
     DB::Execute('UPDATE utils_attachment_file SET deleted=0 WHERE id=%d', array($id));
     return false;
 }
Example #24
0
<?php

defined("_VALID_ACCESS") || die('Direct access forbidden');
DB::Execute('UPDATE rc_mails_assoc_field SET style=%s WHERE field=%s', array('', 'Record ID'));
Example #25
0
 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));
 }
Example #26
0
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 &quot;" . htmlentities($fText) . "&quot;, 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);
}
Example #27
0
        $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));
Example #29
0
 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();
 }
Example #30
0
<?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>