phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] old/wcm/inc/class.sopage.inc.php, 1.1


From: nomail
Subject: [Phpgroupware-cvs] old/wcm/inc/class.sopage.inc.php, 1.1
Date: Thu, 30 Dec 2004 09:13:57 +0100

Update of /old/wcm/inc
Added Files:
        Branch: 
          class.sopage.inc.php

date: 2004/12/30 08:13:57;  author: skwashd;  state: Exp;

Log Message:
keep historic record for wcm
=====================================================================
<?php
  /**************************************************************************\
  * phpGroupWare - WCM                                                       *
  * http://www.phpgroupware.org                                              *
  * Written by Miles Lott <address@hidden>                         *
  * --------------------------------------------                             *
  *  This program is free software; you can redistribute it and/or modify it *
  *  under the terms of the GNU General Public License as published by the   *
  *  Free Software Foundation; either version 2 of the License, or (at your  *
  *  option) any later version.                                              *
  \**************************************************************************/

  /* $Id: class.sopage.inc.php,v 1.1 2004/12/30 08:13:57 skwashd Exp $ */

        class sopage
        {
                var $debug  = False;
                var $pageid = '';
                var $page   = array();
                var $table  = 'phpgw_wcm_pages';

                function sopage()
                {
                }

                function list_pages($data='',&$total)
                {
                        if(is_array($data))
                        {
                                if($this->debug) { _debug_array($data); }
                                list($start,$sort,$order,$query,$limit,$simple) 
= $data;
                        }
                        return 
$this->get_list($start,$sort,$order,$query,$limit,$total,$simple);
                }

                function read($id,$full=False)
                {
                        return $this->read_repository($id,$full);
                }

                function add($page_info)
                {
                        return $this->create($page_info);
                }

                function update($page_info)
                {
                        $this->page = $page_info;
                        $this->save_repository($page_info['page_id']);
                        return $this->read_repository($page_info['page_id']);
                }

                function delete($id)
                {
                        return $this->delete($id);
                }

                function read_repository($pageid='',$full=False)
                {
                        $this->page = array();
                        if(!$pageid)
                        {
                                $pageid = $this->pageid;
                        }
                        $sql = "SELECT * FROM $this->table WHERE page_id=" . 
intval($pageid);
                        $GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                        if($GLOBALS['phpgw']->db->next_record())
                        {
                                $this->page['page_id']       = 
$GLOBALS['phpgw']->db->f('page_id');
                                $this->page['page_name']     = 
stripslashes($GLOBALS['phpgw']->db->f('page_name'));
                                $this->page['page_title']    = 
stripslashes($GLOBALS['phpgw']->db->f('page_title'));
                                $this->page['page_url']      = 
$GLOBALS['phpgw']->db->f('page_url');
                                $tmp = 
unserialize($GLOBALS['phpgw']->db->f('page_elements'));
                                $this->page['page_elements'] = $tmp ? $tmp : 
array();
                                $this->page['page_header']   = 
$GLOBALS['phpgw']->db->f('page_header');
                                $this->page['page_footer']   = 
$GLOBALS['phpgw']->db->f('page_footer');
                                $this->page['page_version']  = 
$GLOBALS['phpgw']->db->f('page_version');
                                $this->page['page_expire']   = 
$GLOBALS['phpgw']->db->f('page_expire');
                                $this->page['page_bgcolor']  = 
$GLOBALS['phpgw']->db->f('page_bgcolor');
                        }
                        if($full)
                        {
                                $elements = CreateObject('wcm.soelement');
                                $new = array();
                                while(list($key,$value) = 
@each($this->page['page_elements']))
                                {
                                        if(is_array($value))
                                        {
                                                while(list(,$subval) = 
each($value))
                                                {
                                                        $new[$key][] = 
$elements->read_repository($subval,True);
                                                }
                                        }
                                        else
                                        {
                                                $new[$key] = $value;
                                        }
                                }
                                $this->page['page_elements'] = $new;
                        }
                        return $this->page;
                }

                function save_repository($pageid='')
                {
                        if(!$pageid)
                        {
                                $pageid = $this->pageid;
                        }
                        if($pageid && is_array($this->page))
                        {
                                $tmp = is_array($this->page['page_elements']) ? 
serialize($this->page['page_elements']) : serialize(array('none'));

                                $sql = "UPDATE $this->table SET "
                                        . "page_name='" . 
$GLOBALS['phpgw']->db->db_addslashes($this->page['page_name']) . "',"
                                        . "page_title='" . 
$GLOBALS['phpgw']->db->db_addslashes($this->page['page_title']) . "',"
                                        . "page_url='"  . 
$this->page['page_url']  . "',"
                                        . "page_elements='" . $tmp . "',"
                                        . "page_header='"   . 
$this->page['page_header'] . "',"
                                        . "page_footer='"   . 
$this->page['page_footer'] . "',"
                                        . "page_left="      . 
intval($this->page['page_left']) . ","
                                        . "page_mid="       . 
intval($this->page['page_mid']) . ","
                                        . "page_right="     . 
intval($this->page['page_right']) . ","
                                        . "page_version='"  . 
$this->page['page_version'] . "',"
                                        . "page_expire='"   . 
intval($this->page['page_expire']) . "',"
                                        . "page_bgcolor='"  . 
$this->page['page_bgcolor'] . "'"
                                        . " WHERE page_id=" . intval($pageid);
                                
$GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                                return $pageid;
                        }
                        return False;
                }

                function create($page_info='')
                {
                        if(!is_array($page_info))
                        {
                                return False;
                        }
                        $tmp = is_array($page_info['page_elements']) ? 
serialize($page_info['page_elements']) : serialize(array('none'));

                        $sql = "INSERT INTO $this->table 
(page_name,page_title,page_url,page_elements,"
                                . 
"page_header,page_footer,page_left,page_mid,page_right,page_version,page_expire,page_bgcolor)
 VALUES('"
                                . 
$GLOBALS['phpgw']->db->db_addslashes($page_info['page_name'])   . "','"
                                . 
$GLOBALS['phpgw']->db->db_addslashes($page_info['page_title']) . "','"
                                . $page_info['page_url']    . "','" . $tmp . 
"','"
                                . $page_info['page_header'] . "','" . 
$page_info['page_footer'] . "',"
                                . intval($page_info['page_left'])  . ","
                                . intval($page_info['page_mid'])   . ","
                                . intval($page_info['page_right']) . ",'"
                                . $page_info['page_version'] . "','"
                                . intval($page_info['page_expire']) . "','"
                                . $page_info['page_bgcolor'] . "')";
                        $GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);

                        $sql = "SELECT page_id FROM $this->table WHERE 
page_name='" . $page_info['page_name'] . "'";
                        $GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                        if($GLOBALS['phpgw']->db->next_record())
                        {
                                $page_info['page_id'] = 
$GLOBALS['phpgw']->db->f(0);
                                $this->pageid = $page_info['page_id'];
                                $this->page   = $page_info;
                                return $this->pageid;
                        }
                        return False;
                }

                function delete($pageid='')
                {
                        if(!$pageid)
                        {
                                $pageid = $this->pageid;
                        }
                        if($pageid)
                        {
                                $sql = "DELETE FROM $this->table WHERE 
page_id=$pageid";
                                
$GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                                return True;
                        }
                        return False;
                }

                function 
get_list($start='',$sort='',$order='',$query='',$limit='',&$total,$simple=False)
                {
                        $this->pages = array();

                        if (!$sort)
                        {
                                $sort = 'DESC';
                        }
                        if ($query)
                        {
                                $whereclause = "WHERE page_name LIKE '%$query%'"
                                        . " OR page_title  LIKE '%$query%'"
                                        . " OR page_url  LIKE '%$query%'";
                        }
                        if ($order)
                        {
                                $orderclause = 'ORDER BY ' . $order . ' ' . 
$sort;
                        }
                        else
                        {
                                $orderclause = 'ORDER BY page_name ASC';
                        }

                        $sql = "SELECT * FROM $this->table $whereclause 
$orderclause";
                        $GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                        
                        while ($GLOBALS['phpgw']->db->next_record())
                        {
                                if($simple)
                                {
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_id')] = 
$GLOBALS['phpgw']->db->f('page_name') . ' - ' . 
$GLOBALS['phpgw']->db->f('page_url');
                                }
                                else
                                {
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_id']    = 
$GLOBALS['phpgw']->db->f('page_id');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_name']  = 
stripslashes($GLOBALS['phpgw']->db->f('page_name'));
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_title'] = 
stripslashes($GLOBALS['phpgw']->db->f('page_title'));
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_url']   = 
$GLOBALS['phpgw']->db->f('page_url');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_elements'] = 
$GLOBALS['phpgw']->db->f('page_elements');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_header']   = 
$GLOBALS['phpgw']->db->f('page_header');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_footer']   = 
$GLOBALS['phpgw']->db->f('page_footer');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_version']  = 
$GLOBALS['phpgw']->db->f('page_version');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_left']     = 
$GLOBALS['phpgw']->db->f('page_left');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_mid']      = 
$GLOBALS['phpgw']->db->f('page_mid');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_right']    = 
$GLOBALS['phpgw']->db->f('page_right');
                                        
$this->pages[$GLOBALS['phpgw']->db->f('page_name')]['page_bgcolor']  = 
$GLOBALS['phpgw']->db->f('page_bgcolor');
                                }
                        }
                        $this->total = $GLOBALS['phpgw']->db->num_rows();
                        $total = $this->total;
                        return $this->pages;
                }

                function formatted_list($page_id=0,$java=False,$local=False)
                {
                        if ($java)
                        {
                                $jselect = ' onChange="this.form.submit();"';
                        }
                        $select  = "\n" .'<select name="page_id"' . $jselect . 
">\n";
                        $select .= '<option value="0"';
                        if(!$page_id)
                        {
                                $select .= ' selected';
                        }
                        $selectlang = $local ? lang('Local') : lang('Please 
Select');
                        $select .= '>' . $selectlang . '</option>'."\n";

                        $x = '';
                        $slist = $this->get_list('','','','','',$x);
                        while (list($key,$val) = each($slist))
                        {
                                $foundpages = True;
                                $select .= '<option value="' . $val['page_id'] 
. '"';
                                if ($val['page_id'] == $page_id)
                                {
                                        $select .= ' selected';
                                }
                                $select .= '>' . $val['page_name'] . 
'</option>'."\n";
                        }

                        $select .= '</select>'."\n";
                        $select .= '<noscript><input type="submit" 
name="page_id_select" value="' . lang('Select') . '"></noscript>' . "\n";
                        if(!$foundpages)
                        {
                                $select = '';
                        }

                        return $select;
                }

                function name2id($page_name='')
                {
                        if(!$page_name)
                        {
                                $page_name = $this->page['page_name'];
                        }
                        if($page_name)
                        {
                                $sql = "SELECT page_id FROM $this->table WHERE 
page_name='$page_name'";
                                
$GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                                if($GLOBALS['phpgw']->db->next_record())
                                {
                                        $pageid = $GLOBALS['phpgw']->db->f(0);
                                        return $pageid;
                                }
                        }
                        return False;
                }

                function id2name($pageid='')
                {
                        if(!$pageid)
                        {
                                $pageid = $this->pageid;
                        }
                        if($pageid)
                        {
                                $sql = "SELECT page_name FROM $this->table 
WHERE page_id=$pageid";
                                
$GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                                if($GLOBALS['phpgw']->db->next_record())
                                {
                                        $page_name = 
$GLOBALS['phpgw']->db->f(0);
                                        return $page_name;
                                }
                        }
                        return False;
                }

                function exists($pagedata='')
                {
                        if(!$pagedata)
                        {
                                return False;
                        }
                        if(is_int($pagedata))
                        {
                                $pageid = $pagedata;
                                settype($page_name,'string');
                                $page_name = $this->id2name($pageid);
                        }
                        else
                        {
                                $page_name = $pagedata;
                        }
                        $sql = "SELECT page_id FROM $this->table WHERE 
page_name='$page_name'";
                        $GLOBALS['phpgw']->db->query($sql,__LINE__,__FILE__);
                        if($GLOBALS['phpgw']->db->next_record())
                        {
                                return True;
                        }
                        return False;
                }
        }
?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]