!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/main_file/vendor/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Reader/Ods/   drwxr-xr-x
Free 13.16 GB of 57.97 GB (22.7%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     PageSettings.php (7.89 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace PhpOffice\PhpSpreadsheet\Reader\Ods;

use 
DOMDocument;
use 
PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use 
PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;

class 
PageSettings
{
    
/**
     * @var string
     */
    
private $officeNs;

    
/**
     * @var string
     */
    
private $stylesNs;

    
/**
     * @var string
     */
    
private $stylesFo;

    
/**
     * @var string
     */
    
private $tableNs;

    
/**
     * @var string[]
     */
    
private $tableStylesCrossReference = [];

    
/** @var array */
    
private $pageLayoutStyles = [];

    
/**
     * @var string[]
     */
    
private $masterStylesCrossReference = [];

    
/**
     * @var string[]
     */
    
private $masterPrintStylesCrossReference = [];

    public function 
__construct(DOMDocument $styleDom)
    {
        
$this->setDomNameSpaces($styleDom);
        
$this->readPageSettingStyles($styleDom);
        
$this->readStyleMasterLookup($styleDom);
    }

    private function 
setDomNameSpaces(DOMDocument $styleDom): void
    
{
        
$this->officeNs $styleDom->lookupNamespaceUri('office');
        
$this->stylesNs $styleDom->lookupNamespaceUri('style');
        
$this->stylesFo $styleDom->lookupNamespaceUri('fo');
        
$this->tableNs $styleDom->lookupNamespaceUri('table');
    }

    private function 
readPageSettingStyles(DOMDocument $styleDom): void
    
{
        
$item0 $styleDom->getElementsByTagNameNS($this->officeNs'automatic-styles')->item(0);
        
$styles = ($item0 === null) ? [] : $item0->getElementsByTagNameNS($this->stylesNs'page-layout');

        foreach (
$styles as $styleSet) {
            
$styleName $styleSet->getAttributeNS($this->stylesNs'name');
            
$pageLayoutProperties $styleSet->getElementsByTagNameNS($this->stylesNs'page-layout-properties')[0];
            
$styleOrientation $pageLayoutProperties->getAttributeNS($this->stylesNs'print-orientation');
            
$styleScale $pageLayoutProperties->getAttributeNS($this->stylesNs'scale-to');
            
$stylePrintOrder $pageLayoutProperties->getAttributeNS($this->stylesNs'print-page-order');
            
$centered $pageLayoutProperties->getAttributeNS($this->stylesNs'table-centering');

            
$marginLeft $pageLayoutProperties->getAttributeNS($this->stylesFo'margin-left');
            
$marginRight $pageLayoutProperties->getAttributeNS($this->stylesFo'margin-right');
            
$marginTop $pageLayoutProperties->getAttributeNS($this->stylesFo'margin-top');
            
$marginBottom $pageLayoutProperties->getAttributeNS($this->stylesFo'margin-bottom');
            
$header $styleSet->getElementsByTagNameNS($this->stylesNs'header-style')[0];
            
$headerProperties $header->getElementsByTagNameNS($this->stylesNs'header-footer-properties')[0];
            
$marginHeader = isset($headerProperties) ? $headerProperties->getAttributeNS($this->stylesFo'min-height') : null;
            
$footer $styleSet->getElementsByTagNameNS($this->stylesNs'footer-style')[0];
            
$footerProperties $footer->getElementsByTagNameNS($this->stylesNs'header-footer-properties')[0];
            
$marginFooter = isset($footerProperties) ? $footerProperties->getAttributeNS($this->stylesFo'min-height') : null;

            
$this->pageLayoutStyles[$styleName] = (object) [
                
'orientation' => $styleOrientation ?: PageSetup::ORIENTATION_DEFAULT,
                
'scale' => $styleScale ?: 100,
                
'printOrder' => $stylePrintOrder,
                
'horizontalCentered' => $centered === 'horizontal' || $centered === 'both',
                
'verticalCentered' => $centered === 'vertical' || $centered === 'both',
                
// margin size is already stored in inches, so no UOM conversion is required
                
'marginLeft' => (float) ($marginLeft ?? 0.7),
                
'marginRight' => (float) ($marginRight ?? 0.7),
                
'marginTop' => (float) ($marginTop ?? 0.3),
                
'marginBottom' => (float) ($marginBottom ?? 0.3),
                
'marginHeader' => (float) ($marginHeader ?? 0.45),
                
'marginFooter' => (float) ($marginFooter ?? 0.45),
            ];
        }
    }

    private function 
readStyleMasterLookup(DOMDocument $styleDom): void
    
{
        
$item0 $styleDom->getElementsByTagNameNS($this->officeNs'master-styles')->item(0);
        
$styleMasterLookup = ($item0 === null) ? [] : $item0->getElementsByTagNameNS($this->stylesNs'master-page');

        foreach (
$styleMasterLookup as $styleMasterSet) {
            
$styleMasterName $styleMasterSet->getAttributeNS($this->stylesNs'name');
            
$pageLayoutName $styleMasterSet->getAttributeNS($this->stylesNs'page-layout-name');
            
$this->masterPrintStylesCrossReference[$styleMasterName] = $pageLayoutName;
        }
    }

    public function 
readStyleCrossReferences(DOMDocument $contentDom): void
    
{
        
$item0 $contentDom->getElementsByTagNameNS($this->officeNs'automatic-styles')->item(0);
        
$styleXReferences = ($item0 === null) ? [] : $item0->getElementsByTagNameNS($this->stylesNs'style');

        foreach (
$styleXReferences as $styleXreferenceSet) {
            
$styleXRefName $styleXreferenceSet->getAttributeNS($this->stylesNs'name');
            
$stylePageLayoutName $styleXreferenceSet->getAttributeNS($this->stylesNs'master-page-name');
            
$styleFamilyName $styleXreferenceSet->getAttributeNS($this->stylesNs'family');
            if (!empty(
$styleFamilyName) && $styleFamilyName === 'table') {
                
$styleVisibility 'true';
                foreach (
$styleXreferenceSet->getElementsByTagNameNS($this->stylesNs'table-properties') as $tableProperties) {
                    
$styleVisibility $tableProperties->getAttributeNS($this->tableNs'display');
                }
                
$this->tableStylesCrossReference[$styleXRefName] = $styleVisibility;
            }
            if (!empty(
$stylePageLayoutName)) {
                
$this->masterStylesCrossReference[$styleXRefName] = $stylePageLayoutName;
            }
        }
    }

    public function 
setVisibilityForWorksheet(Worksheet $worksheetstring $styleName): void
    
{
        if (!
array_key_exists($styleName$this->tableStylesCrossReference)) {
            return;
        }

        
$worksheet->setSheetState(
            
$this->tableStylesCrossReference[$styleName] === 'false'
                
Worksheet::SHEETSTATE_HIDDEN
                
Worksheet::SHEETSTATE_VISIBLE
        
);
    }

    public function 
setPrintSettingsForWorksheet(Worksheet $worksheetstring $styleName): void
    
{
        if (!
array_key_exists($styleName$this->masterStylesCrossReference)) {
            return;
        }
        
$masterStyleName $this->masterStylesCrossReference[$styleName];

        if (!
array_key_exists($masterStyleName$this->masterPrintStylesCrossReference)) {
            return;
        }
        
$printSettingsIndex $this->masterPrintStylesCrossReference[$masterStyleName];

        if (!
array_key_exists($printSettingsIndex$this->pageLayoutStyles)) {
            return;
        }
        
$printSettings $this->pageLayoutStyles[$printSettingsIndex];

        
$worksheet->getPageSetup()
            ->
setOrientation($printSettings->orientation ?? PageSetup::ORIENTATION_DEFAULT)
            ->
setPageOrder($printSettings->printOrder === 'ltr' PageSetup::PAGEORDER_OVER_THEN_DOWN PageSetup::PAGEORDER_DOWN_THEN_OVER)
            ->
setScale((int) trim($printSettings->scale'%'))
            ->
setHorizontalCentered($printSettings->horizontalCentered)
            ->
setVerticalCentered($printSettings->verticalCentered);

        
$worksheet->getPageMargins()
            ->
setLeft($printSettings->marginLeft)
            ->
setRight($printSettings->marginRight)
            ->
setTop($printSettings->marginTop)
            ->
setBottom($printSettings->marginBottom)
            ->
setHeader($printSettings->marginHeader)
            ->
setFooter($printSettings->marginFooter);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0058 ]--