Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 public function contact_activities($me)
 {
     $this->theme = $this->pack_module(Base_Theme::module_name());
     $this->filters();
     $this->theme->display();
     $events = null;
     $tasks = null;
     $phonecalls = null;
     $date_filter = '';
     //		if ($this->activities_date==0) $date_filter = ' cce.starts>'.Base_RegionalSettingsCommon::reg2time(date('Y-m-d 0:00:00')).' AND';
     //		if ($this->activities_date==1) $date_filter = ' cce.ends<'.Base_RegionalSettingsCommon::reg2time(date('Y-m-d 0:00:00')).' AND';
     if ($this->display['events']) {
         //$events = DB::GetAll('SELECT * FROM crm_calendar_event AS cce WHERE cce.deleted=0 AND'.$date_filter.(!$this->display['closed']?' cce.status<2 AND':'').' (EXISTS (SELECT contact FROM crm_calendar_event_group_emp AS ccegp WHERE ccegp.id=cce.id AND contact=%d) OR EXISTS (SELECT contact FROM crm_calendar_event_group_cus AS ccegc WHERE ccegc.id=cce.id AND contact=%d)) ORDER BY starts DESC', array($me['id'], $me['id']));
         if ($this->activities_date == 0) {
             $events = CRM_MeetingCommon::crm_event_get_all(date('Y-m-d H:i:s'), date('Y-m-d H:i:s', time() + 10 * 365 * 24 * 3600), '(' . $me['id'] . ')', array('P:' . $me['id']));
         } elseif ($this->activities_date == 1) {
             $events = CRM_MeetingCommon::crm_event_get_all(date('Y-m-d H:i:s', 0), date('Y-m-d H:i:s'), '(' . $me['id'] . ')', array('P:' . $me['id']));
         } else {
             $events = CRM_MeetingCommon::crm_event_get_all(date('Y-m-d H:i:s', 0), date('Y-m-d H:i:s', time() + 10 * 365 * 24 * 3600), '(' . $me['id'] . ')', array('P:' . $me['id']));
         }
     }
     $crits = array('(employees' => $me['id'], '|customers' => 'P:' . $me['id']);
     if ($this->activities_date == 0) {
         $crits['(>=deadline'] = date('Y-m-d');
         $crits['|deadline'] = '';
     }
     if ($this->activities_date == 1) {
         $crits['(<deadline'] = date('Y-m-d');
         $crits['|deadline'] = '';
     }
     if (!$this->display['closed']) {
         $crits['!status'] = array(2, 3);
     }
     if ($this->display['tasks']) {
         $tasks = CRM_TasksCommon::get_tasks($crits, array(), array('deadline' => 'DESC'));
     }
     $crits = array('(employees' => $me['id'], '|customer' => 'P:' . $me['id']);
     if ($this->activities_date == 0) {
         $crits['>=date_and_time'] = date('Y-m-d H:i:s', Base_RegionalSettingsCommon::reg2time(date('Y-m-d 0:00:00')));
     }
     if ($this->activities_date == 1) {
         $crits['<date_and_time'] = date('Y-m-d H:i:s', Base_RegionalSettingsCommon::reg2time(date('Y-m-d 0:00:00')));
     }
     if (!$this->display['closed']) {
         $crits['!status'] = array(2, 3);
     }
     if ($this->display['phonecalls']) {
         $phonecalls = CRM_PhoneCallCommon::get_phonecalls($crits, array(), array('date_and_time' => 'DESC'));
     }
     $this->display_activities($events, $tasks, $phonecalls);
 }
Exemplo n.º 3
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();
 }
Exemplo n.º 4
0
 public function body($args = array())
 {
     $ev_mod = $this->init_module(CRM_Calendar_Event::module_name());
     $ev_mod->help('Calendar Help', 'main');
     if (isset($_REQUEST['search_date']) && is_numeric($_REQUEST['search_date']) && isset($_REQUEST['ev_id']) && is_numeric($_REQUEST['ev_id'])) {
         $default_date = intval($_REQUEST['search_date']);
         $this->view_event(intval($_REQUEST['ev_id']));
     } else {
         $default_date = null;
     }
     $handlers = DB::GetAll('SELECT id, group_name, handler_callback FROM crm_calendar_custom_events_handlers');
     $this->lp = $this->init_module('Utils_LeightboxPrompt');
     $count = 0;
     foreach ($handlers as $v) {
         $callback = explode('::', $v['handler_callback']);
         if (!is_callable($callback)) {
             continue;
         }
         $new_events = call_user_func($callback, 'new_event_types');
         if ($new_events !== null) {
             foreach ($new_events as $k => $w) {
                 if (!is_array($w)) {
                     $w = array('label' => $w, 'icon' => null);
                 }
                 $this->lp->add_option('new_event__' . $v['id'] . '__' . $k, $w['label'], $w['icon'], null);
                 $count++;
             }
         }
     }
     if ($count < 2) {
         $this->lp = null;
     } else {
         $this->display_module($this->lp, array(__('New Event'), array('timestamp', 'timeless'), '', false));
         $vals = $this->lp->export_values();
         if ($vals) {
             $this->jump_to_new_event($vals['option'], $vals['params']['timestamp'], $vals['params']['timeless']);
             return;
         }
     }
     CRM_Calendar_EventCommon::$filter = CRM_FiltersCommon::get();
     $args_defaults = array('default_view' => Base_User_SettingsCommon::get('CRM_Calendar', 'default_view'), 'first_day_of_week' => Utils_PopupCalendarCommon::get_first_day_of_week(), 'start_day' => Base_User_SettingsCommon::get('CRM_Calendar', 'start_day'), 'end_day' => Base_User_SettingsCommon::get('CRM_Calendar', 'end_day'), 'interval' => Base_User_SettingsCommon::get('CRM_Calendar', 'interval'), 'default_date' => $default_date, 'custom_agenda_cols' => array(array('name' => __('Type'), 'order' => 'cus_col_0', 'width' => 6, 'wrapmode' => 'nowrap'), __('Description'), __('Assigned to'), __('Related with')));
     foreach ($args_defaults as $k => $v) {
         if (!isset($args[$k])) {
             $args[$k] = $args_defaults[$k];
         }
     }
     if (isset($_REQUEST['jump_to_date']) && is_numeric($_REQUEST['jump_to_date']) && isset($_REQUEST['switch_to_tab']) && is_string($_REQUEST['switch_to_tab'])) {
         $args['default_date'] = $_REQUEST['jump_to_date'];
         $args['default_view'] = $_REQUEST['switch_to_tab'];
     }
     $theme = $this->init_module(Base_Theme::module_name());
     $c = $this->init_module(Utils_Calendar::module_name(), array(CRM_Calendar_Event::module_name(), $args, array($this, 'get_new_event_href_js')));
     $view_type = $c->get_current_view();
     CRM_CalendarCommon::$mode = $view_type;
     $theme->assign('calendar', $this->get_html_of_module($c));
     $theme->display();
     $events = $c->get_displayed_events();
     if (!empty($events['events'])) {
         switch ($view_type) {
             case 'Day':
                 $view = __('Daily agenda');
                 break;
             case 'Month':
                 $view = __('Monthly agenda');
                 break;
             case 'Week':
                 $view = __('Weekly agenda');
                 break;
             case 'Agenda':
                 $view = __('Agenda');
                 break;
         }
         if (isset($view)) {
             $pdf = $this->pack_module(Libs_TCPDF::module_name(), null, null, 'L');
             if ($pdf->prepare()) {
                 set_time_limit(0);
                 $start = date('d F Y', Base_RegionalSettingsCommon::reg2time($events['start']));
                 $end = date('d F Y', Base_RegionalSettingsCommon::reg2time($events['end']));
                 $pdf->set_title($view . ', ' . $start . ($view_type != 'Day' ? ' - ' . $end : ''));
                 $filter = CRM_FiltersCommon::get();
                 $me = CRM_ContactsCommon::get_my_record();
                 if (trim($filter, '()') == $me['id']) {
                     $desc = $me['last_name'] . ' ' . $me['first_name'];
                 } else {
                     $desc = CRM_FiltersCommon::get_profile_desc();
                 }
                 $pdf->set_subject(__('CRM Filters: %s', array($desc)));
                 $pdf->prepare_header();
                 $pdf->AddPage();
                 foreach ($events['events'] as $v) {
                     $ev_mod->make_event_PDF($pdf, $v, true, $view_type);
                 }
             }
             $pdf->add_actionbar_icon($view);
         }
     }
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 protected function validate_single(Utils_RecordBrowser_CritsSingle $crits, $record)
 {
     $id = isset($record['id']) ? $record['id'] : '';
     list($field, $subfield) = Utils_RecordBrowser_CritsSingle::parse_subfield($crits->get_field());
     $field = ltrim(Utils_RecordBrowserCommon::get_field_id($field), '_');
     $subfield = ltrim(Utils_RecordBrowserCommon::get_field_id($subfield), '_');
     $r_val = isset($record[$field]) ? $record[$field] : '';
     $crit_value = $crits->get_value();
     $field_definition = $this->get_field_definition($field);
     if ($subfield && $field_definition) {
         $sub_tab = isset($field_definition['ref_table']) ? $field_definition['ref_table'] : false;
         if ($sub_tab) {
             if (is_array($r_val)) {
                 foreach ($r_val as $k => $v) {
                     $r_val[$k] = Utils_RecordBrowserCommon::get_value($sub_tab, $v, $subfield);
                 }
             } else {
                 if ($r_val) {
                     $r_val = Utils_RecordBrowserCommon::get_value($sub_tab, $r_val, $subfield);
                 } else {
                     $r_val = '';
                 }
                 if (substr($r_val, 0, 2) == '__') {
                     $r_val = Utils_RecordBrowserCommon::decode_multi($r_val);
                 }
                 // FIXME need better check
             }
         }
     }
     $k = strtolower($field);
     $record[$k] = $r_val;
     $result = false;
     $transform_date = false;
     if ($k == 'created_on') {
         $transform_date = 'timestamp';
     } elseif ($k == 'edited_on') {
         $details = Utils_RecordBrowserCommon::get_record_info($this->tab, $id);
         $record[$k] = $details['edited_on'];
         $transform_date = 'timestamp';
     } elseif ($field_definition) {
         $type = $field_definition['type'];
         if ($type == 'timestamp') {
             $transform_date = 'timestamp';
         } elseif ($type == 'date') {
             $transform_date = 'date';
         }
     }
     if ($transform_date == 'timestamp' && $crit_value) {
         $crit_value = Base_RegionalSettingsCommon::reg2time($crit_value, false);
         $crit_value = date('Y-m-d H:i:s', $crit_value);
     } else {
         if ($transform_date == 'date' && $crit_value) {
             $crit_value = Base_RegionalSettingsCommon::reg2time($crit_value, false);
             $crit_value = date('Y-m-d', $crit_value);
         }
     }
     $vv = explode('::', $crit_value, 2);
     if (isset($vv[1]) && is_callable($vv)) {
         $result = call_user_func_array($vv, array($this->tab, &$record, $k, $crits));
     } else {
         if (is_array($record[$k])) {
             if ($crit_value) {
                 $result = in_array($crit_value, $record[$k]);
             } else {
                 $result = empty($record[$k]);
             }
             if ($crits->get_operator() == '!=') {
                 $result = !$result;
             }
         } else {
             switch ($crits->get_operator()) {
                 case '>':
                     $result = $record[$k] > $crit_value;
                     break;
                 case '>=':
                     $result = $record[$k] >= $crit_value;
                     break;
                 case '<':
                     $result = $record[$k] < $crit_value;
                     break;
                 case '<=':
                     $result = $record[$k] <= $crit_value;
                     break;
                 case '!=':
                     $result = $record[$k] != $crit_value;
                     break;
                 case '=':
                     $result = $record[$k] == $crit_value;
                     break;
                 case 'LIKE':
                     $result = self::check_like_match($record[$k], $crit_value);
                     break;
                 case 'NOT LIKE':
                     $result = !self::check_like_match($record[$k], $crit_value);
                     break;
             }
         }
     }
     if ($crits->get_negation()) {
         $result = !$result;
     }
     if (!$result) {
         $this->issues[] = $k;
     }
     return $result;
 }
Exemplo n.º 7
0
 protected function hf_timestamp($field, $operator, $value, $raw_sql_val)
 {
     if ($raw_sql_val) {
         return array("{$field} {$operator} {$value}", array());
     }
     if ($operator == DB::like()) {
         if (DB::is_postgresql()) {
             $field .= '::varchar';
         }
         return array("{$field} {$operator} %s", array($value));
     }
     $vals = array();
     if (!$value) {
         $sql = "{$field} IS NULL";
     } else {
         $null_part = $operator == '<' || $operator == '<=' ? " OR {$field} IS NULL" : " AND {$field} IS NOT NULL";
         $value = Base_RegionalSettingsCommon::reg2time($value, false);
         $sql = "({$field} {$operator} %T {$null_part})";
         $vals[] = $value;
     }
     return array($sql, $vals);
 }
Exemplo n.º 8
0
 public function week()
 {
     $theme = $this->pack_module(Base_Theme::module_name());
     Base_ThemeCommon::load_css('Utils_CalendarBusyReport', 'common');
     $theme->assign('next7_href', $this->create_unique_href(array('date' => date('Y-m-d', $this->date + 604800))));
     $theme->assign('next7_label', __('Next week'));
     $theme->assign('next_href', $this->create_unique_href(array('shift_week_day' => 1)));
     $theme->assign('next_label', __('Next day'));
     $theme->assign('today_href', $this->create_unique_href(array('date' => date('Y-m-d'))));
     $theme->assign('today_label', __('Today'));
     $theme->assign('prev_href', $this->create_unique_href(array('shift_week_day' => 0)));
     $theme->assign('prev_label', __('Previous day'));
     $theme->assign('prev7_href', $this->create_unique_href(array('date' => date('Y-m-d', $this->date - 604800))));
     $theme->assign('prev7_label', __('Previous week'));
     $link_text = $this->create_unique_href_js(array('week_date' => '__YEAR__-__MONTH__-__DAY__'));
     $theme->assign('popup_calendar', Utils_PopupCalendarCommon::show('week_selector', $link_text, 'day', $this->settings['first_day_of_week']));
     $week_shift = $this->get_module_variable('week_shift', 0);
     $first_day_of_displayed_week = date('w', $this->date) - $this->settings['first_day_of_week'];
     if ($first_day_of_displayed_week < 0) {
         $first_day_of_displayed_week += 7;
     }
     $diff = $week_shift - $first_day_of_displayed_week;
     $dis_week_from = strtotime(($diff < 0 ? $diff : '+' . $diff) . ' days', $this->date);
     //headers
     $day_headers = array();
     $today = Base_RegionalSettingsCommon::time2reg(null, false, true, true, false);
     if (date('m', $dis_week_from) != date('m', $dis_week_from + 518400)) {
         $second_span_width = date('d', $dis_week_from + 518400);
         $header_month = array('first_span' => array('colspan' => 7 - $second_span_width, 'month' => __date('M', $dis_week_from), 'month_link' => $this->create_unique_href(array('action' => 'switch', 'time' => $dis_week_from, 'tab' => 'Month')), 'year' => date('Y', $dis_week_from), 'year_link' => $this->create_unique_href(array('action' => 'switch', 'time' => $dis_week_from, 'tab' => 'Year'))), 'second_span' => array('colspan' => $second_span_width, 'month' => __date('M', $dis_week_from + 518400), 'month_link' => $this->create_unique_href(array('action' => 'switch', 'time' => $dis_week_from + 518400, 'tab' => 'Month')), 'year' => date('Y', $dis_week_from + 518400), 'year_link' => $this->create_unique_href(array('action' => 'switch', 'time' => $dis_week_from + 518400, 'tab' => 'Year'))));
     } else {
         $header_month = array('first_span' => array('colspan' => 7, 'month' => __date('M', $dis_week_from), 'month_link' => $this->create_unique_href(array('action' => 'switch', 'time' => $dis_week_from, 'tab' => 'Month')), 'year' => date('Y', $dis_week_from), 'year_link' => $this->create_unique_href(array('action' => 'switch', 'time' => $dis_week_from, 'tab' => 'Year'))));
     }
     for ($i = 0; $i < 7; $i++) {
         $that_day = strtotime(date('Y-m-d', strtotime(date('Y-m-d 12:00:00', $dis_week_from)) + 3600 * 24 * $i) . ' ' . date('H:i:s', $dis_week_from));
         $day_headers[] = array('date' => date('d', $that_day) . ' ' . __date('D', $that_day), 'style' => (date('Y-m-d', $that_day) == $today ? 'today' : 'other') . (date('N', $that_day) >= 6 ? '_weekend' : ''), 'link' => $this->create_unique_href(array('action' => 'switch', 'time' => $that_day, 'tab' => 'Day')));
     }
     $theme->assign('header_month', $header_month);
     $theme->assign('day_headers', $day_headers);
     $theme->assign('head_col_width', $this->settings['head_col_width']);
     $report = array();
     //timeline and ids
     $time_ids = array();
     $timeline = array();
     for ($i = 0; $i < 7; $i++) {
         $time_ids[$i] = array();
         $today_t_timeless = strtotime(date('Y-m-d', strtotime(date('Y-m-d 12:00:00', $dis_week_from)) + 3600 * 24 * $i) . ' ' . date('H:i:s', $dis_week_from));
         $today_t = Base_RegionalSettingsCommon::reg2time(date('Y-m-d', $today_t_timeless));
         $today_date = date('Y-m-d', $today_t_timeless);
         $timeline[$today_date] = $this->get_timeline($today_date);
         $prev = null;
         foreach ($timeline[$today_date] as &$v) {
             if ($v['time'] === false) {
                 $time_ids[$i][] = false;
             } elseif (is_string($v['time'])) {
                 $ii = $today_t_timeless . '_' . $v['time'];
                 $time_ids[$i][] = $ii;
                 $report[$ii] = array();
                 //					eval_js('$("UCcell_'.$ii.'").innerHTML="'.$ii.'";'); // *DEBUG*
             } else {
                 $ii = $today_t + $v['time'];
                 $time_ids[$i][] = $ii;
                 $report[$ii] = array();
                 //					eval_js('$("UCcell_'.$ii.'").innerHTML="'.Base_RegionalSettingsCommon::time2reg($ii).'";'); // *DEBUG*
             }
             $prev = $v;
         }
     }
     $navigation_bar_additions = '';
     if (is_callable(array($this->event_module, 'get_navigation_bar_additions'))) {
         $event_module_instance = $this->init_module($this->event_module);
         $navigation_bar_additions = call_user_func(array($event_module_instance, 'get_navigation_bar_additions'), '', '');
     }
     $theme->assign('navigation_bar_additions', $navigation_bar_additions);
     $theme->assign('time_ids', $time_ids);
     $theme->assign('timeline', reset($timeline));
     $theme->assign('week_view_label', __('Week calendar'));
     //data
     //$dis_week_from = Base_RegionalSettingsCommon::reg2time($dis_week_from);
     //$dis_week_to = $dis_week_from+7*86400-1;
     $dis_week_to = date('Y-m-d', $dis_week_from + 7.5 * 86400);
     $dis_week_from = date('Y-m-d', $dis_week_from);
     $ret = $this->get_events($dis_week_from, $dis_week_to);
     $this->displayed_events = array('start' => $dis_week_from, 'end' => $dis_week_to, 'events' => $ret);
     $custom_keys = $this->settings['custom_rows'];
     $busy_labels = $this->settings['busy_labels'];
     foreach ($ret as $k => $ev) {
         if (!isset($ev['busy_label'])) {
             continue;
         }
         if (!is_array($ev['busy_label'])) {
             $ev['busy_label'] = array($ev['busy_label']);
         }
         ob_start();
         Utils_CalendarBusyReportCommon::print_event($ev);
         $ev_print = ob_get_clean();
         $day_start = explode(':', $this->settings['start_day']);
         $day_start = ($day_start[0] * 60 + $day_start[1]) * 60;
         if (!isset($ev['start'])) {
             $diff = 1;
         } else {
             $diff = ($day_start - ($ev['start'] - $today_t)) / 3600;
         }
         $dur = ceil($ev['duration'] / (strtotime($this->settings['interval']) - strtotime('0:00')));
         if (isset($ev['timeless']) && $ev['timeless']) {
             if (!isset($ev['custom_row_key'])) {
                 $ev['custom_row_key'] = 'timeless';
             }
             $today_t_timeless = strtotime($ev['timeless']);
             if (isset($custom_keys[$ev['custom_row_key']])) {
                 $dest_id = $today_t_timeless . '_' . $ev['custom_row_key'];
                 if (isset($report[$dest_id])) {
                     foreach ($ev['busy_label'] as $busy_label) {
                         if (!isset($busy_labels[$busy_label])) {
                             $busy_labels[$busy_label] = $busy_label;
                         }
                         if (!isset($report[$dest_id][$busy_label])) {
                             $report[$dest_id][$busy_label] = '';
                         }
                         $report[$dest_id][$busy_label] .= $ev_print;
                     }
                 }
             } else {
                 //					trigger_error('Invalid custom_row_key:'.$ev['custom_row_key'],E_USER_ERROR);
                 continue;
             }
         } else {
             $today_t = Base_RegionalSettingsCommon::time2reg($ev['start'], true, true, true, false);
             $today_date = date('Y-m-d', strtotime($today_t));
             $today_t = strtotime(date('Y-m-d H:i:s', Base_RegionalSettingsCommon::reg2time($today_date)));
             $ev_start = $ev['start'] - $today_t;
             if (!isset($timeline[$today_date])) {
                 continue;
             }
             $ct = count($timeline[$today_date]);
             for ($i = 1, $j = 2; $j < $ct; $i++, $j++) {
                 while ($timeline[$today_date][$i]['time'] === false) {
                     $i++;
                 }
                 while (($timeline[$today_date][$j]['time'] === false || $i >= $j) && $j < $ct) {
                     $j++;
                 }
                 if ($j == $ct) {
                     break;
                 }
                 if ($timeline[$today_date][$i]['time'] <= $ev_start && $ev_start < $timeline[$today_date][$j]['time']) {
                     break;
                 }
             }
             for ($k = $i; $k < $i + $dur; $k++) {
                 $dest_id = $today_t + $timeline[$today_date][$k]['time'];
                 if (isset($report[$dest_id])) {
                     foreach ($ev['busy_label'] as $busy_label) {
                         if (!isset($busy_labels[$busy_label])) {
                             $busy_labels[$busy_label] = $busy_label;
                         }
                         if (!isset($report[$dest_id][$busy_label])) {
                             $report[$dest_id][$busy_label] = '';
                         }
                         $report[$dest_id][$busy_label] .= $ev_print;
                     }
                 }
             }
         }
     }
     $theme->assign('report', $report);
     $theme->assign('busy_labels', $busy_labels);
     //ok, display
     $theme->display('week');
     if ($this->custom_new_event_href_js !== null) {
         $jshref = call_user_func($this->custom_new_event_href_js, '__TIME__', '__TIMELESS__', '__OBJECT__');
     } else {
         $jshref = $this->create_unique_href_js(array('action' => 'add', 'time' => '__TIME__', 'timeless' => '__TIMELESS__', 'object' => '__OBJECT__'));
     }
     eval_js('Utils_CalendarBusyReport.activate_dclick(\'' . Epesi::escapeJS($jshref, false) . '\')');
 }
Exemplo n.º 9
0
	public function month() {
		$theme = $this->pack_module('Base/Theme');
		Base_ThemeCommon::load_css('Utils_Calendar', 'common');

		$theme->assign('trash_label', __('Drag and drop to delete'));
		$theme->assign('nextyear_href', $this->create_unique_href(array('date'=>(date('Y',$this->date)+1).date('-m-d',$this->date))));
		$theme->assign('nextyear_label',__('Next year'));
		$theme->assign('nextmonth_href', $this->create_unique_href(array('date'=>date('Y-m-d',$this->date+86400*date('t',$this->date)))));
		$theme->assign('nextmonth_label',__('Next month'));
		$theme->assign('today_href', $this->create_unique_href(array('date'=>date('Y-m-d'))));
		$theme->assign('today_label', __('Today'));
		$theme->assign('prevmonth_href', $this->create_unique_href(array('date'=>date('Y-m-d',$this->date-86400*date('t',$this->date-86400*(date('d', $this->date)+1))))));
		$theme->assign('prevmonth_label', __('Previous month'));
		$theme->assign('prevyear_href', $this->create_unique_href(array('date'=>(date('Y',$this->date)-1).date('-m-d',$this->date))));
		$theme->assign('prevyear_label', __('Previous year'));
		$theme->assign('info', __('Double&nbsp;click&nbsp;on&nbsp;cell&nbsp;to&nbsp;add&nbsp;event'));

		if ($this->isset_unique_href_variable('date'))
			$this->set_date($this->get_unique_href_variable('date'));

		$link_text = $this->create_unique_href_js(array('date'=>'__YEAR__-__MONTH__-__DAY__'));
		$theme->assign('popup_calendar', Utils_PopupCalendarCommon::show('week_selector', $link_text,'month'));

		$month = $this->month_array($this->date);
		$dnd = array();
		foreach($month as & $week) {
			foreach($week['days'] as & $cday) {
				$cday['id'] = 'UCcell_'.$cday['time'];
				$dnd[] = $cday['time'];
			}
		}

		$day_headers = array();
		$day = strtotime('Sun');
		$day = strtotime('+'.Utils_PopupCalendarCommon::get_first_day_of_week().' days', $day);
		for ($i=0; $i<7; $i++) {
			$day_headers[] = array('class'=>(date('N',$day)>=6?'weekend_day_header':'day_header'), 'label'=>__date('D', $day));
			$day = strtotime('+1 day', $day);
		}

		$theme->assign('month_view_label', __('Month calendar'));

		$theme->assign('day_headers', $day_headers);
		$theme->assign('month', $month);
		$theme->assign('month_label', __date('F', $this->date));
		$theme->assign('year_label', date('Y', $this->date));
		$theme->assign('year_link', $this->create_unique_href(array('time'=>$this->date, 'tab'=>'Year','action'=>'switch')));
		$theme->assign('trash_id','UCtrash');

		$navigation_bar_additions = '';
		if (is_callable(array($this->event_module, 'get_navigation_bar_additions'))) {
			$event_module_instance = $this->init_module($this->event_module);
			$navigation_bar_additions = call_user_func(array($event_module_instance,'get_navigation_bar_additions'), '', '');
		}
		$theme->assign('navigation_bar_additions', $navigation_bar_additions);

		$theme->display('month');


		//data
		$start_t = date('Y-m-d',$month[0]['days'][0]['time']);
		//$start_t = Base_RegionalSettingsCommon::reg2time($start_t);
		$end_t = date('Y-m-d',$month[count($month)-1]['days'][6]['time']+86400);
		//$end_t = Base_RegionalSettingsCommon::reg2time($end_t);
		$ret = $this->get_events($start_t,$end_t);
		$this->displayed_events = array('start'=>$start_t, 'end'=>$end_t,'events'=>$ret);
		$this->js('Utils_Calendar.page_type=\'month\'');
		$ev_out = 'function() {';
		foreach($ret as $ev) {
			$this->print_event($ev);
			if(!isset($ev['timeless']) || !$ev['timeless'])
				$ev_start = strtotime(Base_RegionalSettingsCommon::time2reg($ev['start'],true,true,true,false));
			else
				$ev_start = strtotime($ev['timeless']);
			$ev_start = Base_RegionalSettingsCommon::reg2time(date('Y-m-d',$ev_start).' 00:00:00');
			$dest_id = 'UCcell_'.$ev_start;
			$ev_out .= 'Utils_Calendar.add_event(\''.Epesi::escapeJS($dest_id,false).'\', \''.$ev['id'].'\', '.((!isset($ev['draggable']) || $ev['draggable']==true)?1:0).', 1);';
		}
		$ev_out.='}';
		$this->js('Utils_Calendar.add_events_f = '.$ev_out);
		$this->js('Utils_Calendar.add_events("Utils%2FCalendar%2Fmonth.css")');
		if ($this->custom_new_event_href_js!==null)
			$jshref = call_user_func($this->custom_new_event_href_js, '__TIME__', '__TIMELESS__');
		else
			$jshref = $this->create_unique_href_js(array('action'=>'add','time'=>'__TIME__','timeless'=>'__TIMELESS__'));
		eval_js('Utils_Calendar.activate_dnd(\''.Epesi::escapeJS(json_encode($dnd),false).'\','.
				'\''.Epesi::escapeJS($jshref,false).'\','.
				'\''.Epesi::escapeJS($this->get_path(),false).'\','.
				'\''.CID.'\')');
	}
Exemplo n.º 10
0
 function setValue($value)
 {
     $this->_createElementsIfNotExist();
     if (is_array($value)) {
         if ($this->_options['date']) {
             if ($value['__datepicker'] !== '') {
                 $value['__datepicker'] = strftime('%Y-%m-%d', Base_RegionalSettingsCommon::reg2time($value['__datepicker'], false));
             }
             $this->_elements['__datepicker']->setValue($value['__datepicker']);
         }
         $this->_elements['__date']->setValue(isset($value['__date']) ? $value['__date'] : '');
     } else {
         if (!$value) {
             return;
         }
         if (!is_numeric($value)) {
             $value = Base_RegionalSettingsCommon::reg2time($value, false);
         }
         $value -= date('i', $value) % $this->_options['optionIncrement']['i'] * 60;
         //tz trans begin
         if (!isset($this->_options['regional_settings_tz']) || $this->_options['regional_settings_tz'] == true) {
             $value = Base_RegionalSettingsCommon::time2reg($value, true, true, true, false);
         }
         //tz trans end
         foreach ($this->_elements as &$v) {
             $v->setValue($value);
         }
     }
 }
Exemplo n.º 11
0
	public function edit($row) {
		if($this->is_back())
			$this->pop_box0();

		$f = $this->init_module('Libs/QuickForm');
		
		if($row) {
			$a = Base_RegionalSettingsCommon::time2reg($row['alert_on'],true,true,true,false);
			$f->setDefaults(array_merge($row,array('alert_date'=>$a,'alert_time'=>$a)));
		} else {
			$tt = $this->def_date;
			$tt = $tt-$tt%300;
			$f->setDefaults(array('alert_date'=>$tt,'alert_time'=>$tt));
		}

		$f->addElement('textarea', 'message', __('Message'));
		$f->addElement('datepicker', 'alert_date', __('Alert date'));
		$lang_code = Base_LangCommon::get_lang_code();
		$time_format = Base_RegionalSettingsCommon::time_12h()?'h:i a':'H:i';
		$f->addElement('date', 'alert_time', __('Alert time'), array('format'=>$time_format, 'optionIncrement'  => array('i' => 5), 'language'=>$lang_code));
		
		if(is_array($this->users)) {
			foreach($this->users as $k=>$r) {
				if(!Base_User_SettingsCommon::get($this->get_type(),'allow_other',$k) && Acl::get_user()!=$k)
					unset($this->users[$k]);
			}
			$f->addElement('multiselect', 'users', __('Assigned users'), $this->users);
			$f->addRule('users', __('At least one user must be assigned to an alarm.'), 'required');
			$f->setDefaults(array('users'=>array_keys($this->users)));
		}

		if($f->validate()) {
			$ret = $f->exportValues();
			if($row)
				$ret = array_merge($row,$ret);
			if(Base_RegionalSettingsCommon::time_12h())
				$ret['alert_on'] = strtotime($ret['alert_date'])+($ret['alert_time']['h']%12)*3600+(($ret['alert_time']['a']=='pm')?(3600*12):0)+$ret['alert_time']['i']*60;
			else
				$ret['alert_on'] = strtotime($ret['alert_date'])+$ret['alert_time']['H']*3600+$ret['alert_time']['i']*60;
			$ret['alert_on'] = Base_RegionalSettingsCommon::reg2time(date('Y-m-d H:i:s',$ret['alert_on']));
			if($row) {
				DB::Execute('UPDATE utils_messenger_message SET message=%s,alert_on=%T WHERE page_id=\''.$this->mid.'\' AND id=%d',array($ret['message'],$ret['alert_on'],$row['id']));
				$id = $row['id'];
				DB::Execute('DELETE FROM utils_messenger_users WHERE message_id=%d',array($id));
			} else {
				DB::Execute('INSERT INTO utils_messenger_message(page_id,parent_module,message,callback_method,callback_args,created_on,created_by,alert_on) VALUES(%s,%s,%s,%s,%s,%T,%d,%T)',array($this->mid,$this->parent_type,$ret['message'],serialize($this->callback_method),serialize($this->callback_args),time(),Acl::get_user(),$ret['alert_on']));
				$id = DB::Insert_ID('utils_messenger_message','id');
			}
			if(is_array($this->users)) {
				foreach($ret['users'] as $r)
					DB::Execute('INSERT INTO utils_messenger_users(message_id,user_login_id) VALUES (%d,%d)',array($id,$r));
			} else
				DB::Execute('INSERT INTO utils_messenger_users(message_id,user_login_id) VALUES (%d,%d)',array($id,$this->users));
			$this->pop_box0();
		}
		
		Base_ActionBarCommon::add('save',__('Save'),$f->get_submit_form_href());
		Base_ActionBarCommon::add('back',__('Back'),$this->create_back_href());
		$f->display_as_column();
	}
Exemplo n.º 12
0
 function reg2time($value)
 {
     if (!$value) {
         return '';
     }
     return strftime('%Y-%m-%d', Base_RegionalSettingsCommon::reg2time($value, false));
 }