[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/sitemgr/inc/ -> class.Pages_UI.inc.php (source)

   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  ?>


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7