Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 199

Přidáno uživatelem Jiří Sviták před více než 15 roky(ů)

Pridan rozsireny vypis u zarizeni clena. Pridana kontrola duplicitnich ip adres. Pridano mazani ip adres a spravne vraceni po mazani ip. Nacata kontrola duplicitnich mac adres. Predelano money transfers - vypis. Potreba spravit databazi. Vsude potreba doresit prava.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
(
'access rights' => 'Přístupová práva',
'account informations' => 'Informace o účtu',
'account successfully added.' => 'Účet úspěšně přidán',
'account successfully updated.' => 'Účet byl úspěšně upraven',
'account successfully added' => 'Účet úspěšně přidán',
'account successfully updated' => 'Účet byl úspěšně upraven',
'account transfers' => 'Transakce účtu',
'account type' => 'Typ účtu',
'accounts overview' => 'Přehled účtů',
'acount deleted.' => 'Účet byl smazán',
'acount deleted' => 'Účet byl smazán',
'add new account' => 'Přidat nový účet',
'add new contact' => 'Přidat nový kontakt',
'add new device' => 'Přidat nové zařízení',
......
'admins' => 'Správci',
'amount' => 'Částka',
'amount have to be more than 0!' => 'Částka musí být větší než 0',
'applicant' => 'Čekatel na členství',
'arrival' => 'Příchozí',
'assign' => 'Přiřadit',
'assign transfer' => 'Přiřadit převod',
'association members' => 'Členové sdružení',
'association members' => 'Členové sdružení',
'back' => 'Zpět',
'back to account transfers' => 'Zpět na transakce účtu',
'back to all subnets' => 'Zpět na seznam podsítí',
......
'back to the member' => 'Zpět na profil člena',
'back to the user' => 'Zpět na uživatele',
'back to this member' => 'Zpět na profil člena',
'back to the members transfers.' => 'Zpět na transakce člena',
'back to this account.' => 'Zpět na tento účet',
'back to the members transfers' => 'Zpět na transakce člena',
'back to this account' => 'Zpět na tento účet',
'back to this user' => 'Zpět na tohoto uživatele',
'back to unidentified transfers' => 'Zpět na neidentifikované platby',
'back to vlan interface parameters' => 'Zpět na parametry VLAN rozhraní',
......
'bank account' => 'Bankovní účet',
'bad phone format' => 'Špatný formát telefonu',
'bank info' => 'Údaje platby',
'bank transfer fee.' => 'Bankovní poplatek',
'bank transfer fee' => 'Bankovní poplatek',
'basic data' => 'Základní údaje',
'basic informations' => 'Základní informace',
'basic' => 'Základní',
......
'contact data' => 'Kontaktní údaje',
'contact informations' => 'Kontaktní informace',
'contact value' => 'Data kontaktu',
'cookies must be anabled.' => 'Musí být zapnuty cookies.',
'cookies must be enabled' => 'Musí být zapnuty cookies.',
'create new devices' => 'Vytvořit nové zařízení',
'create whole new device for member' => 'Vytvořit celé nové zařízení pro člena',
'create new devices for member' => 'Vytvořit nové zařízení pro člena',
......
'entrance fee' => 'Vstupní příspěvek',
'entrance fee left' => 'Nedoplatek vstupního příspěvku',
'enumerations' => 'Výčty',
'error - cant add new account.' => 'Chyba - nelze vytvořit účet.',
'error - cant add new member.' => 'Chyba - nelze vytvořit člena.',
'error - cant add new user.' => 'Chyba - nelze vytvořit uživatele.',
'error - cant add new work.' => 'Chyba - nelze přidat novou práci.',
'error - cant delete user.' => 'Chyba - nelze smazat uživatele.',
'error - cant delete work.' => 'Chyba - nelze smazat práci.',
'error - cant do the transfer.' => 'Chyba - nelze provést transakci.',
'error - cant add new account' => 'Chyba - nelze vytvořit účet.',
'error - cant add new member' => 'Chyba - nelze vytvořit člena.',
'error - cant add new user' => 'Chyba - nelze vytvořit uživatele.',
'error - cant add new work' => 'Chyba - nelze přidat novou práci.',
'error - cant delete user' => 'Chyba - nelze smazat uživatele.',
'error - cant delete work' => 'Chyba - nelze smazat práci.',
'error - cant do the transfer' => 'Chyba - nelze provést transakci.',
'error - cant change password' => 'Chyba - nelze změnit heslo',
'error - cant update account.' => 'Chyba - nelze upravit účet.',
'error - cant update aditional contacts.' => 'Chyba - nelze upravit další kontakty.',
'error - cant update member.' => 'Chyba - nelze upravit člena.',
'error - cant update user.' => 'Chyba - nelze upravit uživatele.',
'error - cant update work.' => 'Chyba - nelze upravit práci.',
'error - it is not possible to remove admin.' => 'Chyba - nelze odebrat správce zařízení.',
'error - it is not possible to remove engineer.' => 'Chyba - nelze odebrat technika zařízení.',
'error - cant update account' => 'Chyba - nelze upravit účet.',
'error - cant update aditional contacts' => 'Chyba - nelze upravit další kontakty.',
'error - cant update member' => 'Chyba - nelze upravit člena.',
'error - cant update user' => 'Chyba - nelze upravit uživatele.',
'error - cant update work' => 'Chyba - nelze upravit práci.',
'error - it is not possible to remove admin' => 'Chyba - nelze odebrat správce zařízení.',
'error - it is not possible to remove engineer' => 'Chyba - nelze odebrat technika zařízení.',
'error: parameter ID is required!' => 'Chyba: parametr ID je povinný!',
'error' => 'Chyba',
'export members to xls file' => 'Exportovat členy do xls souboru',
'fee' => 'Poplatek',
'fee or penalty comment' => 'Komentář k poplatku/pokutě',
'former member' => 'Bývalý člen',
'from/to' => 'Od/komu',
'from' => 'Od',
'gateway ip address' => 'IP adresa brány',
'gateway name' => 'Jméno brány',
'gps' => 'GPS souřadnice',
'regular member' => 'Řádný člen',
'honorary member' => 'Čestný člen',
'change' => 'Změnit',
'change password' => 'Změnit heslo',
'id' => 'ID',
'iface name' => 'Název rozhraní',
'iface' => 'Rozhraní',
'ifaces' => 'Rozhraní',
'in database can be only one infrastructure account.' => 'V databázi může být pouze jeden účet infrastruktury.',
'in database can be only one master bank account.' => 'V databázi může být pouze jeden hlavní bankovní účet',
'in database can be only one operating account.' => 'V databázi může být pouze jeden operační účet.',
'in database can be only one suppliers account.' => 'V databázi může být pouze jeden účet dodavatelů.',
'in database can be only one unidentified account.' => 'V databázi může být pouze jeden neidentifikovaný účet.',
'in database can be only one infrastructure account' => 'V databázi může být pouze jeden účet infrastruktury.',
'in database can be only one master bank account' => 'V databázi může být pouze jeden hlavní bankovní účet',
'in database can be only one operating account' => 'V databázi může být pouze jeden operační účet.',
'in database can be only one suppliers account' => 'V databázi může být pouze jeden účet dodavatelů.',
'in database can be only one unidentified account' => 'V databázi může být pouze jeden neidentifikovaný účet.',
'information' => 'Informace',
'informations about device' => 'Informace o zařízení',
'informations about gateway' => 'Informace o bráně',
......
'interface is successfully saved' => 'Rozhraní bylo úspěšně uloženo.',
'interface is successfully updated' => 'Rozhraní bylo úspěšně upraveno.',
'interface name' => 'Název rozhraní',
'Interface type' => 'Typ rozhraní',
'interface type' => 'Typ rozhraní',
'interfaces list' => 'Seznam rozhraní',
'interfaces' => 'Rozhraní',
'ip address detail' => 'Detail IP adresy',
'ip address does not match the subnet/mask' => 'IP adresa neodpovídá podsíti/masce',
'ip address is successfully saved' => 'IP adresa byla úspěšně uložena.',
'invalid ip address' => 'Chybná IP adresa',
'invalid network address' => 'Neplatná adresa sítě !',
'ip address' => 'IP adresa',
'ip address already exists' => 'IP adresa už existuje.',
'ip address detail' => 'Detail IP adresy',
'ip address does not match the subnet/mask' => 'IP adresa neodpovídá podsíti/masce.',
'ip address has been deleted' => 'IP adresa byla smazána.',
'ip address is required' => 'IP adresa je vyžadována.',
'ip address is successfully saved' => 'IP adresa byla úspěšně uložena.',
'ip address is successfully updated' => 'IP adresa byla úspěšně upravena.',
'ip address' => 'IP adresa',
'ip addresses list' => 'Seznam IP adres',
'ip addresses list of member' => 'Seznam IP adres člena',
'ip addresses' => 'IP adresy',
'language' => 'Jazyk',
'list of all members' => 'Seznam všech členů',
'list of all transactions' => 'Seznam všech převodů',
'list of all users' => 'Seznam všech uživatelů',
'list of users of member' => 'Seznam uživatelů člena',
'location address' => 'Adresa umístění',
......
'map' => 'Mapa',
'master bank account' => 'Hlavní bankovní účet sdružení',
'member' => 'Člen',
'member already have the double entry account.' => 'Člen už má podvojný účet.',
'member have to own ONE double entry account.' => 'Člen musí mít jeden podvojný účet',
'member successfully added.' => 'Člen úspěšně přidán.',
'member successfully updated.' => 'Člen úspěšně upraven.',
'member already have the double entry account' => 'Člen už má podvojný účet.',
'member have to own ONE double entry account' => 'Člen musí mít jeden podvojný účet',
'member successfully added' => 'Člen úspěšně přidán.',
'member successfully updated' => 'Člen úspěšně upraven.',
'members account' => 'Účet člena',
'members name' => 'Jméno člena (organizace)',
'members firstname and surname' => 'Jméno a příjmení člena (jméno organizace)',
......
'name' => 'Jméno',
'netmask' => 'Maska',
'network address' => 'Síťová adresa',
'network address does not match the mask' => 'Síťová adresa neodpovídá zadané masce.',
'networks' => 'Síť',
'new device admin has been successfully saved.' => 'Nový správce zařízení byl úspěšně uložen.',
'new device engineer has been successfully saved.' => 'Nový technik zařízení byl úspěšně uložen.',
'new device admin has been successfully saved' => 'Nový správce zařízení byl úspěšně uložen.',
'new device engineer has been successfully saved' => 'Nový technik zařízení byl úspěšně uložen.',
'new member' => 'Nový člen',
'new password' => 'Nové heslo',
'new transfer' => 'Nová transakce',
'new transfer from account' => 'Nová transakce z účtu',
'no' => 'ne',
'none' => 'žádný',
'non-member' => 'Nečlen',
'non-statutory member' => 'Člen bez statusu',
'number of the hours' => 'počet hodin',
'old password' => 'staré heslo',
'operating account' => 'Provozní účet',
......
'original term' => 'Původní výraz',
'ospf area id' => 'OSPF area ID',
'outbound' => 'odchozí',
'password successfully changed.' => 'Heslo úspěšně změněno',
'password successfully changed' => 'Heslo úspěšně změněno',
'password' => 'Heslo',
'pay from account' => 'Platit z účtu',
'penalty and fee' => 'Poplatky a pokuty',
......
'registration' => 'Přihláška',
'registrations' => 'Přihlášky',
'registration form' => 'Registrační formulář',
'regular member' => 'Řádný člen',
'remove' => 'Odebrat',
'save changes' => 'Uložit změny',
'save' => 'Uložit',
......
'segment name' => 'Název segmentu',
'segments list' => 'Seznam segmentů',
'segments' => 'Segmenty',
'select destination member.' => 'Vyberte člena, kterému chcete peníze převést.',
'select destination member' => 'Vyberte člena, kterému chcete peníze převést.',
'select device' => 'Vyber zařízení',
'select interface' => 'Vyber rozhraní',
'select only one subnet' => 'Vyberte jen jednu podsíť.',
'select port' => 'Vyber port',
'select segment' => 'Vyber segment',
'select subnet name' => 'Vyber jméno podsítě',
......
'show account transfers' => 'Zobrazit transakce',
'show his devices' => 'Zobrazit jeho zařízení',
'show transfer' => 'ukaž transakci',
'show transfers on this account.' => 'Ukaž transakce tohoto účtu',
'show transfers on this account' => 'Ukaž transakce tohoto účtu',
'show user' => 'Ukaž uživatele',
'show' => 'Zobrazit',
'specific symbol' => 'Specifický symbol',
......
'subnet name' => 'Název podsítě',
'subnet netmask' => 'Maska podsítě',
'subnet network address' => 'IP adresa podsítě',
'subnet has not been selected' => 'Podsíť nebyla vybrána.',
'subnets list' => 'Seznam podsítí',
'subnets' => 'Podsítě',
'suppliers account' => '',
'surname' => 'Příjmení',
'tag_802_1q' => 'tag 802.1Q',
'technology' => 'Technologie',
'the transfer successfully done.' => 'Transakce úspěšně dokončena',
'the transfer successfully done' => 'Transakce úspěšně dokončena',
'there are no items yet' => 'Neobsahuje žádné záznamy.',
'time' => 'čas',
'timestamp' => 'Čas',
'to' => 'Komu',
'total items' => 'Celkem položek',
'town' => 'Město',
......
'transfers' => 'Transakce',
'translated term' => 'Přeložený výraz',
'translation' => 'Překlad',
'translation was successfuly added.' => 'Překlad byl úspěšně přidán.',
'translation was successfuly added' => 'Překlad byl úspěšně přidán.',
'translations' => 'Překlady',
'type of contact' => 'Typ kontaktu',
'type' => 'Typ',
......
'unlogged user' => 'Nepřihlášený uživatel',
'update' => 'Upravit',
'user identification' => 'Identifikace uživatele',
'user successfully added.' => 'Uživatel úspěšně přidán',
'user successfully deleted.' => 'Uživatel úspěšně smazán',
'user successfully added' => 'Uživatel úspěšně přidán',
'user successfully deleted' => 'Uživatel úspěšně smazán',
'user' => 'Uživatel',
'username or password do not match' => 'Uživatelské jméno nebo heslo nesouhlasí',
'username' => 'Login',
'users' => 'Uživatelé',
'vacating member' => 'Přerušené členství',
'variable symbol' => 'variabilní symbol',
'vlan detail' => 'Detail VLANu',
'vlan interface detail' => 'Detail VLAN rozhraní',
......
'vlan name' => 'Název VLANu',
'vlans list' => 'Seznam VLANů',
'vlans' => 'VLANy',
'applicant' => 'Čekatel na členství',
'work confirmation' => 'Potvrzení práce',
'work successfully added.' => 'Práce úspěšně přidána',
'work successfully deleted.' => 'Práce úspěšně smazána',
'work successfully updated.' => 'Práce úspěšně uložena',
'wrong password.' => 'Špatné heslo',
'work successfully added' => 'Práce úspěšně přidána',
'work successfully deleted' => 'Práce úspěšně smazána',
'work successfully updated' => 'Práce úspěšně uložena',
'write email' => 'Napsat e-mail',
'wrong password' => 'Špatné heslo',
'yes' => 'ano',
'you have successfully logout' => 'Byl jste úspěšně odhlášen.',
'network address does not match the mask' => 'Síťová adresa neodpovídá zadané masce !',
'invalid network address' => 'Neplatná adresa sítě !',
'zip code' => 'PSČ',
'honorary member' => 'Čestný člen',
'former member' => 'Bývalý člen',
'non-statutory member' => 'Člen bez statusu',
'vacating member' => 'Přerušené členství',
'non-member' => 'Nečlen',
'write email' => 'Napsat e-mail'
'zip code' => 'PSČ'
);
freenetis/trunk/kohana/application/vendors/Spreadsheet/Excel/Writer.php
<?php
/*
* Module written/ported by Xavier Noguer <xnoguer@rezebra.com>
*
* 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';
require_once 'Spreadsheet/Excel/Writer/Workbook.php';
/**
* Class for writing Excel Spreadsheets. This class should change COMPLETELY.
*
* @author Xavier Noguer <xnoguer@rezebra.com>
* @category FileFormats
* @package Spreadsheet_Excel_Writer
*/
class Spreadsheet_Excel_Writer extends Spreadsheet_Excel_Writer_Workbook
{
/**
* The constructor. It just creates a Workbook
*
* @param string $filename The optional filename for the Workbook.
* @return Spreadsheet_Excel_Writer_Workbook The Workbook created
*/
function Spreadsheet_Excel_Writer($filename = '')
{
$this->_filename = $filename;
$this->Spreadsheet_Excel_Writer_Workbook($filename);
}
/**
* Send HTTP headers for the Excel file.
*
* @param string $filename The filename to use for HTTP headers
* @access public
*/
function send($filename)
{
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Pragma: public");
}
/**
* Utility function for writing formulas
* Converts a cell's coordinates to the A1 format.
*
* @access public
* @static
* @param integer $row Row for the cell to convert (0-indexed).
* @param integer $col Column for the cell to convert (0-indexed).
* @return string The cell identifier in A1 format
*/
function rowcolToCell($row, $col)
{
if ($col > 255) { //maximum column value exceeded
return new PEAR_Error("Maximum column value exceeded: $col");
}
$int = (int)($col / 26);
$frac = $col % 26;
$chr1 = '';
if ($int > 0) {
$chr1 = chr(ord('A') + $int - 1);
}
$chr2 = chr(ord('A') + $frac);
$row++;
return $chr1 . $chr2 . $row;
}
}
?>
freenetis/trunk/kohana/application/vendors/Spreadsheet/Excel/Writer/Worksheet.php
<?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 'Spreadsheet/Excel/Writer/Parser.php';
require_once 'Spreadsheet/Excel/Writer/BIFFwriter.php';
/**
* Class for generating Excel Spreadsheets
*
* @author Xavier Noguer <xnoguer@rezebra.com>
* @category FileFormats
* @package Spreadsheet_Excel_Writer
*/
class Spreadsheet_Excel_Writer_Worksheet extends Spreadsheet_Excel_Writer_BIFFwriter
{
/**
* Name of the Worksheet
* @var string
*/
var $name;
/**
* Index for the Worksheet
* @var integer
*/
var $index;
/**
* Reference to the (default) Format object for URLs
* @var object Format
*/
var $_url_format;
/**
* Reference to the parser used for parsing formulas
* @var object Format
*/
var $_parser;
/**
* Filehandle to the temporary file for storing data
* @var resource
*/
var $_filehandle;
/**
* Boolean indicating if we are using a temporary file for storing data
* @var bool
*/
var $_using_tmpfile;
/**
* Maximum number of rows for an Excel spreadsheet (BIFF5)
* @var integer
*/
var $_xls_rowmax;
/**
* Maximum number of columns for an Excel spreadsheet (BIFF5)
* @var integer
*/
var $_xls_colmax;
/**
* Maximum number of characters for a string (LABEL record in BIFF5)
* @var integer
*/
var $_xls_strmax;
/**
* First row for the DIMENSIONS record
* @var integer
* @see _storeDimensions()
*/
var $_dim_rowmin;
/**
* Last row for the DIMENSIONS record
* @var integer
* @see _storeDimensions()
*/
var $_dim_rowmax;
/**
* First column for the DIMENSIONS record
* @var integer
* @see _storeDimensions()
*/
var $_dim_colmin;
/**
* Last column for the DIMENSIONS record
* @var integer
* @see _storeDimensions()
*/
var $_dim_colmax;
/**
* Array containing format information for columns
* @var array
*/
var $_colinfo;
/**
* Array containing the selected area for the worksheet
* @var array
*/
var $_selection;
/**
* Array containing the panes for the worksheet
* @var array
*/
var $_panes;
/**
* The active pane for the worksheet
* @var integer
*/
var $_active_pane;
/**
* Bit specifying if panes are frozen
* @var integer
*/
var $_frozen;
/**
* Bit specifying if the worksheet is selected
* @var integer
*/
var $selected;
/**
* The paper size (for printing) (DOCUMENT!!!)
* @var integer
*/
var $_paper_size;
/**
* Bit specifying paper orientation (for printing). 0 => landscape, 1 => portrait
* @var integer
*/
var $_orientation;
/**
* The page header caption
* @var string
*/
var $_header;
/**
* The page footer caption
* @var string
*/
var $_footer;
/**
* The horizontal centering value for the page
* @var integer
*/
var $_hcenter;
/**
* The vertical centering value for the page
* @var integer
*/
var $_vcenter;
/**
* The margin for the header
* @var float
*/
var $_margin_head;
/**
* The margin for the footer
* @var float
*/
var $_margin_foot;
/**
* The left margin for the worksheet in inches
* @var float
*/
var $_margin_left;
/**
* The right margin for the worksheet in inches
* @var float
*/
var $_margin_right;
/**
* The top margin for the worksheet in inches
* @var float
*/
var $_margin_top;
/**
* The bottom margin for the worksheet in inches
* @var float
*/
var $_margin_bottom;
/**
* First row to reapeat on each printed page
* @var integer
*/
var $title_rowmin;
/**
* Last row to reapeat on each printed page
* @var integer
*/
var $title_rowmax;
/**
* First column to reapeat on each printed page
* @var integer
*/
var $title_colmin;
/**
* First row of the area to print
* @var integer
*/
var $print_rowmin;
/**
* Last row to of the area to print
* @var integer
*/
var $print_rowmax;
/**
* First column of the area to print
* @var integer
*/
var $print_colmin;
/**
* Last column of the area to print
* @var integer
*/
var $print_colmax;
/**
* Whether to use outline.
* @var integer
*/
var $_outline_on;
/**
* Auto outline styles.
* @var bool
*/
var $_outline_style;
/**
* Whether to have outline summary below.
* @var bool
*/
var $_outline_below;
/**
* Whether to have outline summary at the right.
* @var bool
*/
var $_outline_right;
/**
* Outline row level.
* @var integer
*/
var $_outline_row_level;
/**
* Whether to fit to page when printing or not.
* @var bool
*/
var $_fit_page;
/**
* Number of pages to fit wide
* @var integer
*/
var $_fit_width;
/**
* Number of pages to fit high
* @var integer
*/
var $_fit_height;
/**
* Reference to the total number of strings in the workbook
* @var integer
*/
var $_str_total;
/**
* Reference to the number of unique strings in the workbook
* @var integer
*/
var $_str_unique;
/**
* Reference to the array containing all the unique strings in the workbook
* @var array
*/
var $_str_table;
/**
* Merged cell ranges
* @var array
*/
var $_merged_ranges;
/**
* Charset encoding currently used when calling writeString()
* @var string
*/
var $_input_encoding;
/**
* Constructor
*
* @param string $name The name of the new worksheet
* @param integer $index The index of the new worksheet
* @param mixed &$activesheet The current activesheet of the workbook we belong to
* @param mixed &$firstsheet The first worksheet in the workbook we belong to
* @param mixed &$url_format The default format for hyperlinks
* @param mixed &$parser The formula parser created for the Workbook
* @access private
*/
function Spreadsheet_Excel_Writer_Worksheet($BIFF_version, $name,
$index, &$activesheet,
&$firstsheet, &$str_total,
&$str_unique, &$str_table,
&$url_format, &$parser)
{
// It needs to call its parent's constructor explicitly
$this->Spreadsheet_Excel_Writer_BIFFwriter();
$this->_BIFF_version = $BIFF_version;
$rowmax = 65536; // 16384 in Excel 5
$colmax = 256;
$this->name = $name;
$this->index = $index;
$this->activesheet = &$activesheet;
$this->firstsheet = &$firstsheet;
$this->_str_total = &$str_total;
$this->_str_unique = &$str_unique;
$this->_str_table = &$str_table;
$this->_url_format = &$url_format;
$this->_parser = &$parser;
//$this->ext_sheets = array();
$this->_filehandle = '';
$this->_using_tmpfile = true;
//$this->fileclosed = 0;
//$this->offset = 0;
$this->_xls_rowmax = $rowmax;
$this->_xls_colmax = $colmax;
$this->_xls_strmax = 255;
$this->_dim_rowmin = $rowmax + 1;
$this->_dim_rowmax = 0;
$this->_dim_colmin = $colmax + 1;
$this->_dim_colmax = 0;
$this->_colinfo = array();
$this->_selection = array(0,0,0,0);
$this->_panes = array();
$this->_active_pane = 3;
$this->_frozen = 0;
$this->selected = 0;
$this->_paper_size = 0x0;
$this->_orientation = 0x1;
$this->_header = '';
$this->_footer = '';
$this->_hcenter = 0;
$this->_vcenter = 0;
$this->_margin_head = 0.50;
$this->_margin_foot = 0.50;
$this->_margin_left = 0.75;
$this->_margin_right = 0.75;
$this->_margin_top = 1.00;
$this->_margin_bottom = 1.00;
$this->title_rowmin = null;
$this->title_rowmax = null;
$this->title_colmin = null;
$this->title_colmax = null;
$this->print_rowmin = null;
$this->print_rowmax = null;
$this->print_colmin = null;
$this->print_colmax = null;
$this->_print_gridlines = 1;
$this->_screen_gridlines = 1;
$this->_print_headers = 0;
$this->_fit_page = 0;
$this->_fit_width = 0;
$this->_fit_height = 0;
$this->_hbreaks = array();
$this->_vbreaks = array();
$this->_protect = 0;
$this->_password = null;
$this->col_sizes = array();
$this->_row_sizes = array();
$this->_zoom = 100;
$this->_print_scale = 100;
$this->_outline_row_level = 0;
$this->_outline_style = 0;
$this->_outline_below = 1;
$this->_outline_right = 1;
$this->_outline_on = 1;
$this->_merged_ranges = array();
$this->_input_encoding = '';
$this->_dv = array();
$this->_initialize();
}
/**
* Open a tmp file to store the majority of the Worksheet data. If this fails,
* for example due to write permissions, store the data in memory. This can be
* slow for large files.
*
* @access private
*/
function _initialize()
{
// Open tmp file for storing Worksheet data
$fh = tmpfile();
if ($fh) {
// Store filehandle
$this->_filehandle = $fh;
} else {
// If tmpfile() fails store data in memory
$this->_using_tmpfile = false;
}
}
/**
* Add data to the beginning of the workbook (note the reverse order)
* and to the end of the workbook.
*
* @access public
* @see Spreadsheet_Excel_Writer_Workbook::storeWorkbook()
* @param array $sheetnames The array of sheetnames from the Workbook this
* worksheet belongs to
*/
function close($sheetnames)
{
$num_sheets = count($sheetnames);
/***********************************************
* Prepend in reverse order!!
*/
// Prepend the sheet dimensions
$this->_storeDimensions();
// Prepend the sheet password
$this->_storePassword();
// Prepend the sheet protection
$this->_storeProtect();
// Prepend the page setup
$this->_storeSetup();
/* FIXME: margins are actually appended */
// Prepend the bottom margin
$this->_storeMarginBottom();
// Prepend the top margin
$this->_storeMarginTop();
// Prepend the right margin
$this->_storeMarginRight();
// Prepend the left margin
$this->_storeMarginLeft();
// Prepend the page vertical centering
$this->_storeVcenter();
// Prepend the page horizontal centering
$this->_storeHcenter();
// Prepend the page footer
$this->_storeFooter();
// Prepend the page header
$this->_storeHeader();
// Prepend the vertical page breaks
$this->_storeVbreak();
// Prepend the horizontal page breaks
$this->_storeHbreak();
// Prepend WSBOOL
$this->_storeWsbool();
// Prepend GRIDSET
$this->_storeGridset();
// Prepend GUTS
if ($this->_BIFF_version == 0x0500) {
$this->_storeGuts();
}
// Prepend PRINTGRIDLINES
$this->_storePrintGridlines();
// Prepend PRINTHEADERS
$this->_storePrintHeaders();
// Prepend EXTERNSHEET references
if ($this->_BIFF_version == 0x0500) {
for ($i = $num_sheets; $i > 0; $i--) {
$sheetname = $sheetnames[$i-1];
$this->_storeExternsheet($sheetname);
}
}
// Prepend the EXTERNCOUNT of external references.
if ($this->_BIFF_version == 0x0500) {
$this->_storeExterncount($num_sheets);
}
// Prepend the COLINFO records if they exist
if (!empty($this->_colinfo)) {
$colcount = count($this->_colinfo);
for ($i = 0; $i < $colcount; $i++) {
$this->_storeColinfo($this->_colinfo[$i]);
}
$this->_storeDefcol();
}
// Prepend the BOF record
$this->_storeBof(0x0010);
/*
* End of prepend. Read upwards from here.
***********************************************/
// Append
$this->_storeWindow2();
$this->_storeZoom();
if (!empty($this->_panes)) {
$this->_storePanes($this->_panes);
}
$this->_storeSelection($this->_selection);
$this->_storeMergedCells();
/* TODO: add data validity */
/*if ($this->_BIFF_version == 0x0600) {
$this->_storeDataValidity();
}*/
$this->_storeEof();
}
/**
* Retrieve the worksheet name.
* This is usefull when creating worksheets without a name.
*
* @access public
* @return string The worksheet's name
*/
function getName()
{
return $this->name;
}
/**
* Retrieves data from memory in one chunk, or from disk in $buffer
* sized chunks.
*
* @return string The data
*/
function getData()
{
$buffer = 4096;
// Return data stored in memory
if (isset($this->_data)) {
$tmp = $this->_data;
unset($this->_data);
$fh = $this->_filehandle;
if ($this->_using_tmpfile) {
fseek($fh, 0);
}
return $tmp;
}
// Return data stored on disk
if ($this->_using_tmpfile) {
if ($tmp = fread($this->_filehandle, $buffer)) {
return $tmp;
}
}
// No data to return
return '';
}
/**
* Sets a merged cell range
*
* @access public
* @param integer $first_row First row of the area to merge
* @param integer $first_col First column of the area to merge
* @param integer $last_row Last row of the area to merge
* @param integer $last_col Last column of the area to merge
*/
function setMerge($first_row, $first_col, $last_row, $last_col)
{
if (($last_row < $first_row) || ($last_col < $first_col)) {
return;
}
// don't check rowmin, rowmax, etc... because we don't know when this
// is going to be called
$this->_merged_ranges[] = array($first_row, $first_col, $last_row, $last_col);
}
/**
* Set this worksheet as a selected worksheet,
* i.e. the worksheet has its tab highlighted.
*
* @access public
*/
function select()
{
$this->selected = 1;
}
/**
* Set this worksheet as the active worksheet,
* i.e. the worksheet that is displayed when the workbook is opened.
* Also set it as selected.
*
* @access public
*/
function activate()
{
$this->selected = 1;
$this->activesheet = $this->index;
}
/**
* Set this worksheet as the first visible sheet.
* This is necessary when there are a large number of worksheets and the
* activated worksheet is not visible on the screen.
*
* @access public
*/
function setFirstSheet()
{
$this->firstsheet = $this->index;
}
/**
* Set the worksheet protection flag
* to prevent accidental modification and to
* hide formulas if the locked and hidden format properties have been set.
*
* @access public
* @param string $password The password to use for protecting the sheet.
*/
function protect($password)
{
$this->_protect = 1;
$this->_password = $this->_encodePassword($password);
}
/**
* Set the width of a single column or a range of columns.
*
* @access public
* @param integer $firstcol first column on the range
* @param integer $lastcol last column on the range
* @param integer $width width to set
* @param mixed $format The optional XF format to apply to the columns
* @param integer $hidden The optional hidden atribute
* @param integer $level The optional outline level
*/
function setColumn($firstcol, $lastcol, $width, $format = null, $hidden = 0, $level = 0)
{
$this->_colinfo[] = array($firstcol, $lastcol, $width, &$format, $hidden, $level);
// Set width to zero if column is hidden
$width = ($hidden) ? 0 : $width;
for ($col = $firstcol; $col <= $lastcol; $col++) {
$this->col_sizes[$col] = $width;
}
}
/**
* Set which cell or cells are selected in a worksheet
*
* @access public
* @param integer $first_row first row in the selected quadrant
* @param integer $first_column first column in the selected quadrant
* @param integer $last_row last row in the selected quadrant
* @param integer $last_column last column in the selected quadrant
*/
function setSelection($first_row,$first_column,$last_row,$last_column)
{
$this->_selection = array($first_row,$first_column,$last_row,$last_column);
}
/**
* Set panes and mark them as frozen.
*
* @access public
* @param array $panes This is the only parameter received and is composed of the following:
* 0 => Vertical split position,
* 1 => Horizontal split position
* 2 => Top row visible
* 3 => Leftmost column visible
* 4 => Active pane
*/
function freezePanes($panes)
{
$this->_frozen = 1;
$this->_panes = $panes;
}
/**
* Set panes and mark them as unfrozen.
*
* @access public
* @param array $panes This is the only parameter received and is composed of the following:
* 0 => Vertical split position,
* 1 => Horizontal split position
* 2 => Top row visible
* 3 => Leftmost column visible
* 4 => Active pane
*/
function thawPanes($panes)
{
$this->_frozen = 0;
$this->_panes = $panes;
}
/**
* Set the page orientation as portrait.
*
* @access public
*/
function setPortrait()
{
$this->_orientation = 1;
}
/**
* Set the page orientation as landscape.
*
* @access public
*/
function setLandscape()
{
$this->_orientation = 0;
}
/**
* Set the paper type. Ex. 1 = US Letter, 9 = A4
*
* @access public
* @param integer $size The type of paper size to use
*/
function setPaper($size = 0)
{
$this->_paper_size = $size;
}
/**
* Set the page header caption and optional margin.
*
* @access public
* @param string $string The header text
* @param float $margin optional head margin in inches.
*/
function setHeader($string,$margin = 0.50)
{
if (strlen($string) >= 255) {
//carp 'Header string must be less than 255 characters';
return;
}
$this->_header = $string;
$this->_margin_head = $margin;
}
/**
* Set the page footer caption and optional margin.
*
* @access public
* @param string $string The footer text
* @param float $margin optional foot margin in inches.
*/
function setFooter($string,$margin = 0.50)
{
if (strlen($string) >= 255) {
//carp 'Footer string must be less than 255 characters';
return;
}
$this->_footer = $string;
$this->_margin_foot = $margin;
}
/**
* Center the page horinzontally.
*
* @access public
* @param integer $center the optional value for centering. Defaults to 1 (center).
*/
function centerHorizontally($center = 1)
{
$this->_hcenter = $center;
}
/**
* Center the page vertically.
*
* @access public
* @param integer $center the optional value for centering. Defaults to 1 (center).
*/
function centerVertically($center = 1)
{
$this->_vcenter = $center;
}
/**
* Set all the page margins to the same value in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMargins($margin)
{
$this->setMarginLeft($margin);
$this->setMarginRight($margin);
$this->setMarginTop($margin);
$this->setMarginBottom($margin);
}
/**
* Set the left and right margins to the same value in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMargins_LR($margin)
{
$this->setMarginLeft($margin);
$this->setMarginRight($margin);
}
/**
* Set the top and bottom margins to the same value in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMargins_TB($margin)
{
$this->setMarginTop($margin);
$this->setMarginBottom($margin);
}
/**
* Set the left margin in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMarginLeft($margin = 0.75)
{
$this->_margin_left = $margin;
}
/**
* Set the right margin in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMarginRight($margin = 0.75)
{
$this->_margin_right = $margin;
}
/**
* Set the top margin in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMarginTop($margin = 1.00)
{
$this->_margin_top = $margin;
}
/**
* Set the bottom margin in inches.
*
* @access public
* @param float $margin The margin to set in inches
*/
function setMarginBottom($margin = 1.00)
{
$this->_margin_bottom = $margin;
}
/**
* Set the rows to repeat at the top of each printed page.
*
* @access public
* @param integer $first_row First row to repeat
* @param integer $last_row Last row to repeat. Optional.
*/
function repeatRows($first_row, $last_row = null)
{
$this->title_rowmin = $first_row;
if (isset($last_row)) { //Second row is optional
$this->title_rowmax = $last_row;
} else {
$this->title_rowmax = $first_row;
}
}
/**
* Set the columns to repeat at the left hand side of each printed page.
*
* @access public
* @param integer $first_col First column to repeat
* @param integer $last_col Last column to repeat. Optional.
*/
function repeatColumns($first_col, $last_col = null)
{
$this->title_colmin = $first_col;
if (isset($last_col)) { // Second col is optional
$this->title_colmax = $last_col;
} else {
$this->title_colmax = $first_col;
}
}
/**
* Set the area of each worksheet that will be printed.
*
* @access public
* @param integer $first_row First row of the area to print
* @param integer $first_col First column of the area to print
* @param integer $last_row Last row of the area to print
* @param integer $last_col Last column of the area to print
*/
function printArea($first_row, $first_col, $last_row, $last_col)
{
$this->print_rowmin = $first_row;
$this->print_colmin = $first_col;
$this->print_rowmax = $last_row;
$this->print_colmax = $last_col;
}
/**
* Set the option to hide gridlines on the printed page.
*
* @access public
*/
function hideGridlines()
{
$this->_print_gridlines = 0;
}
/**
* Set the option to hide gridlines on the worksheet (as seen on the screen).
*
* @access public
*/
function hideScreenGridlines()
{
$this->_screen_gridlines = 0;
}
/**
* Set the option to print the row and column headers on the printed page.
*
* @access public
* @param integer $print Whether to print the headers or not. Defaults to 1 (print).
*/
function printRowColHeaders($print = 1)
{
$this->_print_headers = $print;
}
/**
* Set the vertical and horizontal number of pages that will define the maximum area printed.
* It doesn't seem to work with OpenOffice.
*
* @access public
* @param integer $width Maximun width of printed area in pages
* @param integer $height Maximun heigth of printed area in pages
* @see setPrintScale()
*/
function fitToPages($width, $height)
{
$this->_fit_page = 1;
$this->_fit_width = $width;
$this->_fit_height = $height;
}
/**
* Store the horizontal page breaks on a worksheet (for printing).
* The breaks represent the row after which the break is inserted.
*
* @access public
* @param array $breaks Array containing the horizontal page breaks
*/
function setHPagebreaks($breaks)
{
foreach ($breaks as $break) {
array_push($this->_hbreaks, $break);
}
}
/**
* Store the vertical page breaks on a worksheet (for printing).
* The breaks represent the column after which the break is inserted.
*
* @access public
* @param array $breaks Array containing the vertical page breaks
*/
... Rozdílový soubor je zkrácen, protože jeho délka přesahuje max. limit.

Také k dispozici: Unified diff