!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\dmz\php\pear\Spreadsheet\Excel\Writer\   drwxrwxrwx
Free 3.24 GB of 39.52 GB (8.2%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Format.php (30.12 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
*  Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
*
*  The majority of this is _NOT_ my code.  I simply ported it from the
*  PERL Spreadsheet::WriteExcel module.
*
*  The author of the Spreadsheet::WriteExcel module is John McNamara
*  <jmcnamara@cpan.org>
*
*  I _DO_ maintain this code, and John McNamara has nothing to do with the
*  porting of this code to PHP.  Any questions directly related to this
*  class library should be directed to me.
*
*  License Information:
*
*    Spreadsheet_Excel_Writer:  A library for generating Excel Spreadsheets
*    Copyright (c) 2002-2003 Xavier Noguer xnoguer@rezebra.com
*
*    This library is free software; you can redistribute it and/or
*    modify it under the terms of the GNU Lesser General Public
*    License as published by the Free Software Foundation; either
*    version 2.1 of the License, or (at your option) any later version.
*
*    This library is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*    Lesser General Public License for more details.
*
*    You should have received a copy of the GNU Lesser General Public
*    License along with this library; if not, write to the Free Software
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

require_once 'PEAR.php';

/**
* Class for generating Excel XF records (formats)
*
* @author   Xavier Noguer <xnoguer@rezebra.com>
* @category FileFormats
* @package  Spreadsheet_Excel_Writer
*/

class Spreadsheet_Excel_Writer_Format extends PEAR
{
    
/**
    * The index given by the workbook when creating a new format.
    * @var integer
    */
    
var $_xf_index;

    
/**
    * Index to the FONT record.
    * @var integer
    */
    
var $font_index;

    
/**
    * The font name (ASCII).
    * @var string
    */
    
var $_font_name;

    
/**
    * Height of font (1/20 of a point)
    * @var integer
    */
    
var $_size;

    
/**
    * Bold style
    * @var integer
    */
    
var $_bold;

    
/**
    * Bit specifiying if the font is italic.
    * @var integer
    */
    
var $_italic;

    
/**
    * Index to the cell's color
    * @var integer
    */
    
var $_color;

    
/**
    * The text underline property
    * @var integer
    */
    
var $_underline;

    
/**
    * Bit specifiying if the font has strikeout.
    * @var integer
    */
    
var $_font_strikeout;

    
/**
    * Bit specifiying if the font has outline.
    * @var integer
    */
    
var $_font_outline;

    
/**
    * Bit specifiying if the font has shadow.
    * @var integer
    */
    
var $_font_shadow;

    
/**
    * 2 bytes specifiying the script type for the font.
    * @var integer
    */
    
var $_font_script;

    
/**
    * Byte specifiying the font family.
    * @var integer
    */
    
var $_font_family;

    
/**
    * Byte specifiying the font charset.
    * @var integer
    */
    
var $_font_charset;

    
/**
    * An index (2 bytes) to a FORMAT record (number format).
    * @var integer
    */
    
var $_num_format;

    
/**
    * Bit specifying if formulas are hidden.
    * @var integer
    */
    
var $_hidden;

    
/**
    * Bit specifying if the cell is locked.
    * @var integer
    */
    
var $_locked;

    
/**
    * The three bits specifying the text horizontal alignment.
    * @var integer
    */
    
var $_text_h_align;

    
/**
    * Bit specifying if the text is wrapped at the right border.
    * @var integer
    */
    
var $_text_wrap;

    
/**
    * The three bits specifying the text vertical alignment.
    * @var integer
    */
    
var $_text_v_align;

    
/**
    * 1 bit, apparently not used.
    * @var integer
    */
    
var $_text_justlast;

    
/**
    * The two bits specifying the text rotation.
    * @var integer
    */
    
var $_rotation;

    
/**
    * The cell's foreground color.
    * @var integer
    */
    
var $_fg_color;

    
/**
    * The cell's background color.
    * @var integer
    */
    
var $_bg_color;

    
/**
    * The cell's background fill pattern.
    * @var integer
    */
    
var $_pattern;

    
/**
    * Style of the bottom border of the cell
    * @var integer
    */
    
var $_bottom;

    
/**
    * Color of the bottom border of the cell.
    * @var integer
    */
    
var $_bottom_color;

    
/**
    * Style of the top border of the cell
    * @var integer
    */
    
var $_top;

    
/**
    * Color of the top border of the cell.
    * @var integer
    */
    
var $_top_color;

    
/**
    * Style of the left border of the cell
    * @var integer
    */
    
var $_left;

    
/**
    * Color of the left border of the cell.
    * @var integer
    */
    
var $_left_color;

    
/**
    * Style of the right border of the cell
    * @var integer
    */
    
var $_right;

    
/**
    * Color of the right border of the cell.
    * @var integer
    */
    
var $_right_color;

    
/**
    * Constructor
    *
    * @access private
    * @param integer $index the XF index for the format.
    * @param array   $properties array with properties to be set on initialization.
    */
    
function Spreadsheet_Excel_Writer_Format($BIFF_version$index 0$properties =  array())
    {
        
$this->_xf_index       $index;
        
$this->_BIFF_version   $BIFF_version;
        
$this->font_index      0;
        
$this->_font_name      'Arial';
        
$this->_size           10;
        
$this->_bold           0x0190;
        
$this->_italic         0;
        
$this->_color          0x7FFF;
        
$this->_underline      0;
        
$this->_font_strikeout 0;
        
$this->_font_outline   0;
        
$this->_font_shadow    0;
        
$this->_font_script    0;
        
$this->_font_family    0;
        
$this->_font_charset   0;

        
$this->_num_format     0;

        
$this->_hidden         0;
        
$this->_locked         0;

        
$this->_text_h_align   0;
        
$this->_text_wrap      0;
        
$this->_text_v_align   2;
        
$this->_text_justlast  0;
        
$this->_rotation       0;

        
$this->_fg_color       0x40;
        
$this->_bg_color       0x41;

        
$this->_pattern        0;

        
$this->_bottom         0;
        
$this->_top            0;
        
$this->_left           0;
        
$this->_right          0;
        
$this->_diag           0;

        
$this->_bottom_color   0x40;
        
$this->_top_color      0x40;
        
$this->_left_color     0x40;
        
$this->_right_color    0x40;
        
$this->_diag_color     0x40;

        
// Set properties passed to Spreadsheet_Excel_Writer_Workbook::addFormat()
        
foreach ($properties as $property => $value)
        {
            if (
method_exists($this'set'.ucwords($property))) {
                
$method_name 'set'.ucwords($property);
                
$this->$method_name($value);
            }
        }
    }


    
/**
    * Generate an Excel BIFF XF record (style or cell).
    *
    * @param string $style The type of the XF record ('style' or 'cell').
    * @return string The XF record
    */
    
function getXf($style)
    {
        
// Set the type of the XF record and some of the attributes.
        
if ($style == 'style') {
            
$style 0xFFF5;
        } else {
            
$style   $this->_locked;
            
$style  |= $this->_hidden << 1;
        }

        
// Flags to indicate if attributes have been set.
        
$atr_num     = ($this->_num_format != 0)?1:0;
        
$atr_fnt     = ($this->font_index != 0)?1:0;
        
$atr_alc     = ($this->_text_wrap)?1:0;
        
$atr_bdr     = ($this->_bottom   ||
                        
$this->_top      ||
                        
$this->_left     ||
                        
$this->_right)?1:0;
        
$atr_pat     = (($this->_fg_color != 0x40) ||
                        (
$this->_bg_color != 0x41) ||
                        
$this->_pattern)?1:0;
        
$atr_prot    $this->_locked $this->_hidden;

        
// Zero the default border colour if the border has not been set.
        
if ($this->_bottom == 0) {
            
$this->_bottom_color 0;
        }
        if (
$this->_top  == 0) {
            
$this->_top_color 0;
        }
        if (
$this->_right == 0) {
            
$this->_right_color 0;
        }
        if (
$this->_left == 0) {
            
$this->_left_color 0;
        }
        if (
$this->_diag == 0) {
            
$this->_diag_color 0;
        }

        
$record         0x00E0;              // Record identifier
        
if ($this->_BIFF_version == 0x0500) {
            
$length         0x0010;              // Number of bytes to follow
        
}
        if (
$this->_BIFF_version == 0x0600) {
            
$length         0x0014;
        }

        
$ifnt           $this->font_index;   // Index to FONT record
        
$ifmt           $this->_num_format;  // Index to FORMAT record
        
if ($this->_BIFF_version == 0x0500) {
            
$align          $this->_text_h_align;       // Alignment
            
$align         |= $this->_text_wrap     << 3;
            
$align         |= $this->_text_v_align  << 4;
            
$align         |= $this->_text_justlast << 7;
            
$align         |= $this->_rotation      << 8;
            
$align         |= $atr_num                << 10;
            
$align         |= $atr_fnt                << 11;
            
$align         |= $atr_alc                << 12;
            
$align         |= $atr_bdr                << 13;
            
$align         |= $atr_pat                << 14;
            
$align         |= $atr_prot               << 15;

            
$icv            $this->_fg_color;       // fg and bg pattern colors
            
$icv           |= $this->_bg_color      << 7;

            
$fill           $this->_pattern;        // Fill and border line style
            
$fill          |= $this->_bottom        << 6;
            
$fill          |= $this->_bottom_color  << 9;

            
$border1        $this->_top;            // Border line style and color
            
$border1       |= $this->_left          << 3;
            
$border1       |= $this->_right         << 6;
            
$border1       |= $this->_top_color     << 9;

            
$border2        $this->_left_color;     // Border color
            
$border2       |= $this->_right_color   << 7;

            
$header      pack("vv",       $record$length);
            
$data        pack("vvvvvvvv"$ifnt$ifmt$style$align,
                                            
$icv$fill,
                                            
$border1$border2);
        } elseif (
$this->_BIFF_version == 0x0600) {
            
$align          $this->_text_h_align;       // Alignment
            
$align         |= $this->_text_wrap     << 3;
            
$align         |= $this->_text_v_align  << 4;
            
$align         |= $this->_text_justlast << 7;

            
$used_attrib    $atr_num              << 2;
            
$used_attrib   |= $atr_fnt              << 3;
            
$used_attrib   |= $atr_alc              << 4;
            
$used_attrib   |= $atr_bdr              << 5;
            
$used_attrib   |= $atr_pat              << 6;
            
$used_attrib   |= $atr_prot             << 7;

            
$icv            $this->_fg_color;      // fg and bg pattern colors
            
$icv           |= $this->_bg_color      << 7;

            
$border1        $this->_left;          // Border line style and color
            
$border1       |= $this->_right         << 4;
            
$border1       |= $this->_top           << 8;
            
$border1       |= $this->_bottom        << 12;
            
$border1       |= $this->_left_color    << 16;
            
$border1       |= $this->_right_color   << 23;
            
$diag_tl_to_rb 0// FIXME: add method
            
$diag_tr_to_lb 0// FIXME: add method
            
$border1       |= $diag_tl_to_rb        << 30;
            
$border1       |= $diag_tr_to_lb        << 31;

            
$border2        $this->_top_color;    // Border color
            
$border2       |= $this->_bottom_color   << 7;
            
$border2       |= $this->_diag_color     << 14;
            
$border2       |= $this->_diag           << 21;
            
$border2       |= $this->_pattern        << 26;

            
$header      pack("vv",       $record$length);

            
$rotation      $this->_rotation;
            
$biff8_options 0x00;
            
$data  pack("vvvC"$ifnt$ifmt$style$align);
            
$data .= pack("CCC"$rotation$biff8_options$used_attrib);
            
$data .= pack("VVv"$border1$border2$icv);
        }

        return(
$header $data);
    }

    
/**
    * Generate an Excel BIFF FONT record.
    *
    * @return string The FONT record
    */
    
function getFont()
    {
        
$dyHeight   $this->_size 20;    // Height of font (1/20 of a point)
        
$icv        $this->_color;        // Index to color palette
        
$bls        $this->_bold;         // Bold style
        
$sss        $this->_font_script;  // Superscript/subscript
        
$uls        $this->_underline;    // Underline
        
$bFamily    $this->_font_family;  // Font family
        
$bCharSet   $this->_font_charset// Character set
        
$encoding   0;                    // TODO: Unicode support

        
$cch        strlen($this->_font_name); // Length of font name
        
$record     0x31;                      // Record identifier
        
if ($this->_BIFF_version == 0x0500) {
            
$length     0x0F $cch;            // Record length
        
} elseif ($this->_BIFF_version == 0x0600) {
            
$length     0x10 $cch;
        }
        
$reserved   0x00;                // Reserved
        
$grbit      0x00;                // Font attributes
        
if ($this->_italic) {
            
$grbit     |= 0x02;
        }
        if (
$this->_font_strikeout) {
            
$grbit     |= 0x08;
        }
        if (
$this->_font_outline) {
            
$grbit     |= 0x10;
        }
        if (
$this->_font_shadow) {
            
$grbit     |= 0x20;
        }

        
$header  pack("vv",         $record$length);
        if (
$this->_BIFF_version == 0x0500) {
            
$data    pack("vvvvvCCCCC"$dyHeight$grbit$icv$bls,
                                          
$sss$uls$bFamily,
                                          
$bCharSet$reserved$cch);
        } elseif (
$this->_BIFF_version == 0x0600) {
            
$data    pack("vvvvvCCCCCC"$dyHeight$grbit$icv$bls,
                                           
$sss$uls$bFamily,
                                           
$bCharSet$reserved$cch$encoding);
        }
        return(
$header $data $this->_font_name);
    }

    
/**
    * Returns a unique hash key for a font.
    * Used by Spreadsheet_Excel_Writer_Workbook::_storeAllFonts()
    *
    * The elements that form the key are arranged to increase the probability of
    * generating a unique key. Elements that hold a large range of numbers
    * (eg. _color) are placed between two binary elements such as _italic
    *
    * @return string A key for this font
    */
    
function getFontKey()
    {
        
$key  "$this->_font_name$this->_size";
        
$key .= "$this->_font_script$this->_underline";
        
$key .= "$this->_font_strikeout$this->_bold$this->_font_outline";
        
$key .= "$this->_font_family$this->_font_charset";
        
$key .= "$this->_font_shadow$this->_color$this->_italic";
        
$key  str_replace(' ''_'$key);
        return (
$key);
    }

    
/**
    * Returns the index used by Spreadsheet_Excel_Writer_Worksheet::_XF()
    *
    * @return integer The index for the XF record
    */
    
function getXfIndex()
    {
        return(
$this->_xf_index);
    }

    
/**
    * Used in conjunction with the set_xxx_color methods to convert a color
    * string into a number. Color range is 0..63 but we will restrict it
    * to 8..63 to comply with Gnumeric. Colors 0..7 are repeated in 8..15.
    *
    * @access private
    * @param string $name_color name of the color (i.e.: 'blue', 'red', etc..). Optional.
    * @return integer The color index
    */
    
function _getColor($name_color '')
    {
        
$colors = array(
                          
'aqua'    => 0x07,
                          
'cyan'    => 0x07,
                          
'black'   => 0x00,
                          
'blue'    => 0x04,
                          
'brown'   => 0x10,
                          
'magenta' => 0x06,
                          
'fuchsia' => 0x06,
                          
'gray'    => 0x17,
                          
'grey'    => 0x17,
                          
'green'   => 0x11,
                          
'lime'    => 0x03,
                          
'navy'    => 0x12,
                          
'orange'  => 0x35,
                          
'purple'  => 0x14,
                          
'red'     => 0x02,
                          
'silver'  => 0x16,
                          
'white'   => 0x01,
                          
'yellow'  => 0x05
                       
);

        
// Return the default color, 0x7FFF, if undef,
        
if ($name_color === '') {
            return(
0x7FFF);
        }

        
// or the color string converted to an integer,
        
if (isset($colors[$name_color])) {
            return(
$colors[$name_color]);
        }

        
// or the default color if string is unrecognised,
        
if (preg_match("/\D/",$name_color)) {
            return(
0x7FFF);
        }

        
// or the default color if arg is outside range,
        
if ($name_color 63) {
            return(
0x7FFF);
        }

        
// or an integer in the valid range
        
return($name_color);
    }

    
/**
    * Set cell alignment.
    *
    * @access public
    * @param string $location alignment for the cell ('left', 'right', etc...).
    */
    
function setAlign($location)
    {
        if (
preg_match("/\d/",$location)) {
            return;                      
// Ignore numbers
        
}

        
$location strtolower($location);

        if (
$location == 'left') {
            
$this->_text_h_align 1;
        }
        if (
$location == 'centre') {
            
$this->_text_h_align 2;
        }
        if (
$location == 'center') {
            
$this->_text_h_align 2;
        }
        if (
$location == 'right') {
            
$this->_text_h_align 3;
        }
        if (
$location == 'fill') {
            
$this->_text_h_align 4;
        }
        if (
$location == 'justify') {
            
$this->_text_h_align 5;
        }
        if (
$location == 'merge') {
            
$this->_text_h_align 6;
        }
        if (
$location == 'equal_space') { // For T.K.
            
$this->_text_h_align 7;
        }
        if (
$location == 'top') {
            
$this->_text_v_align 0;
        }
        if (
$location == 'vcentre') {
            
$this->_text_v_align 1;
        }
        if (
$location == 'vcenter') {
            
$this->_text_v_align 1;
        }
        if (
$location == 'bottom') {
            
$this->_text_v_align 2;
        }
        if (
$location == 'vjustify') {
            
$this->_text_v_align 3;
        }
        if (
$location == 'vequal_space') { // For T.K.
            
$this->_text_v_align 4;
        }
    }

    
/**
    * Set cell horizontal alignment.
    *
    * @access public
    * @param string $location alignment for the cell ('left', 'right', etc...).
    */
    
function setHAlign($location)
    {
        if (
preg_match("/\d/",$location)) {
            return;                      
// Ignore numbers
        
}
    
        
$location strtolower($location);
    
        if (
$location == 'left') {
            
$this->_text_h_align 1;
        }
        if (
$location == 'centre') {
            
$this->_text_h_align 2;
        }
        if (
$location == 'center') {
            
$this->_text_h_align 2;
        }
        if (
$location == 'right') {
            
$this->_text_h_align 3;
        }
        if (
$location == 'fill') {
            
$this->_text_h_align 4;
        }
        if (
$location == 'justify') {
            
$this->_text_h_align 5;
        }
        if (
$location == 'merge') {
            
$this->_text_h_align 6;
        }
        if (
$location == 'equal_space') { // For T.K.
            
$this->_text_h_align 7;
        }
    }

    
/**
    * Set cell vertical alignment.
    *
    * @access public
    * @param string $location alignment for the cell ('top', 'vleft', 'vright', etc...).
    */
    
function setVAlign($location)
    {
        if (
preg_match("/\d/",$location)) {
            return;                      
// Ignore numbers
        
}
    
        
$location strtolower($location);
 
        if (
$location == 'top') {
            
$this->_text_v_align 0;
        }
        if (
$location == 'vcentre') {
            
$this->_text_v_align 1;
        }
        if (
$location == 'vcenter') {
            
$this->_text_v_align 1;
        }
        if (
$location == 'bottom') {
            
$this->_text_v_align 2;
        }
        if (
$location == 'vjustify') {
            
$this->_text_v_align 3;
        }
        if (
$location == 'vequal_space') { // For T.K.
            
$this->_text_v_align 4;
        }
    }

    
/**
    * This is an alias for the unintuitive setAlign('merge')
    *
    * @access public
    */
    
function setMerge()
    {
        
$this->setAlign('merge');
    }

    
/**
    * Sets the boldness of the text.
    * Bold has a range 100..1000.
    * 0 (400) is normal. 1 (700) is bold.
    *
    * @access public
    * @param integer $weight Weight for the text, 0 maps to 400 (normal text),
                             1 maps to 700 (bold text). Valid range is: 100-1000.
                             It's Optional, default is 1 (bold).
    */
    
function setBold($weight 1)
    {
        if (
$weight == 1) {
            
$weight 0x2BC;  // Bold text
        
}
        if (
$weight == 0) {
            
$weight 0x190;  // Normal text
        
}
        if (
$weight <  0x064) {
            
$weight 0x190;  // Lower bound
        
}
        if (
$weight >  0x3E8) {
            
$weight 0x190;  // Upper bound
        
}
        
$this->_bold $weight;
    }


    
/************************************
    * FUNCTIONS FOR SETTING CELLS BORDERS
    */

    /**
    * Sets the width for the bottom border of the cell
    *
    * @access public
    * @param integer $style style of the cell border. 1 => thin, 2 => thick.
    */
    
function setBottom($style)
    {
        
$this->_bottom $style;
    }

    
/**
    * Sets the width for the top border of the cell
    *
    * @access public
    * @param integer $style style of the cell top border. 1 => thin, 2 => thick.
    */
    
function setTop($style)
    {
        
$this->_top $style;
    }

    
/**
    * Sets the width for the left border of the cell
    *
    * @access public
    * @param integer $style style of the cell left border. 1 => thin, 2 => thick.
    */
    
function setLeft($style)
    {
        
$this->_left $style;
    }

    
/**
    * Sets the width for the right border of the cell
    *
    * @access public
    * @param integer $style style of the cell right border. 1 => thin, 2 => thick.
    */
    
function setRight($style)
    {
        
$this->_right $style;
    }


    
/**
    * Set cells borders to the same style
    *
    * @access public
    * @param integer $style style to apply for all cell borders. 1 => thin, 2 => thick.
    */
    
function setBorder($style)
    {
        
$this->setBottom($style);
        
$this->setTop($style);
        
$this->setLeft($style);
        
$this->setRight($style);
    }


    
/*******************************************
    * FUNCTIONS FOR SETTING CELLS BORDERS COLORS
    */

    /**
    * Sets all the cell's borders to the same color
    *
    * @access public
    * @param mixed $color The color we are setting. Either a string (like 'blue'),
    *                     or an integer (range is [8...63]).
    */
    
function setBorderColor($color)
    {
        
$this->setBottomColor($color);
        
$this->setTopColor($color);
        
$this->setLeftColor($color);
        
$this->setRightColor($color);
    }

    
/**
    * Sets the cell's bottom border color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setBottomColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_bottom_color $value;
    }

    
/**
    * Sets the cell's top border color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setTopColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_top_color $value;
    }

    
/**
    * Sets the cell's left border color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setLeftColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_left_color $value;
    }

    
/**
    * Sets the cell's right border color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setRightColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_right_color $value;
    }


    
/**
    * Sets the cell's foreground color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setFgColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_fg_color $value;
        if (
$this->_pattern == 0) { // force color to be seen
            
$this->_pattern 1;
        }
    }

    
/**
    * Sets the cell's background color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setBgColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_bg_color $value;
        if (
$this->_pattern == 0) { // force color to be seen
            
$this->_pattern 1;
        }
    }

    
/**
    * Sets the cell's color
    *
    * @access public
    * @param mixed $color either a string (like 'blue'), or an integer (range is [8...63]).
    */
    
function setColor($color)
    {
        
$value $this->_getColor($color);
        
$this->_color $value;
    }

    
/**
    * Sets the fill pattern attribute of a cell
    *
    * @access public
    * @param integer $arg Optional. Defaults to 1. Meaningful values are: 0-18,
    *                     0 meaning no background.
    */
    
function setPattern($arg 1)
    {
        
$this->_pattern $arg;
    }

    
/**
    * Sets the underline of the text
    *
    * @access public
    * @param integer $underline The value for underline. Possible values are:
    *                          1 => underline, 2 => double underline.
    */
    
function setUnderline($underline)
    {
        
$this->_underline $underline;
    }

    
/**
    * Sets the font style as italic
    *
    * @access public
    */
    
function setItalic()
    {
        
$this->_italic 1;
    }

    
/**
    * Sets the font size
    *
    * @access public
    * @param integer $size The font size (in pixels I think).
    */
    
function setSize($size)
    {
        
$this->_size $size;
    }

    
/**
    * Sets text wrapping
    *
    * @access public
    */
    
function setTextWrap()
    {
        
$this->_text_wrap 1;
    }

    
/**
    * Sets the orientation of the text
    *
    * @access public
    * @param integer $angle The rotation angle for the text (clockwise). Possible
                            values are: 0, 90, 270 and -1 for stacking top-to-bottom.
    */
    
function setTextRotation($angle)
    {
        switch (
$angle)
        {
            case 
0:
                
$this->_rotation 0;
                break;
            case 
90:
                if (
$this->_BIFF_version == 0x0500) {
                
$this->_rotation 3;
                } elseif (
$this->_BIFF_version == 0x0600) {
                    
$this->_rotation 180;
                }
                break;
            case 
270:
                if (
$this->_BIFF_version == 0x0500) {
                
$this->_rotation 2;
                } elseif (
$this->_BIFF_version == 0x0600) {
                    
$this->_rotation 90;
                }
                break;
            case -
1:
                if (
$this->_BIFF_version == 0x0500) {
                
$this->_rotation 1;
                } elseif (
$this->_BIFF_version == 0x0600) {
                    
$this->_rotation 255;
                }
                break;
            default :
                return 
$this->raiseError("Invalid value for angle.".
                                  
" Possible values are: 0, 90, 270 and -1 ".
                                  
"for stacking top-to-bottom.");
                
$this->_rotation 0;
                break;
        }
    }

    
/**
    * Sets the numeric format.
    * It can be date, time, currency, etc...
    *
    * @access public
    * @param integer $num_format The numeric format.
    */
    
function setNumFormat($num_format)
    {
        
$this->_num_format $num_format;
    }

    
/**
    * Sets font as strikeout.
    *
    * @access public
    */
    
function setStrikeOut()
    {
        
$this->_font_strikeout 1;
    }

    
/**
    * Sets outlining for a font.
    *
    * @access public
    */
    
function setOutLine()
    {
        
$this->_font_outline 1;
    }

    
/**
    * Sets font as shadow.
    *
    * @access public
    */
    
function setShadow()
    {
        
$this->_font_shadow 1;
    }

    
/**
    * Sets the script type of the text
    *
    * @access public
    * @param integer $script The value for script type. Possible values are:
    *                        1 => superscript, 2 => subscript.
    */
    
function setScript($script)
    {
        
$this->_font_script $script;
    }

     
/**
     * Locks a cell.
     *
     * @access public
     */
     
function setLocked()
     {
         
$this->_locked 1;
     }

    
/**
    * Unlocks a cell. Useful for unprotecting particular cells of a protected sheet.
    *
    * @access public
    */
    
function setUnLocked()
    {
        
$this->_locked 0;
    }

    
/**
    * Sets the font family name.
    *
    * @access public
    * @param string $fontfamily The font family name. Possible values are:
    *                           'Times New Roman', 'Arial', 'Courier'.
    */
    
function setFontFamily($font_family)
    {
        
$this->_font_name $font_family;
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0468 ]--