action = $action; if ($cache) $_SESSION["_session_cache_status"]=$cache; if (!$_SESSION["_session_cache_status"]) !$_SESSION["_session_cache_status"]="yes"; $this->do_session_cache=$_SESSION["_session_cache_status"]; $this->do_stats(); } ##################################################################### function get_action() { return $this->action; } ##################################################################### function set_pid($pid) { return $this->pid = $pid; } ##################################################################### function get_pid() { return $this->pid; } ##################################################################### function get_mark_id() { return $this->mark_id; } ##################################################################### function set_mark($id=0,$n=1) { if (!$id) $id = $this->id; if ($this->id==$this->start_id) $this->mark_id = $this->id; else $this->mark_id = $this->find_mark($this->id,$n); if ($this->mark_id) $this->mark = $this->get_item($this->mark_id); return $this->mark; } ##################################################################### var $use_script_file= true; var $use_calendar_file = false; function draw_html_header() { header("Content-type: text/html;charset=utf-8"); $this->dont_cache(); echo "\n\n"; echo "\n"; echo "\n"; echo "\n".($this->title ? $this->title : 'sem nome')."\n"; if ($this->add_head) echo $this->add_head."\n"; echo $this->css."\n"; if ($this->use_script_file) echo "\n"; if ($this->use_calendar_file) echo "\n"; echo "\n"; echo "\n"; } function draw_html_footer() { echo ""; } ##################################################################### var $p_mark_id; var $p_mark; function get_p_mark() { $a_path = explode(",",$this->obj_nav->get_field(C_INPT_PATH)); $this->p_mark_id = $a_path[1]; if ($this->p_mark_id) { $this->p_mark = $this->get_item($this->p_mark_id); } } ##################################################################### function draw_nav_tree($start_id,$id,$home_txt="Home",$sep=">") { echo "index_file."?id=".$start_id."\">$home_txt"; $this->build_nav($start_id,$id,$sep); } function build_nav($start_id,$id,$sep) { $sql = "SELECT ID,TITLE,PARENT_ID FROM RELATIONS R,CONTENT C WHERE C.ID = R.CHILD_ID AND R.CHILD_ID = $id"; $rs = $this->obj_mydb->query($sql); $row = $this->obj_mydb->fetch($rs); if ($start_id!=$id) { $this->build_nav($start_id,$row["PARENT_ID"],$sep); echo " $sep "; echo "index_file."?id=".$row["ID"]."\">".$row["TITLE"].""; } return; } ##################################################################### ##################################################################### function login_screen() { if ($this->pid) $redir=$this->pid; echo ""; exit; } ###################################################################################################### function create_content() { $second_time = $this->obj_nav->get_field(C_INPT_SECONDTIME); $campo = $this->obj_templ->get_campo(); $mode = $this->obj_nav->get_field(C_INPT_MODE); $this->obj_templ->retrieve_fields(); $this->obj_templ->set_special_args_defaults(); if (!$this->obj_nav->get_field(C_INPT_MODE)) { if ($this->item["EXPAND"]) $mode = C_MODE_NO; else $mode = C_MODE_SHOW; //$this->obj_nav->obj_request->set_field(C_INPT_MODE,$mode); //$this->obj_nav->set_field(C_INPT_MODE,$mode); } if($mode==C_MODE_NEW || $mode==C_MODE_NEW_FOLDER) { if($mode==C_MODE_NEW_FOLDER) $this->obj_templ->set_doc_type(C_FOLDER); if($second_time == 1) $this->obj_templ->retrieve_data_by_http_vars($this->http_vars); $obj_form =& $this->obj_templ->get_form(); if($obj_form->on_new()) { /// Prepara Evento $this->obj_templ->parse_events(); // evento if($this->obj_templ->call_event(C_ON_NEW)) { $this->obj_templ->desenha(C_DESENHA_EDIT); } } } elseif($mode==C_MODE_SHOW) { $this->obj_templ->retrieve_data_by_id($this->prepare_id()); $obj_form =& $this->obj_templ->get_form(); if($obj_form->on_show()) { /// Prepara Evento $this->obj_templ->parse_events(); // evento if($this->obj_templ->call_event(C_ON_SHOW)) { $this->obj_templ->desenha(C_DESENHA_SHOW); } } } elseif($mode==C_MODE_EDIT) { if($second_time == 1) $this->obj_templ->retrieve_data_by_http_vars($this->http_vars); else $this->obj_templ->retrieve_data_by_id($this->prepare_id()); $obj_form =& $this->obj_templ->get_form(); if($obj_form->on_edit()) { /// Prepara Evento $this->obj_templ->parse_events(); // evento if($this->obj_templ->call_event(C_ON_EDIT)) { $this->obj_templ->desenha(C_DESENHA_EDIT); } } } elseif($mode==C_MODE_NO || !$this->obj_nav->get_field(C_INPT_MODE) ) { $this->obj_templ->lista(); } } ###################################################################################################### function do_link($text,$id,$path="",$args="",$class="",$target="") { $obj_nav = new Navigator($this->obj_mydb,$this->http_vars); $obj_nav->set_file( $this->index_file ); if ($class) { $class1 = "class=\"".$class."\"";} if ($target) { $target1 = " target=\"".$target."\"";} if ($path=="root") { $obj_nav->clear_all(); $obj_nav->arr_vars[C_INPT_MODE]=""; $obj_nav->down_mode=""; $obj_nav->arr_vars[C_INPT_PATH]=""; $obj_nav->down_path= ",$id"; $obj_nav->down_id=$id; } else { if ($path) { $obj_nav->down_path= ",".$path; } else { $obj_nav->down_path=$obj_nav->arr_vars[C_INPT_PATH].",$id"; } $obj_nav->down_id=$id; } $lk = $obj_nav->file_to."?".$obj_nav->to_get(C_GO_DOWN); echo "".$text.""; } ###################################################################################################### function do_go_back($text,$class="",$args="",$stay_in_id=false) { $obj_nav = new Navigator($this->obj_mydb,$this->http_vars); $obj_nav->set_file( $this->index_file ); if ($class) { $class1 = "class=\"".$class."\"";} if ($target) { $target1 = " target=\"".$target."\"";} if (!$stay_in_id) { $arr = explode(",",$obj_nav->up_path); $tmp_id = $arr[count($arr)-1]; if(count($arr)>1) { $obj_nav->up_path=""; for($i=1;$i<(count($arr)-1);$i++) $obj_nav->up_path .=",".$arr[$i]; } $arr = explode(",",$obj_nav->up_path); $obj_nav->up_id = $arr[(count($arr)-1)]; if (!$obj_nav->up_id) $obj_nav->up_id =$tmp_id; } else { $obj_nav->up_id = $this->id; } $obj_nav->arr_vars[C_INPT_MODE]=""; $obj_nav->up_mode=""; $lk = $obj_nav->file_to."?".$obj_nav->to_get(C_GO_UP); echo "".$text.""; } ###################################################################################################### function generate_user_name($prefix="",$n_digit=4) { ### novo utilizador #### $sql = "SELECT MAX(ROW_ID) AS M FROM T_USERS"; $rs = $this->obj_mydb->query($sql); $row = $this->obj_mydb->fetch($rs); $seq = $row["M"]+1; $ret = $prefix.sprintf("%0".$n_digit."d",$seq); return $ret; } ###################################################################################################### function generate_password($n_digits=6) { #### vamos atribuir uma password #### 48-57 numeros #### 65-90 alfa caps #### 97-122 alfa small srand ((double) microtime() * 10000000); for ($i=0;$i<$n_digits;$i++) { srand ((double) microtime() * 10000000); ## seleccionar se � numero,alfa caps ou alfa small $n = rand(1,3); srand ((double) microtime() * 10000000); if ($n==1){$c = rand(48,57);} if ($n==2){$c = rand(65,90);} if ($n==3){$c = rand(97,122);} $ret.=chr($c); } return $ret; } ###################################################################################################### function draw_ticket_box($txt,$w=300,$h=60,$speed=1) { ?> draw_form(); } function desenha_edit() { $this->desenha_form_edit(); } function get_value($field,$obj_templ=0) { if (!$obj_templ) $obj_templ =& $this->obj_templ; return $obj_templ->get_show_valor($field); } function get_arg_value($field,$obj_templ=0) { if (!$obj_templ) $obj_templ = $this->obj_templ; return $obj_templ->obj_navigator->get_field($field); } function get_description($field,$obj_templ=0) { if (!$obj_templ) $obj_templ = $this->obj_templ; return $obj_templ->arr_fields[$field]->get_descricao(); } function desenha_form_edit() { $this->obj_templ->retrieve_inputs(); $this->prepare_commit(); $this->start_form(); $this->form_mode = C_DESENHA_EDIT; $this->draw_form(); $this->edit_scripts(); if($this->do_recalc) $this->call_recalc(); $this->end_form($this->obj_templ->get_step_var()); } function draw_form() { $this->id = $this->obj_templ->obj_frontend->id; $this->mark_id = $this->obj_templ->obj_frontend->mark_id; $this->item = $this->obj_templ->obj_frontend->item; $this->mode = $this->obj_templ->obj_navigator->get_field(C_INPT_MODE); $this->build(); } function get_search_value($field) { return $this->obj_templ->obj_navigator->get_search_field($field); } function get_external_item($id) { return $this->obj_templ->obj_frontend->get_item($id); } } function navigation_do_link(&$obj_nav,$current_page,$page_count) { $obj_lk = $obj_nav->get_new_link(); if($obj_lk->prepare_page($current_page,$page_count)) { return $obj_lk->to_link(); } return ""; } require_once C_PATH."/class/listagens/AListagem.php"; class SWPList extends AListagem { var $arr_data; // guarda o show_valor var $arr_values; // guarda o valor; var $curr_record; var $page_size; var $id; var $mark_id; var $item; var $mode; var $show_sql = false; function draw() { $this->link_navigation_function = "navigation_do_link"; $this->id = $this->obj_template->obj_frontend->id; $this->mark_id = $this->obj_template->obj_frontend->mark_id; $this->item = $this->obj_template->obj_frontend->item; $this->mode = $this->obj_template->obj_navigator->get_field(C_INPT_MODE); $this->http_vars = $this->obj_template->obj_navigator->get_http_vars(); $this->build(); } function set_page_size($page_size) { $this->obj_navigator->obj_request->set_field(C_INPT_PAGE_SIZE,$page_size); $this->page_size=$page_size; } function get_records_by_page($valores = false,$echo=false) { list($rs,$this->page_count,$this->total_records) = $this->obj_template->do_select($this->use_limit,$this->filter,$this->cond,$this->select_order,$echo); while($row = $this->obj_mydb->fetch($rs)) { $item = $this->obj_mydb->fast_get_item($row["ID"]); $this->obj_template->retrieve_data_by_row($row); $this->arr_data[] = @array_merge($this->obj_template->get_data_array($valores),array("TEMPLATE_ID" => $item["TEMPLATE_ID"], "PARENT_ID" => $item["PARENT_ID"], "EXPAND" => $item["EXPAND"], "CHILD_TEMPLATE_ID" => $item["CHILD_TEMPLATE_ID"])); $this->arr_values[] = @array_merge($row,array("TEMPLATE_ID" => $item["TEMPLATE_ID"], "PARENT_ID" => $item["PARENT_ID"], "EXPAND" => $item["EXPAND"], "CHILD_TEMPLATE_ID" => $item["CHILD_TEMPLATE_ID"])); } if ($this->page_size>count($this->arr_data)) $this->page_size = count($this->arr_data); } function get_image($field) { $img = $this->get_field($field); return common::get_image($img); } function image_exists($field) { if ($this->get_field($field)) return true; else return false; } function get_row($curr_record) { $this->curr_record = $curr_record; $this->obj_template->retrieve_data_by_row($this->arr_data[$this->curr_record]); } function get_search_value($field) { return $this->obj_template->obj_navigator->get_search_field($field); } function get_arg_value($field) { return $this->obj_template->obj_navigator->get_field($field); } function get_value($field) { return $this->obj_template->get_show_valor($field); } function draw_page_navigator($no_pages_to_show=20) { $this->draw_navigation($this->page_count,$no_pages_to_show); } function do_url($id="") { if (!$id) $id = $this->arr_data[$this->curr_record]["ID"]; return $this->index_file."?id=".$id; } function get_all_records($valores = false) { list($rs,$this->page_count,$this->total_records) = $this->obj_template->do_select(false,$this->filter,$this->cond,$this->select_order,$this->show_sql); while($row = $this->obj_mydb->fetch($rs)) { $item = $this->obj_mydb->fast_get_item($row["ID"]); $this->obj_template->retrieve_data_by_row($row); $this->arr_data[] = array_merge($this->obj_template->get_data_array($valores),array("TEMPLATE_ID" => $item["TEMPLATE_ID"], "PARENT_ID" => $item["PARENT_ID"], "EXPAND" => $item["EXPAND"], "CHILD_TEMPLATE_ID" => $item["CHILD_TEMPLATE_ID"])); $this->arr_values[] = array_merge($row,array("TEMPLATE_ID" => $item["TEMPLATE_ID"], "PARENT_ID" => $item["PARENT_ID"], "EXPAND" => $item["EXPAND"], "CHILD_TEMPLATE_ID" => $item["CHILD_TEMPLATE_ID"])); } return $this->arr_data; } function set_search_cond() { $this->search_cond = ""; $this->get_search_cond_template(); $this->obj_template->set_cond($this->search_cond); } function prepare_search() { $this->get_search_fields(); } ########################################################################### ### SEARCH AVANCADA function draw_search_avancada() { echo ""; $this->start_form_pesq(); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo ""; echo "\n"; $this->end_form_pesq($this->merge_arr_fields_search()); echo "
\n"; $this->desenha_search_avancada(); echo "
\n"; echo "\n"; echo "
\n"; } ########################################################################### ### SEARCH function draw_search() { if(count($this->arr_fields_search_avancada)>0) { $obj_lk = $this->obj_navigator->get_new_link(); $obj_lk->set_search_field("_SEARCH_DONE",""); echo "to_link()."\">".C_TEXT_PESQUISA_AVANCADA."
"; } if(count($this->arr_fields_search)>0) { echo ""; $this->start_form_pesq(); echo "\n"; echo ""; $this->draw_hidden_search($this->arr_fields_search_avancada_only()); $this->end_form_pesq($this->merge_arr_fields_search()); echo "
\n"; $this->desenha_search(); echo "\n"; echo "\n"; echo "
\n"; } } function desenha_search_avancada() { $obj_lk = $this->obj_navigator->get_new_link(); $obj_lk->set_field(C_INPT_SEARCH,"_SEARCH_DONE=1"); $lk = $obj_lk->to_link(); echo "
"; echo ""; echo "Efectue a sua busca de registos baseada nos seguintes campos,
ou então clique aqui para os listar todos os registos: "; echo "
"; echo "

"; echo "
"; common::ftext("pesquisa","navy","16pt",true); echo "

"; echo "
"; echo ""; $arr = $this->merge_arr_fields_search(); for($i=0;$iget_new_input(); echo ""; echo "\n"; echo ""; echo ""; next($arr); } echo "
".$obj_inpt->get_descricao()."\n"; $obj_inpt->desenha_pesquisa(); echo "
"; } function desenha_search() { echo ""; echo ""; $arr = $this->arr_fields_search; for($i=0;$iget_new_input(); echo "\n"; echo ""; next($arr); } echo ""; echo "
".$obj_inpt->get_descricao()."\n"; $obj_inpt->desenha_pesquisa(); echo "
"; } function build() { } } ?>