public static function search_format($id) { $row = Utils_RecordBrowserCommon::get_records('bugtrack', array('id' => $id)); if (!$row) { return false; } $row = array_pop($row); return Utils_RecordBrowserCommon::record_link_open_tag('bugtrack', $row['id']) . __('Bug (attachment) #%d, %s', array($row['id'], $row['project_name'])) . Utils_RecordBrowserCommon::record_link_close_tag(); }
public static function get_tax_details() { static $cache = null; if ($cache === null) { $cache = array(); $r = Utils_RecordBrowserCommon::get_records('data_tax_rates'); foreach ($r as $v) { $cache[$v['id']] = $v; } } return $cache; }
public function body() { $recs = Utils_RecordBrowserCommon::get_records('company', array(), array(), array('company_name' => 'ASC')); $i = 0; foreach ($recs as $k => $v) { if ($i >= 10) { unset($recs[$k]); } $i++; } $this->rbr->set_reference_records($recs); $this->rbr->set_reference_record_display_callback(array('Tests_ReportCommon', 'display_company')); $date_range = $this->rbr->display_date_picker(); $this->rbr->set_categories(self::$cats); $this->rbr->set_summary('col', array('label' => 'Total')); $this->rbr->set_summary('row', array('label' => 'Total')); $this->rbr->set_format(array(self::$cats[0] => 'numeric', self::$cats[1] => 'currency')); $header = array('Company'); $this->dates = $date_range['dates']; $this->range_type = $date_range['type']; switch ($date_range['type']) { case 'day': $this->format = 'd M Y'; break; case 'week': $this->format = 'W Y'; break; case 'month': $this->format = 'M Y'; break; case 'year': $this->format = 'Y'; break; } foreach ($this->dates as $v) { $header[] = date($this->format, $v); } $this->rbr->set_table_header($header); $this->rbr->set_display_cell_callback(array($this, 'display_cells')); $this->rbr->set_pdf_title(__('Companies - Report, %s', array(date('Y-m-d H:i:s')))); $this->rbr->set_pdf_subject($this->rbr->pdf_subject_date_range()); $this->rbr->set_pdf_filename(__('Companies_Report_%s', array(date('Y_m_d__H_i_s')))); $this->display_module($this->rbr); }
$path = $_REQUEST['path']; define('CID', $cid); define('READ_ONLY_SESSION', true); require_once '../../../include.php'; $crits = Module::static_get_module_variable($path, 'crits_stuff', null); $order = Module::static_get_module_variable($path, 'order_stuff', null); if ($crits === null || $order === null) { $crits = $order = array(); } ModuleManager::load_modules(); if (!Utils_RecordBrowserCommon::get_access($tab, 'export') && !Base_AclCommon::i_am_admin()) { die('Access denied'); } set_time_limit(0); $tab_info = Utils_RecordBrowserCommon::init($tab); $records = Utils_RecordBrowserCommon::get_records($tab, $crits, array(), $order, array(), $admin); header('Content-Type: text/csv'); //header('Content-Length: '.strlen($buffer)); header('Content-disposition: attachement; filename="' . $tab . '_export_' . date('Y_m_d__H_i_s') . '.csv"'); if (headers_sent()) { die('Some data has already been output to browser, can\'t send the file'); } $cols = array(__('Record ID'), __('Created on'), __('Created by'), __('Edited on'), __('Edited by')); foreach ($tab_info as $v) { if (!$v['export']) { continue; } $cols[] = _V($v['name']); if ($v['style'] == 'currency') { $cols[] = _V($v['name']) . ' - ' . __('Currency'); }
public function send($file) { if ($this->is_back()) { return $this->go_back($file); } $qf = $this->init_module(Libs_QuickForm::module_name(), null, 'send_fax'); list($providers, $providers_arr) = self::get_providers($file); if (empty($providers)) { $this->go_back($file); Epesi::alert(__('No fax providers installed or configured for this type of file.')); return; } $qf->addElement('header', null, __('Faxing file: %s', array(basename($file)))); $qf->addElement('select', 'provider', __('Provider'), $providers); $qf->addElement('header', null, __('Contact')); $fav_contact = CRM_ContactsCommon::get_contacts(array(':Fav' => true, '!fax' => '')); $fav_contact2 = array(); foreach ($fav_contact as $v) { $fav_contact2[$v['id']] = CRM_ContactsCommon::contact_format_default($v, true); } $rb_contact = $this->init_module(Utils_RecordBrowser_RecordPicker::module_name()); $this->display_module($rb_contact, array('contact', 'dest_contact', array('CRM_FaxCommon', 'rpicker_contact_format'), array('!fax' => ''), array('fax' => true))); $qf->addElement('multiselect', 'dest_contact', '', $fav_contact2); $qf->addElement('static', null, $rb_contact->create_open_link('Add contact')); $qf->addElement('header', null, __('Company')); $fav_company = CRM_ContactsCommon::get_companies(array(':Fav' => true, '!fax' => ''), array('id', 'company_name')); $fav_company2 = array(); foreach ($fav_company as $v) { $fav_company2[$v['id']] = $v['company_name']; } $rb_company = $this->init_module(Utils_RecordBrowser_RecordPicker::module_name()); $this->display_module($rb_company, array('company', 'dest_company', array('CRM_FaxCommon', 'rpicker_company_format'), array('!fax' => ''), array('fax' => true))); $qf->addElement('multiselect', 'dest_company', '', $fav_company2); $qf->addElement('static', null, $rb_company->create_open_link('Add company')); $qf->addElement('header', null, __('Other')); $qf->addElement('text', 'dest_other', __('Other fax numbers (comma separated)')); $qf->addFormRule(array($this, 'check_numbers')); if ($qf->validate()) { $data = $qf->exportValues(); if (!isset($providers_arr[$data['provider']]['send_func'])) { Epesi::alert(__('Invalid fax provider.')); } else { $fax_func = array($data['provider'] . 'Common', $providers_arr[$data['provider']]['send_func']); $numbers = array(); $contacts = Utils_RecordBrowserCommon::get_records('contact', array('id' => $data['dest_contact']), array('fax')); foreach ($contacts as $row) { $numbers[] = $row['fax']; } $companies = Utils_RecordBrowserCommon::get_records('company', array('id' => $data['dest_company']), array('fax')); foreach ($companies as $row) { $numbers[] = $row['fax']; } $numbers += explode(',', $data['dest_other']); $ret = call_user_func($fax_func, $file, $numbers); if ($ret) { return $this->go_back($file); } } } $qf->display(); Base_ActionBarCommon::add('send', __('Send'), $qf->get_submit_form_href()); Base_ActionBarCommon::add('back', __('Back'), $this->create_back_href()); }
public static function check_nickname($v, $id) { if (isset($id[2])) { $r = Utils_RecordBrowserCommon::get_records('rc_multiple_emails', array('nickname' => $v, 'record_type' => $id[0], 'record_id' => $id[1], '!id' => $id[2]), array()); return empty($r); } $r = Utils_RecordBrowserCommon::get_records('rc_multiple_emails', array('nickname' => $v, 'record_type' => $id[0], 'record_id' => $id[1]), array()); return empty($r); }
public function applet($conf, &$opts) { Epesi::load_js('modules/CRM/Roundcube/utils.js'); $opts['go'] = true; $accounts = array(); $ret = array(); $update_applet = ''; foreach ($conf as $key => $on) { $x = explode('_', $key); if ($x[0] == 'account' && $on) { $id = $x[1]; $accounts[] = $id; } } $accs = Utils_RecordBrowserCommon::get_records('rc_accounts', array('epesi_user' => Acl::get_user(), 'id' => $accounts)); print '<ul>'; foreach ($accs as $row) { $mail = $row['account_name']; $cell_id = 'mailaccount_' . $opts['id'] . '_' . $row['id']; //interval execution eval_js_once('setInterval(\'CRM_RC.update_msg_num(' . $opts['id'] . ' ,' . $row['id'] . ' , 0)\',300000)'); //and now $update_applet .= 'CRM_RC.update_msg_num(' . $opts['id'] . ' ,' . $row['id'] . ' ,1);'; print '<li><i><a' . $this->create_callback_href(array($this, 'open_rc_account'), $row['id']) . '>' . $mail . '</a></i> - <span id="' . $cell_id . '"></span></li>'; } print '</ul>'; $this->js($update_applet); $href = $this->create_callback_href(array('Base_BoxCommon', 'push_module'), array($this->get_type(), 'account_manager', array(true))); $img = '<img src="' . Base_ThemeCommon::get_template_file('Base_Dashboard', 'configure.png') . '" border="0">'; $tooltip = Utils_TooltipCommon::open_tag_attrs(__('Go to account settings')); $opts['actions'][] = "<a {$tooltip} {$href}>{$img}</a>"; }
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(); }
public function mini_view($cols, $crits, $order, $info=null, $limit=null, $conf = array('actions_edit'=>true, 'actions_info'=>true), & $opts = array()){ unset($_SESSION['client']['recordbrowser']['admin_access']); $this->init(); $gb = $this->init_module('Utils/GenericBrowser',$this->tab,$this->tab); $field_hash = array(); foreach($this->table_rows as $field => $args) $field_hash[$args['id']] = $field; $header = array(); $callbacks = array(); foreach($cols as $k=>$v) { if (isset($v['callback'])) $callbacks[] = $v['callback']; else $callbacks[] = null; if (is_array($v)) { $arr = array('name'=>_V($field_hash[$v['field']])); // TRSL if (isset($v['width'])) $arr['width'] = $v['width']; $cols[$k] = $v['field']; } else { $arr = array('name'=>_V($field_hash[$v])); // TRSL $cols[$k] = $v; } if (isset($v['label'])) $arr['name'] = $v['label']; $arr['wrapmode'] = 'nowrap'; $header[] = $arr; } $gb->set_table_columns($header); $gb->set_fixed_columns_class($this->fixed_columns_class); $clean_order = array(); foreach($order as $k=>$v) { if ($k==':Visited_on') $field_hash[$k] = $k; if ($k==':Fav') $field_hash[$k] = $k; if ($k==':Edited_on') $field_hash[$k] = $k; if ($k==':id') $field_hash[$k] = $k; $clean_order[] = array('column'=>$field_hash[$k],'order'=>$field_hash[$k],'direction'=>$v); } if ($limit!=null && !isset($conf['force_limit'])) { $limit = array('offset'=>0, 'numrows'=>$limit); $records_qty = Utils_RecordBrowserCommon::get_records_count($this->tab, $crits); if ($records_qty>$limit['numrows']) { if ($this->get_module_variable('no_limit_in_mini_view',false)) { $opts['actions'][] = '<a '.Utils_TooltipCommon::open_tag_attrs(__('Display first %d records', array($limit['numrows']))).' '.$this->create_callback_href(array($this, 'set_no_limit_in_mini_view'), array(false)).'><img src="'.Base_ThemeCommon::get_template_file('Utils_RecordBrowser','show_some.png').'" border="0"></a>'; $limit = null; } else { print(__('Displaying %s of %s records', array($limit['numrows'], $records_qty))); $opts['actions'][] = '<a '.Utils_TooltipCommon::open_tag_attrs(__('Display all records')).' '.$this->create_callback_href(array($this, 'set_no_limit_in_mini_view'), array(true)).'><img src="'.Base_ThemeCommon::get_template_file('Utils_RecordBrowser','show_all.png').'" border="0"></a>'; } } } $records = Utils_RecordBrowserCommon::get_records($this->tab, $crits, array(), $clean_order, $limit); foreach($records as $v) { $gb_row = $gb->get_new_row(); $arr = array(); foreach($cols as $k=>$w) { if (!isset($callbacks[$k])) $s = $this->get_val($field_hash[$w], $v, false, $this->table_rows[$field_hash[$w]]); else $s = call_user_func($callbacks[$k], $v); $arr[] = $s; } $gb_row->add_data_array($arr); if (is_callable($info)) { $additional_info = call_user_func($info, $v); } else $additional_info = ''; if (!is_array($additional_info) && isset($additional_info)) $additional_info = array('notes'=>$additional_info); if (isset($additional_info['notes'])) $additional_info['notes'] = $additional_info['notes'].'<hr />'; if (isset($additional_info['row_attrs'])) $gb_row->set_attrs($additional_info['row_attrs']); if (isset($conf['actions_info']) && $conf['actions_info']) $gb_row->add_info($additional_info['notes'].Utils_RecordBrowserCommon::get_html_record_info($this->tab, $v['id'])); if (isset($conf['actions_view']) && $conf['actions_view']) $gb_row->add_action($this->create_callback_href(array($this,'navigate'),array('view_entry', 'view',$v['id'])),'View'); if (isset($conf['actions_edit']) && $conf['actions_edit']) if ($this->get_access('edit',$v)) $gb_row->add_action($this->create_callback_href(array($this,'navigate'),array('view_entry', 'edit',$v['id'])),'Edit'); if (isset($conf['actions_delete']) && $conf['actions_delete']) if ($this->get_access('delete',$v)) $gb_row->add_action($this->create_confirm_callback_href(__('Are you sure you want to delete this record?'),array($this,'delete_record'),array($v['id'], false)),'Delete'); if (isset($conf['actions_history']) && $conf['actions_history']) { $r_info = Utils_RecordBrowserCommon::get_record_info($this->tab, $v['id']); if ($r_info['edited_on']===null) $gb_row->add_action('','This record was never edited',null,'history_inactive'); else $gb_row->add_action($this->create_callback_href(array($this,'navigate'),array('view_edit_history', $v['id'])),'View edit history',null,'history'); } $this->call_additional_actions_methods($v, $gb_row); } $this->display_module($gb); }
public function salesopportunity_addon($salesopportunity) { $attachment_groups = array(); if (ModuleManager::is_installed('CRM_Meeting') >= 0) { $records = Utils_RecordBrowserCommon::get_records('crm_meeting', array('opportunity' => $salesopportunity['id']), array()); foreach ($records as $rec) { $attachment_groups[] = 'crm_meeting/' . $rec['id']; } } if (ModuleManager::is_installed('CRM_Tasks') >= 0) { $records = Utils_RecordBrowserCommon::get_records('task', array('opportunity' => $salesopportunity['id']), array()); foreach ($records as $rec) { $attachment_groups[] = 'task/' . $rec['id']; } } if (ModuleManager::is_installed('CRM_PhoneCall') >= 0) { $records = Utils_RecordBrowserCommon::get_records('phonecall', array('opportunity' => $salesopportunity['id']), array()); foreach ($records as $rec) { $attachment_groups[] = 'phonecall/' . $rec['id']; } } if (Base_User_SettingsCommon::get('CRM/Contacts/NotesAggregate', 'show_all_notes')) { $attachment_groups[] = 'premium_salesopportunity/' . $salesopportunity['id']; } $a = $this->init_module('Utils/Attachment', array($attachment_groups)); $a->set_multiple_group_mode(); $this->display_module($a); }
continue; } $old_checkpoint->require_time(2); Utils_RecordBrowserCommon::new_record('rc_related', array('recordset' => $r['recordset'])); unset($old[$i]); $old_checkpoint->set('old', $old); } $old_checkpoint->done(); } Patch::set_message('Processing related'); $related_checkpoint = Patch::checkpoint('related'); if (!$related_checkpoint->is_done()) { while (1) { $related = $related_checkpoint->get('related', array()); if (empty($related)) { $related = Utils_RecordBrowserCommon::get_records('rc_mails_assoc', array(), array(), array(), 10); if (empty($related)) { break; } } foreach ($related as $i => $r) { $related_checkpoint->require_time(5); $mail = Utils_RecordBrowserCommon::get_record('rc_mails', $r['mail']); $mail['related'][] = $r['recordset'] . '/' . $r['record_id']; Utils_RecordBrowserCommon::update_record('rc_mails', $r['mail'], array('related' => $mail['related'])); Utils_RecordBrowserCommon::delete_record('rc_mails_assoc', $r['id']); unset($related[$i]); $related_checkpoint->set('related', $related); } } $related_checkpoint->done();
*/ if (!isset($_POST['select']) || !isset($_POST['path']) || !isset($_POST['cid'])) { die('alert(\'Invalid request\')'); } define('JS_OUTPUT', 1); define('CID', $_POST['cid']); require_once '../../../../include.php'; foreach ($_POST as $k => $v) { $_POST[$k] = trim($v, '"'); } $path = $_POST['path']; $select = json_decode($_POST['select']); $tab = Module::static_get_module_variable($path, 'tab', null); $crits = Module::static_get_module_variable($path, 'crits_stuff', null); $rp_path = Module::static_get_module_variable($path, 'rp_fs_path', null); $selected =& Module::static_get_module_variable($rp_path, 'selected', array()); ModuleManager::load_modules(); if ($tab === null || $crits === null || $rp_path === null) { die('alert(\'Invalid usage - variables not set (path - ' . $path . ', module vars - ' . epesi::escapeJS(print_r($_SESSION['client']['__module_vars__'][$path], true)) . ')\');'); } $tab_info = Utils_RecordBrowserCommon::init($tab); $records = Utils_RecordBrowserCommon::get_records($tab, $crits, array('id')); foreach ($records as $r) { if ($select) { $selected[$r['id']] = 1; } else { unset($selected[$r['id']]); } } session_commit(); print 'Epesi.procOn--;_chj(\'\',\'\',\'queue\');';
break; case 'recent': $crits[':Recent'] = true; $sort = array(':Visited_on' => 'DESC'); break; } if (!IPHONE && $type != 'recent' && $order && ($_GET['order_dir'] == 'asc' || $_GET['order_dir'] == 'desc')) { $sort = array($order => strtoupper($_GET['order_dir'])); } $offset = isset($_GET['rb_offset']) ? $_GET['rb_offset'] : 0; if (IPHONE) { $num_rows = 20; } else { $num_rows = 10; } $data = Utils_RecordBrowserCommon::get_records($table, $crits, array(), $sort, array('numrows' => $num_rows, 'offset' => $num_rows * $offset)); //parse data if (IPHONE) { $letter = null; $letter_col = current($cols_out); $letter_col = $letter_col['record']['id']; print '<ul>'; } else { $data_out = array(); } foreach ($data as $v) { if (IPHONE) { $row_sort = ''; $row_info = ''; } else { $row = array();
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); $mails = Utils_RecordBrowserCommon::get_records('rc_mails'); foreach ($mails as $m) { Utils_RecordBrowserCommon::update_record('rc_mails', $m['id'], array('message_id' => ltrim(rtrim($m['message_id'], '>'), '<'))); } foreach ($mails as $m) { CRM_RoundcubeCommon::create_thread($m['id']); }
public static function reload_mails($rs, $id, $email_addresses = null) { $prefix = ($rs == 'contact' ? 'P' : 'C') . ':'; if (!$email_addresses) { $email_addresses = self::get_email_addresses($rs, $id); } foreach ($email_addresses as $email) { $cc = Utils_RecordBrowserCommon::get_records('rc_mails', array('(~from' => '%' . $email . '%', '|~to' => '%' . $email . '%')); foreach ($cc as $mail) { if ($rs == 'contact' && $mail['employee'] == $id || in_array($prefix . $id, $mail['contacts'])) { continue; } if (!preg_match('/(^|[\\s,\\<\\;])' . preg_quote($email, '/') . '($|[\\s,\\>\\&])/i', $mail['from'] . ',' . $mail['to'])) { continue; } $mail['contacts'][] = $prefix . $id; Utils_RecordBrowserCommon::update_record('rc_mails', $mail['id'], array('contacts' => $mail['contacts'])); CRM_RoundcubeCommon::create_thread($mail['id']); } } }
/** * Get records from recordset. * @param array $crits * @param array $cols * @param array $order * @param mixed $limit * @param bool $admin * @return RBO_Record[] */ public function get_records($crits = array(), $cols = array(), $order = array(), $limit = array(), $admin = false) { $records = Utils_RecordBrowserCommon::get_records($this->tab, $crits, $cols, $order, $limit, $admin); return $this->array_of_records_to_array_of_objects($records); }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); //addons table $fields = array(array('name' => _M('Recordset'), 'type' => 'text', 'param' => 64, 'display_callback' => array('CRM_PhoneCallCommon', 'display_recordset'), 'QFfield_callback' => array('CRM_PhoneCallCommon', 'QFfield_recordset'), 'required' => true, 'extra' => false, 'visible' => true)); Utils_RecordBrowserCommon::install_new_recordset('phonecall_related', $fields); Utils_RecordBrowserCommon::set_caption('phonecall_related', _M('Meeting Related Recordsets')); Utils_RecordBrowserCommon::register_processing_callback('phonecall_related', array('CRM_PhoneCallCommon', 'processing_related')); Utils_RecordBrowserCommon::add_access('phonecall_related', 'view', 'ACCESS:employee'); Utils_RecordBrowserCommon::add_access('phonecall_related', 'add', 'ADMIN'); Utils_RecordBrowserCommon::add_access('phonecall_related', 'edit', 'SUPERADMIN'); Utils_RecordBrowserCommon::add_access('phonecall_related', 'delete', 'SUPERADMIN'); Utils_RecordBrowserCommon::new_record_field('phonecall', array('name' => _M('Related'), 'type' => 'multiselect', 'param' => '__RECORDSETS__::;CRM_PhoneCallCommon::related_crits', 'QFfield_callback' => array('CRM_PhoneCallCommon', 'QFfield_related'), 'extra' => false, 'required' => false, 'visible' => true)); $rel = Utils_RecordBrowserCommon::get_records('phonecall', array('!related_to' => '')); foreach ($rel as $r) { $rr = array(); foreach ($r['related_to'] as $id) { $rr[] = 'contact/' . $id; } Utils_RecordBrowserCommon::update_record('phonecall', $r['id'], array('related' => $rr), false, null, true); } Utils_RecordBrowserCommon::delete_record_field('phonecall', 'Related to');
public static function crm_event_get_all($start, $end, $filter = null, $customers = null) { $start = date('Y-m-d', Base_RegionalSettingsCommon::reg2time($start)); $crits = array(); if ($filter === null) { $filter = CRM_FiltersCommon::get(); } $f_array = explode(',', trim($filter, '()')); if ($filter != '()' && $filter) { $crits['(' . 'employees'] = $f_array; } if ($customers && !empty($customers)) { $crits['|customers'] = $customers; } elseif ($filter != '()' && $filter) { $crits['|customers'] = $f_array; foreach ($crits['|customers'] as $k => $v) { $crits['|customers'][$k] = 'P:' . $v; } } $critsb = $crits; $crits['<=date'] = $end; $crits['>=date'] = $start; $crits['recurrence_type'] = ''; $count = 0; $ret = Utils_RecordBrowserCommon::get_records('crm_meeting', $crits, array(), array('date' => 'DESC', 'time' => 'DESC'), CRM_CalendarCommon::$events_limit); $result = array(); foreach ($ret as $r) { $result[] = self::crm_event_get($r); } $count += count($result); $crits = $critsb; $crits['<=date'] = $end; $crits['(>=recurrence_end'] = $start; $crits['|recurrence_end'] = ''; $crits['!recurrence_type'] = ''; $ret = Utils_RecordBrowserCommon::get_records('crm_meeting', $crits, array(), array(), CRM_CalendarCommon::$events_limit); $day = strtotime($start); $end = strtotime($end); while ($day <= $end) { foreach ($ret as $r) { $next = self::crm_event_get($r, date('Y-m-d', $day)); if ($next) { $result[] = $next; $count++; if ($count == CRM_CalendarCommon::$events_limit) { break; } } } $day = strtotime('+1 day', $day); } return $result; }
public static function get($group=null,$group_starts_with=false) { $attachments = Utils_RecordBrowserCommon::get_records('utils_attachment',array('id'=>self::get_where($group,$group_starts_with))); foreach($attachments as &$a) { $a['permission_owner'] = $a['permission_by'] = $a['note_by'] = $a['created_by']; $a['local'] = '';//deprecated here $a['note_revision'] = 0; //deprecated $a['note_on'] = $a['created_on']; $a['text'] = $a['note']; } return $attachments; }
public static function crm_event_get_all($start, $end, $filter = null, $customers = null) { $start = date('Y-m-d', Base_RegionalSettingsCommon::reg2time($start)); $crits = array(); if ($filter === null) { $filter = CRM_FiltersCommon::get(); } $f_array = explode(',', trim($filter, '()')); if ($filter != '()' && $filter) { $crits['(' . 'employees'] = $f_array; } if ($customers && !empty($customers)) { $crits['|customers'] = $customers; } elseif ($filter != '()' && $filter) { $crits['|customers'] = $f_array; foreach ($crits['|customers'] as $k => $v) { $crits['|customers'][$k] = 'P:' . $v; } } $crits['<=deadline'] = $end; $crits['>=deadline'] = $start; $ret = Utils_RecordBrowserCommon::get_records('task', $crits, array(), array(), CRM_CalendarCommon::$events_limit); $result = array(); foreach ($ret as $r) { $result[] = self::crm_event_get($r); } return $result; }
public static function autoselect_company_suggestbox($str, $crits, $format_callback) { $str = explode(' ', trim($str)); foreach ($str as $k => $v) { if ($v) { $v = DB::Concat(DB::qstr('%'), DB::qstr($v), DB::qstr('%')); $crits = Utils_RecordBrowserCommon::merge_crits($crits, array('~"company_name' => $v)); } } $recs = Utils_RecordBrowserCommon::get_records('company', $crits, array(), array('company_name' => 'ASC'), 10); $ret = array(); foreach ($recs as $v) { $ret[$v['id']] = call_user_func($format_callback, $v, true); } return $ret; }
<?php defined("_VALID_ACCESS") || die('Direct access forbidden'); Utils_RecordBrowserCommon::register_processing_callback('rc_mails', array('CRM_RoundcubeCommon', 'submit_mail')); $mails = Utils_RecordBrowserCommon::get_records('rc_mails', array('thread' => null)); foreach ($mails as $m) { if (preg_match('/\\nreferences:(.*)\\n/i', $m['headers_data'], $match)) { $ref = trim($match[1]); Utils_RecordBrowserCommon::update_record('rc_mails', $m['id'], array('references' => $ref)); } if (preg_match('/\\nmessageid:(.*)\\n/i', $m['headers_data'], $match)) { $mid = str_replace(array('<', '>'), '', trim($match[1])); Utils_RecordBrowserCommon::update_record('rc_mails', $m['id'], array('message_id' => $mid)); } } foreach ($mails as $m) { CRM_RoundcubeCommon::create_thread($m['id']); }
public function getPresets() { $values = Utils_RecordBrowserCommon::get_records("quick_search", array(), array("id", "preset_name"), array(), array(), false); $arr = array(); foreach ($values as $presets) { $arr[$presets["id"]] = $presets["preset_name"]; } return $arr; }