[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 <?php 2 /**************************************************************************\ 3 * eGroupWare SiteMgr - Web Content Management * 4 * http://www.egroupware.org * 5 * -------------------------------------------- * 6 * This program is free software; you can redistribute it and/or modify it * 7 * under the terms of the GNU General Public License as published by the * 8 * Free Software Foundation; either version 2 of the License, or (at your * 9 * option) any later version. * 10 \**************************************************************************/ 11 12 /* $Id: class.Pages_UI.inc.php 20295 2006-02-15 12:31:25Z $ */ 13 14 class Pages_UI 15 { 16 var $common_ui; 17 var $t; 18 var $pagebo; 19 var $categorybo; 20 var $pageso; // page class 21 var $sitelanguages; 22 23 var $public_functions=array 24 ( 25 'edit' => True, 26 'delete' => True, 27 ); 28 29 function Pages_UI() 30 { 31 $this->common_ui =& CreateObject('sitemgr.Common_UI',True); 32 $this->t = $GLOBALS['egw']->template; 33 $this->pagebo = &$GLOBALS['Common_BO']->pages; 34 $this->categorybo = &$GLOBALS['Common_BO']->cats; 35 $this->sitelanguages = $GLOBALS['Common_BO']->sites->current_site['sitelanguages']; 36 } 37 38 function delete($page_id = 0) 39 { 40 if (!$page_id) $page_id = $_GET['page_id']; 41 $this->pagebo->removePage($page_id); 42 if ($_GET['menuaction'] == 'sitemgr.Outline_UI.manage') 43 { 44 $GLOBALS['egw']->redirect_link('/index.php','menuaction=sitemgr.Outline_UI.manage'); 45 } 46 echo '<html><head></head><body onload="opener.location.reload();self.close()"></body></html>'; 47 } 48 49 function edit() 50 { 51 $GLOBALS['Common_BO']->globalize(array( 52 'inputhidden','inputsort','inputstate', 53 'inputtitle','inputname','inputsubtitle','savelanguage','inputpageid','inputcategoryid')); 54 55 global $inputpageid,$inputcategoryid, $inputhidden, $inputstate; 56 global $inputsort,$inputtitle, $inputname, $inputsubtitle; 57 global $savelanguage; 58 59 $page_id = $inputpageid ? $inputpageid : $_GET['page_id']; 60 $category_id = $inputcategoryid ? $inputcategoryid : $_GET['cat_id']; 61 62 $GLOBALS['egw']->common->egw_header(); 63 $this->t->set_file('EditPage', 'edit_page.tpl'); 64 65 if ($_POST['btnDelete']) 66 { 67 return $this->delete($page_id); 68 } 69 $focus_reload_close = 'window.focus();'; 70 71 if($_POST['btnSave'] || $_POST['btnApply']) 72 { 73 if ($inputname == '' || $inputtitle == '') 74 { 75 $error = lang('You failed to fill in one or more required fields.'); 76 $this->t->set_var('message',$error); 77 } 78 else 79 { 80 if(!$page_id) 81 { 82 $page_id = $this->pagebo->addPage($inputcategoryid); 83 if(!$page_id) 84 { 85 // echo lang("You don't have permission to write in the category"); 86 $GLOBALS['egw']->redirect($GLOBALS['egw']->link('/index.php','menuaction=sitemgr.Outline_UI.manage')); 87 return; 88 } 89 } 90 $page->id = $page_id; 91 $page->title = $inputtitle; 92 $page->name = $inputname; 93 $page->subtitle = $inputsubtitle; 94 $page->sort_order = $inputsort; 95 $page->cat_id = $category_id; 96 $page->hidden = $inputhidden ? 1: 0; 97 $page->state = $inputstate; 98 $savelanguage = $savelanguage ? $savelanguage : ($GLOBALS['sitemgr_info']['userlang']?$GLOBALS['sitemgr_info']['userlang']:$this->sitelanguages[0]); 99 $save_msg = $this->pagebo->savePageInfo($page,$savelanguage); 100 if (!is_string($save_msg)) 101 { 102 $this->t->set_var('message',lang('Page saved')); 103 104 $focus_reload_close = 'opener.location.reload();'; 105 if ($_POST['btnSave']) 106 { 107 $focus_reload_close .= 'self.close();'; 108 } 109 } 110 else 111 { 112 $this->t->set_var('message',$save_msg); 113 } 114 } 115 } 116 117 $openlanguage = $savelanguage ? $savelanguage : 118 ($GLOBALS['sitemgr_info']['userlang']?$GLOBALS['sitemgr_info']['userlang']: 119 $this->sitelanguages[0]); 120 121 if($page_id) 122 { 123 $page = $this->pagebo->getPage($page_id,$openlanguage,True); 124 if (!$GLOBALS['Common_BO']->acl->can_write_category($page->cat_id)) 125 { 126 $GLOBALS['egw']->redirect($GLOBALS['egw']->link('/index.php','menuaction=sitemgr.Outline_UI.manage')); 127 return; 128 } 129 $this->t->set_var(array( 130 'add_edit' => lang('Edit Page'), 131 'catselect' => $this->getParentOptions($page->cat_id) 132 )); 133 } 134 else 135 { 136 $this->t->set_var(array( 137 'add_edit' => lang('Add Page'), 138 'catselect' => $this->getParentOptions($category_id) 139 )); 140 } 141 142 if (count($this->sitelanguages) > 1) 143 { 144 $select = lang('as') . ' <select name="savelanguage">'; 145 146 foreach ($this->sitelanguages as $lang) 147 { 148 $selected= ''; 149 if ($lang == $openlanguage) 150 { 151 $selected = 'selected="selected" '; 152 } 153 $select .= '<option ' . $selected .'value="' . $lang . '">'. $GLOBALS['Common_BO']->getlangname($lang) . '</option>'; 154 } 155 $select .= '</select> '; 156 $this->t->set_var('savelang',$select); 157 } 158 159 $link_data['page_id'] = $page_id; 160 $link_data['category_id'] = $inputcategoryid; 161 $this->t->set_var(array( 162 'action_url' => $GLOBALS['egw']->link('/index.php',array('menuaction'=>'sitemgr.Pages_UI.edit')), 163 'focus_reload_close' => $focus_reload_close, 164 'title' =>$page->title, 165 'subtitle' => $page->subtitle, 166 'name'=>$page->name, 167 'sort_order'=>$page->sort_order, 168 'page_id'=>$page_id, 169 'hidden' => $page->hidden ? 'CHECKED' : '', 170 'stateselect' => $GLOBALS['Common_BO']->inputstateselect($page->state), 171 'lang_name' => lang('Name'), 172 'lang_title' => lang('Title'), 173 'lang_subtitle' => lang('Subtitle'), 174 'lang_sort' => lang('Sort order'), 175 'lang_category' => lang('Category'), 176 'lang_hide' => lang('Check to hide from condensed site index.'), 177 'lang_required' => lang('Required Fields'), 178 'lang_apply' => lang('Apply'), 179 'lang_cancel' => lang('Cancel'), 180 'lang_reload' => lang('Reload'), 181 'lang_save' => lang('Save'), 182 'lang_delete' => lang('Delete'), 183 'lang_confirm' => lang('Do you realy want to delete this page?'), 184 'lang_state' => lang('State'), 185 'lang_nameinfo' => lang('(Do not put spaces or punctuation in the Name field.)'), 186 )); 187 188 $this->t->pfp('out','EditPage'); 189 } 190 191 192 function getParentOptions($selected_id=0) 193 { 194 $option_list=$this->categorybo->getCategoryOptionList(); 195 if (!$selected_id) 196 { 197 $selected=' SELECTED'; 198 } 199 $retval="\n".'<SELECT NAME="inputcategoryid">'."\n"; 200 foreach($option_list as $option) 201 { 202 if ((int) $option['value']!=0) 203 { 204 $selected=''; 205 if ($option['value']==$selected_id) 206 { 207 $selected=' SELECTED'; 208 } 209 $retval.='<OPTION VALUE="'.$option['value'].'"'.$selected.'>'. 210 $option['display'].'</OPTION>'."\n"; 211 } 212 } 213 $retval.='</SELECT>'; 214 return $retval; 215 } 216 } 217 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |