!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/lampp/lib/php/HTML/QuickForm2/Container/   drwxr-xr-x
Free 11.88 GB of 61.93 GB (19.19%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Group.php (12.18 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Base class for HTML_QuickForm2 groups
 *
 * PHP version 5
 *
 * LICENSE:
 *
 * Copyright (c) 2006-2014, Alexey Borzov <avb@php.net>,
 *                          Bertrand Mansion <golgote@mamasam.com>
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *    * The names of the authors may not be used to endorse or promote products
 *      derived from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * @category HTML
 * @package  HTML_QuickForm2
 * @author   Alexey Borzov <avb@php.net>
 * @author   Bertrand Mansion <golgote@mamasam.com>
 * @license  http://opensource.org/licenses/bsd-license.php New BSD License
 * @link     http://pear.php.net/package/HTML_QuickForm2
 */

/**
 * Base class for all HTML_QuickForm2 containers
 */
require_once 'HTML/QuickForm2/Container.php';

/**
 * Base class for QuickForm2 groups of elements
 *
 * @category HTML
 * @package  HTML_QuickForm2
 * @author   Alexey Borzov <avb@php.net>
 * @author   Bertrand Mansion <golgote@mamasam.com>
 * @license  http://opensource.org/licenses/bsd-license.php New BSD License
 * @version  Release: 2.0.2
 * @link     http://pear.php.net/package/HTML_QuickForm2
 */
class HTML_QuickForm2_Container_Group extends HTML_QuickForm2_Container
{
   
/**
    * Group name
    * If set, group name will be used as prefix for contained
    * element names, like groupname[elementname].
    * @var string
    */
    
protected $name;

   
/**
    * Previous group name
    * Stores the previous group name when the group name is changed.
    * Used to restore children names if necessary.
    * @var string
    */
    
protected $previousName;

    public function 
getType()
    {
        return 
'group';
    }

    protected function 
prependsName()
    {
        return 
strlen($this->name) > 0;
    }

    protected function 
getChildValues($filtered false)
    {
        
$value parent::getChildValues($filtered);
        if (!
$this->prependsName()) {
            return 
$value;

        } elseif (!
strpos($this->getName(), '[')) {
            return isset(
$value[$this->getName()])? $value[$this->getName()]: null;

        } else {
            
$tokens   =  explode('['str_replace(']'''$this->getName()));
            
$valueAry =& $value;
            do {
                
$token array_shift($tokens);
                if (!isset(
$valueAry[$token])) {
                    return 
null;
                }
                
$valueAry =& $valueAry[$token];
            } while (
$tokens);
            return 
$valueAry;
        }
    }

    public function 
setValue($value)
    {
        
// Prepare a mapper for element names as array
        
$prefixLength $this->prependsName() ? substr_count($this->getName(), '[') + 0;
        
$nameParts $groupValues = array();

        
/* @var $child HTML_QuickForm2_Node */
        
foreach ($this as $i => $child) {
            
$tokens explode('['str_replace(']'''$child->getName()));
            if (
$prefixLength) {
                
$tokens array_slice($tokens$prefixLength);
            }
            
$nameParts[] = $tokens;
            if (
$child instanceof self) {
                
$groupValues[$i] = array();
            }
        }

        
// Iterate over values to find corresponding element

        
$index 0;

        foreach ((array)
$value as $k => $v) {
            foreach (
$nameParts as $i => $tokens) {
                
$val = array($k => $v);
                do {
                    
$token array_shift($tokens);
                    
$numeric false;
                    if (
$token == "") {
                        
// special case for a group of checkboxes
                        
if (empty($tokens) && is_array($val)
                            && 
$this->elements[$i] instanceof HTML_QuickForm2_Element_InputCheckbox
                        
) {
                            if (
in_array($this->elements[$i]->getAttribute('value'),
                                
array_map('strval'$val), true)
                            ) {
                                
$this->elements[$i]->setAttribute('checked');
                                
// don't want to remove 'checked' on next iteration
                                
unset($nameParts[$i]);
                            } else {
                                
$this->elements[$i]->removeAttribute('checked');
                            }
                            continue 
2;
                        }
                        
// Deal with numeric indexes in values
                        
$token $index;
                        
$numeric true;
                    }
                    if (!
is_array($val) || !isset($val[$token])) {
                        
// Not found, skip next iterations
                        
continue 2;

                    } else {
                        
// Found a value
                        
$val $val[$token];
                        if (
$numeric) {
                            
$index += 1;
                        }
                    }

                } while (!empty(
$tokens));

                
// Found a value corresponding to element name
                
$child $this->elements[$i];
                if (
$child instanceof self) {
                    
$groupValues[$i] += (array)$val;
                } else {
                    
$child->setValue($val);
                    
// Speed up next iterations
                    
unset($nameParts[$i]);
                }
                if (!(
$child instanceof HTML_QuickForm2_Element_InputRadio)) {
                    break;
                }
            }
        }
        foreach (
array_keys($nameParts) as $i) {
            
$this->elements[$i]->setValue(isset($groupValues[$i]) ? $groupValues[$i] : null);
        }

        return 
$this;
    }


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

    public function 
setName($name)
    {
        
$this->previousName $this->name;
        
$this->name $name;
        foreach (
$this as $child) {
            
$this->renameChild($child);
        }
        return 
$this;
    }

   
/**
    * Prepends group's name to contained element's name
    *
    * Used when adding an element to the group or changing group's name
    *
    * @param HTML_QuickForm2_Node $element
    *
    * @return HTML_QuickForm2_Node
    */
    
protected function renameChild(HTML_QuickForm2_Node $element)
    {
        
$tokens explode('['str_replace(']'''$element->getName()));
        
// Child has already been renamed by its group before
        
if ($this === $element->getContainer() && strlen($this->previousName)) {
            
$gtokens explode('['str_replace(']'''$this->previousName));
            if (
$gtokens === array_slice($tokens0count($gtokens))) {
                
array_splice($tokens0count($gtokens));
            }
        }

        if (
strlen($this->name)) {
            
$element->setName($this->name '[' implode(']['$tokens) . ']');
        } elseif (
strlen($this->previousName)) {
            
$elname array_shift($tokens);
            foreach (
$tokens as $token) {
                
$elname .= '[' $token ']';
            }
            
$element->setName($elname);
        }

        return 
$element;
    }

   
/**
    * Appends an element to the container
    *
    * If the element was previously added to the container or to another
    * container, it is first removed there.
    *
    * @param HTML_QuickForm2_Node $element Element to add
    *
    * @return   HTML_QuickForm2_Node     Added element
    * @throws   HTML_QuickForm2_InvalidArgumentException
    */
    
public function appendChild(HTML_QuickForm2_Node $element)
    {
        if (
null !== ($container $element->getContainer())) {
            
$container->removeChild($element);
        }
        
// Element can be renamed only after being removed from container
        
$this->renameChild($element);

        
$element->setContainer($this);
        
$this->elements[] = $element;
        return 
$element;
    }

   
/**
    * Removes the element from this container
    *
    * If the reference object is not given, the element will be appended.
    *
    * @param HTML_QuickForm2_Node $element Element to remove
    *
    * @return   HTML_QuickForm2_Node     Removed object
    */
    
public function removeChild(HTML_QuickForm2_Node $element)
    {
        
$element parent::removeChild($element);
        if (
$this->prependsName()) {
            
$name preg_replace(
                
'/^' preg_quote($this->getName(), '/') . '\[([^\]]*)\]/',
                
'\1'$element->getName()
            );
            
$element->setName($name);
        }
        return 
$element;
    }

   
/**
    * Inserts an element in the container
    *
    * If the reference object is not given, the element will be appended.
    *
    * @param HTML_QuickForm2_Node $element   Element to insert
    * @param HTML_QuickForm2_Node $reference Reference to insert before
    *
    * @return   HTML_QuickForm2_Node     Inserted element
    */
    
public function insertBefore(HTML_QuickForm2_Node $elementHTML_QuickForm2_Node $reference null)
    {
        if (
null === $reference) {
            return 
$this->appendChild($element);
        }
        return 
parent::insertBefore($this->renameChild($element), $reference);
    }

   
/**
    * Sets string(s) to separate grouped elements
    *
    * @param string|array $separator Use a string for one separator, array for
    *                                alternating separators
    *
    * @return $this
    */
    
public function setSeparator($separator)
    {
        
$this->data['separator'] = $separator;
        return 
$this;
    }

   
/**
    * Returns string(s) to separate grouped elements
    *
    * @return   string|array    Separator, null if not set
    */
    
public function getSeparator()
    {
        return isset(
$this->data['separator'])? $this->data['separator']: null;
    }

   
/**
    * Renders the group using the given renderer
    *
    * @param HTML_QuickForm2_Renderer $renderer
    *
    * @return   HTML_QuickForm2_Renderer
    */
    
public function render(HTML_QuickForm2_Renderer $renderer)
    {
        
$renderer->startGroup($this);
        foreach (
$this as $element) {
            
$element->render($renderer);
        }
        
$this->renderClientRules($renderer->getJavascriptBuilder());
        
$renderer->finishGroup($this);
        return 
$renderer;
    }

    public function 
__toString()
    {
        
HTML_QuickForm2_Loader::loadClass('HTML_QuickForm2_Renderer');

        
$renderer $this->render(
            
HTML_QuickForm2_Renderer::factory('default')
                ->
setTemplateForId($this->getId(), '{content}')
        );
        return 
$renderer->__toString()
               . 
$renderer->getJavascriptBuilder()->getSetupCode(nulltrue);
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.5046 ]--