!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)

E:\copia nuevo\php\pear\PhpDocumentor\phpDocumentor\   drwxrwxrwx
Free 7.32 GB of 239.26 GB (3.06%)
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:     InlineTags.inc (32.11 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * All abstract representations of inline tags are in this file
 *
 * phpDocumentor :: automatic documentation generator
 * 
 * PHP versions 4 and 5
 *
 * Copyright (c) 2002-2008 Gregory Beaver
 * 
 * LICENSE:
 * 
 * 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
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    CVS: $Id: InlineTags.inc 286921 2009-08-08 05:01:24Z ashnazg $
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      separate file since 1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 */

/**
 * Use this element to represent an {@}inline tag} like {@}link}
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @since      1.0rc1
 * @tutorial   inlinetags.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserInlineTag extends parserBase
{
    
/**
     * Element type
     *
     * Type is used by many functions to skip the hassle of
     *
     * <code>
     * if phpDocumentor_get_class($blah) == 'parserBlah'
     * </code>
     * always "inlinetag"
     * @var string
     */
    
var $type 'inlinetag';
    
/**
     * the name of the inline tag (like link)
     * @var string
     */
    
var $inlinetype '';
    
    
/**
     * sets up the tag
     *
     * @param string $type  tag type (example: link)
     * @param string $value tag value (example: what to link to)
     */
    
function parserInlineTag($type$value)
    {
        
$this->inlinetype $type;
        
$this->value      trim($value);
    }
    
    
/**
     * get length of the tag
     *
     * @return integer length of the tag
     * @todo CS cleanup - rename to strLen for camelCase rule
     */
    
function Strlen()
    {
        
// fix 1203451
        
if (is_array($this->value)) {
            return 
array_reduce(create_function('$a, $b''return $a + strlen($b);'))
                + 
count($this->value);
        }
        return 
strlen($this->value);
    }
    
    
/**
     * always gets an empty string
     *
     * @return string always '', used by {@link Parser::handleDocBlock()} to
     *                calculate the short description of a DocBlock
     * @see parserStringWithInlineTags::getString()
     * @see parserStringWithInlineTags::trimmedStrlen()
     */
    
function getString()
    {
        return 
'';
    }
}

/**
 * represents inline links
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @since      1.0rc1
 * @tutorial   tags.inlinelink.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserLinkInlineTag extends parserInlineTag
{
    
/**
     * text to display in the link, can be different from the link for standard
     * links like websites
     * @var string
     */
    
var $linktext '';
    
    
/**
     * sets up the tag
     *
     * @param string $link stored in $value, see {@link parserBase::$value}
     * @param string $text see {@link $linktext}
     */
    
function parserLinkInlineTag($link$text)
    {
        if (
strpos($link',')) {
            
$link explode(','$link);
            
parserInlineTag::parserInlineTag('link''');
            
$this->value $link;
        } else {
            
parserInlineTag::parserInlineTag('link'$link);
        }
        
$this->linktext trim($text);
    }
    
    
/**
     * calls the output conversion
     *
     * @param Converter &$c converter used to change the abstract link
     *                      into text for display
     *
     * @return false|string returns the converted link or false
     *                      if not converted successfully
     * @todo CS cleanup - rename to convert for camelCase rule
     */
    
function Convert(&$c)
    {
        if (
is_array($this->value)) {
            
$ret '';
            foreach (
$this->value as $text) {
                if (!empty(
$ret)) {
                    
$ret .= ', ';
                }
                
$ret .= $this->ConvertPart($ctrim($text));
            }
            return 
$ret;
        } else {
            return 
$this->ConvertPart($c$this->value);
        }
    }
    
    
/**
     * convert part of the tag
     *
     * @param Converter &$c    the output converter
     * @param string    $value the tag value
     *
     * @return string
     * @todo CS cleanup - rename to convertPart for camelCase rule
     */
    
function ConvertPart(&$c$value)
    {
        if (
strpos($value'://') || (strpos($value'mailto:') === 0)) {
            if (
strpos($value' ')) {
                
$value explode(' '$value);
                
$link  array_shift($value);
                
$text  join(' '$value);
            } else {
                
$link $value;
                
$text $this->linktext;
            }
            return 
$c->returnLink($linkhtmlspecialchars($text));
        } else {
            
$savevalue $value;
            
$descrip   false;
            if (
strpos(trim($value), ' ')) {
                
$v preg_split('/\s/'trim($value));
                if (
in_array(strtolower($v[0]), array('object''function'))) {
                    if (!isset(
$v[1]) 
                        || (isset(
$v[1]) && strlen($v[1])
                            && !
in_array($v[1]{0}, array('$','&'))
                            && 
$v[1] != '###commanana####'
                        
)
                    ) {
                        
$vsave $v[0];
                        
array_shift($v);
                        
$v[0] = $vsave ' ' $v[0];
                    }
                }
                
$value $c->getLink($v[0]);
                
array_shift($v);
                
$descrip join($v' ');
                
$descrip str_replace('###commanana####'','$descrip);
            } else {
                
$value $c->getLink($value);
            }
            if (
is_string($value)) {
                
// feature 564991
                
if (strpos($value'://')) {
                    
// php function
                    
return $c->returnLink($value$descrip $descrip 
                        
str_replace('PHP_MANUAL#'''$value));
                }
                return 
$value;
            }
            if (!
$descrip) {
                
$descrip $c->type_adjust($savevalue);
            }
            if (
is_object($value)) {
                return 
$c->returnSee($value$descrip);
            }
            return 
$savevalue;
        }
    }
}

/**
 * Represents inline links to external tutorial documentation
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @tutorial   tags.inlinetutorial.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserTutorialInlineTag extends parserLinkInlineTag
{
    
/**
     * constructor
     *
     * @param string $link stored in $value, see {@link parserBase::$value}
     * @param string $text see {@link $linktext}
     */
    
function parserTutorialInlineTag($link,$text)
    {
        
parserInlineTag::parserInlineTag('tutorial'$link);
        
$this->linktext trim($text);
    }

    
/**
     * convert part of the tag
     *
     * @param Converter &$c converter used to change the abstract link 
     *                      into text for display
     *
     * @return mixed returns the converted link
     *               or false if not converted successfully
     * @todo CS cleanup - rename to convert for camelCase rule
     */
    
function Convert(&$c)
    {
        
$descrip false;
        if (
strpos($this->value',') === false) {
            if (
strpos(trim($this->value), ' ')) {
                
$v     explode(' 'trim($this->value));
                
$value $c->getTutorialLink($v[0]);
                
array_shift($v);
                
$descrip join($v' ');
            } else {
                
$value $c->getTutorialLink($this->value);
            }
        } else {
            
$vals    explode(','$this->value);
            
$descrip = array();
            foreach (
$vals as $val) {
                
$val trim($val);
                if (
strpos($val' ')) {
                    
$v       explode(' '$val);
                    
$value[] = $c->getTutorialLink($v[0]);
                    
array_shift($v);
                    
$descrip[] = join($v' ');
                } else {
                    
$value[]   = $c->getTutorialLink($val);
                    
$descrip[] = false;
                }
            }
        }
        if (
is_string($value)) {
            return 
$value;
        }
        if (
is_object($value)) {
            return 
$c->returnSee($value$descrip);
        }
        
/* 
         * getLink parsed a comma-delimited list of linked thingies, 
         * add the commas back in
         */
        
if (is_array($value)) {
            
$a '';
            foreach (
$value as $i => $bub) {
                if (!empty(
$a)) {
                    
$a .= ', ';
                }
                if (
is_string($value[$i])) {
                    
$a .= $value[$i];
                }
                if (
is_object($value[$i])) {
                    
$a .= $c->returnSee($value[$i], $descrip[$i]);
                }
            }
            return 
$a;
        }
        return 
false;
    }
}

/**
 * represents inline source tag, used for function/method source
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @tutorial   tags.inlinesource.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserSourceInlineTag extends parserInlineTag
{
    
/**
     * always 'source'
     * @var string
     */
    
var $inlinetype 'source';
    
/**
     * First line of source code to display
     * @var integer
     * @see $end
     */
    
var $start 1;
    
/**
     * Last line to display
     * @var '*'|integer If '*' then the whole source will be used, otherwise
     *                  the {@link $start} to $end line numbers will be displayed
     */
    
var $end '*';
    
/**
     * tokenized source organized by line numbers for php 4.3.0+, the old
     * {@}source} tag used a string
     * @var string|array
     */
    
var $source false;
    
/**#@+ @access private */
    /** @var string|false */
    
var $_class;
    
/**#@-*/

    /**
     * constructor
     *
     * @param string $value format "start [end]",
     *                      where start and end are line numbers
     *                      with the end line number optional
     */
    
function parserSourceInlineTag($value)
    {
        
parserInlineTag::parserInlineTag('source''');
        
preg_match('/^([0-9]+)\W([0-9]*)$/'trim($value), $match);
        if (!
count($match)) {
            
preg_match('/^([0-9]+)$/'trim($value), $match);
            if (
count($match)) {
                
$this->start = (int) $match[1];
            }
        } else {
            
$this->start = (int) $match[1];
            
$this->end   = (int) $match[2];
        }
    }
    
    
/**
     * only used to determine blank lines.  {@}source} will not be blank, probably
     *
     * @return int
     */
    
function Strlen()
    {
        return 
1;
    }
    
    
/**
     * gets the source string
     *
     * @return string
     */
    
function getString()
    {
        return 
'{@source}';
    }
    
    
/**
     * sets the source tag's value
     *
     * @param string|array $source source code
     * @param string|bool  $class  class name if this is a method,
     *                             boolean in php 4.3.0, 
     *                             if this is a method this will be true
     *
     * @return void
     */
    
function setSource($source$class false)
    {
        if (
is_array($source)) {
            
$this->_class $class;
            
$this->source $source;
        } else {
            
$source       strstr($source'function');
            
$pos          strrpos($source'}');
            
$this->source substr($source0$pos 1);
        }
    }
    
    
/**
     * convert the tag
     *
     * @param Converter &$c the output converter object
     *
     * @return string
     * @uses stringConvert() in PHP 4.2.3-, this method is used to convert
     * @uses arrayConvert() in PHP 4.3.0+, this method is used to convert
     * @todo CS cleanup - rename to convert for camelCase rule
     */
    
function Convert(&$c)
    {
        if (
is_string($this->source)) {
            return 
$this->stringConvert($c);
        }
        return 
$this->arrayConvert($c);
    }
    
    
/**
     * converter helper used in PHP 4.3.0+
     *
     * @param Converter &$c the output converter object
     *
     * @return string
     * @uses phpDocumentor_HighlightParser Parses the tokenized source
     */
    
function arrayConvert(&$c)
    {
        
$source $this->source;
        if (
$this->end != '*') {
            
$source array_slice($this->source0$this->end $this->start 1);
        }
        
$start $this->start 1;
        if (
$start 0) {
            
$start 0;
        }
        return 
$c->ProgramExample($sourcetruetrue$this->_class$start);
    }
    
    
/**
     * converter helper used in PHP 4.2.3-
     *
     * @param Converter &$c the output converter object
     *
     * @return string
     * @uses Converter::unmangle() remove the extraneous stuff from
     *                             {@link highlight_string()}
     * @deprecated in favor of PHP 4.3.0+ {@link arrayConvert()}
     */
    
function stringConvert(&$c)
    {
        
$source highlight_string('<?php ' $this->source ' ?>'true);
        
$source '<code>' substr($sourcestrlen('<code><font color="#000000">
<font color="#0000CC">&lt;?php&nbsp;</font>'
) - 1);
        
$source str_replace('}&nbsp;</font><font color="#0000CC">?&gt;</font>',
            
'}</font></code>'$source);
        if (
$this->start || ($this->end != '*')) {
            
$source explode('<br />'$source);
            
$start  $this->start;
            if (
$this->end != '*') {
                
$source array_slice($source$start 1$this->end $start 1);
            } else {
                
$source array_slice($source$start 1);
            }
            
$source implode($source'<br />');
            if (
$start 0) {
                
$source "<code>$source";
            }
            if (
$this->end != '*') {
                
$source "$source</code>";
            }
        }
        
$source $c->unmangle($source$this->source);
        return 
$source;
    }
}

/**
 * Represents the example inline tag, used to display an example file
 * inside a docblock or tutorial
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @tutorial   tags.inlineexample.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserExampleInlineTag extends parserSourceInlineTag
{
    
/**
     * constructor
     *
     * @param string $value        format "filepath[ start [end]]" 
     *                             where start and end are line numbers
     *                             with the end line number optional
     * @param string $current_path full path to the current file, 
     *                             used to check relative directory locations
     * @param bool   $isTutorial   if true, then this is in a tutorial
     *
     * @return mixed
     * @todo replace tokenizer_ext constant with TOKENIZER_EXT for CS rule
     */
    
function parserExampleInlineTag($value$current_path$isTutorial false)
    {
        global 
$_phpDocumentor_setting;
        
parserInlineTag::parserInlineTag('example''');
        
$path     false;
        
$tagValue trim($value);
        
$path     $isAbsPath $pathOnly $fileName $fileExt 
            
$original_path  $title false;
        do {
            
// make sure the format is stuff.ext startline[ endline]
            
if (!preg_match('`(.*)\.(\w*)\s(.*)`'$tagValue$match)) {
                
// or format is stuff.ext
                
if (!preg_match('`(.*)\.(\w*)\s*$`'$tagValue$match)) {
                    
// Murphy: Some funny path was given
                    
$original_path $tagValue// used for error output
                    
break; // try-block
                
}
            }
            if (
strlen($match[1]) === 0) {
                
// Murphy: Some funny path was given
                
$original_path $tagValue// used for error output
                
break; // try-block
            
}
            
$fileExt $match[2];
            if (isset(
$match[3])) {
                
$lines       explode(' 'trim($match[3]));
                
$this->start = (int) $lines[0];
                if (isset(
$lines[1])) {
                    
$this->end = (int) $lines[1];
                }
            }
            
// Replace windows '\' the path.
            
$pathTmp str_replace('\\''/'$match[1]);

            
// Is there a path and a file or is it just a file?
            
if (strpos($pathTmp'/') === false) {
                
// No path part
                
$pathOnly '';
                
$fileName $pathTmp .'.'$fileExt;
            } else {
                
// split the path on the last directory, find the filename
                
$splitPos strrpos($pathTmp'/');
                
$pathOnly substr($match[1], 0$splitPos+1);
                
$fileName substr($match[1], $splitPos+1) .'.'$fileExt;
                
// Is the path absolute? (i.e. does it start like an absolute path?)
                
if (('/' === $pathTmp[0]) || preg_match('`^\w*:`i'$pathTmp)) {
                    
// works for both windows 'C:' and URLs like 'http://'
                    
$isAbsPath true// Yes
                
}
            }

            
$original_path $pathOnly $fileName;

            
// Now look for the file starting with abs. path.
            
if ($isAbsPath) {
                
// remove any weirdities like /../file.ext
                
$tmp realpath($original_path);
                if (
$tmp && is_file($tmp)) {
                    
$path $tmp;
                }
                
/*
                 * Alway break if abs. path was detected,
                 * even if file was not found.
                 */
                
break; // try-block
            
}

            
// Search for the example file some standard places 
            // 1) Look if the ini-var examplesdir is set and look there ...
            
if (isset($_phpDocumentor_setting['examplesdir'])) {
                
$tmp realpath($_phpDocumentor_setting['examplesdir'
                    . 
PATH_DELIMITER  $original_path);
                if (
$tmp && is_file($tmp)) {
                    
$path $tmp// Yo! found it :)
                    
break; // try-block
                
}
            }

            
// 2) Then try to look for an 'example/'-dir 
            //    below the *currently* parsed file ...
            
if (!empty($current_path)) {
                
$tmp realpath(dirname($current_path) . PATH_DELIMITER 'examples'
                    
PATH_DELIMITER $fileName);
                if (
$tmp && is_file($tmp)) {
                    
$path $tmp// Yo! found it :)
                    
break; // try-block
                
}
            }

            
// 3) Then try to look for the example file 
            //    below the subdir PHPDOCUMENTOR_BASE/examples/ ...
            
if (is_dir(PHPDOCUMENTOR_BASE PATH_DELIMITER 'examples')) {
                
$tmp realpath(PHPDOCUMENTOR_BASE PATH_DELIMITER 'examples' 
                    
PATH_DELIMITER $original_path);
                if (
$tmp && is_file($tmp)) {
                    
$path $tmp// Yo! found it :)
                    
break; // try-block
                
}
            }

            
$tmp realpath(PHPDOCUMENTOR_BASE PATH_DELIMITER $original_path);
            if (
$tmp && is_file($tmp)) {
                
$path $tmp// Yo! found it :)
                
break; // try-block
            
}
            
// If we reach this point, nothing was found and $path is false.
        
} while (false);

        if (!
$path) {
            
addWarning(PDERROR_EXAMPLE_NOT_FOUND$original_path);
            
$this->path false;
        } else {
            
$f = @fopen($path'r');
            if (
$f) {
                
$example fread($ffilesize($path));
                if (
tokenizer_ext && !$isTutorial) {
                    
$obj = new phpDocumentorTWordParser;
                    
$obj->setup($example);
                    
$this->setSource($obj->getFileSource());
                    unset(
$obj);
                } else {
                    
$this->setSource($example);
                }
            }
        }
    }
    
    
/**
     * sets the source
     *
     * @param string|array $source source code
     * @param string|bool  $class  class name if this is a method,
     *                             boolean in php 4.3.0, 
     *                             if this is a method this will be true
     *
     * @return void
     */
    
function setSource($source$class false)
    {
        
$this->_class $class;
        
$this->source $source;
    }
    
    
/**
     * converter helper for PHP 4.3.0+
     *
     * @param Converter &$c output converter
     *
     * @return string
     * @uses phpDocumentor_HighlightParser Parses the tokenized source
     */
    
function arrayConvert(&$c)
    {
        
$source $this->source;
        if (
$this->end != '*') {
            
$source array_slice($this->source0$this->end $this->start 1);
        }
        
$start $this->start 1;
        if (
$start 0) {
            
$start 0;
        }
        return 
$c->exampleProgramExample($sourcetruetrue$this->_class$start);
    }

    
/**
     * Return the source for the example file, enclosed in
     * a <programlisting> tag to use in a tutorial
     *
     * @return string
     */
    
function getProgramListing()
    {
        
$source explode("\n"$this->source);
        
$start  $this->start;
        if (
$this->end != '*') {
            
$source array_slice($source$start 1$this->end $start 1);
        } else {
            
$source array_slice($source$start 1);
        }
        
$source join("\n"$source);
        return
        
"<programlisting role=\"php\">
         <![CDATA[\n" 
.
          
$source .
        
"\n]]>\n</programlisting>";
    }
}

/**
 * Represents the inheritdoc inline tag, used by classes/methods/vars to inherit
 * documentation from the parent class if possible
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @tutorial   tags.inlineinheritdoc.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserInheritdocInlineTag extends parserInlineTag
{
    
/**
     * always 'inheritdoc'
     * @var string
     */
    
var $inlinetype 'inheritdoc';
    
    
/**
     * Does nothing, overrides parent constructor
     */
    
function parserInheritdocInlineTag()
    {
    }
    
    
/**
     * only sets a warning and returns empty
     *
     * @return string
     * @todo CS cleanup - rename to convert for camelCase rule
     */
    
function Convert()
    {
        
addWarning(PDERROR_INHERITDOC_DONT_WORK_HERE);
        return 
'';
    }
}

/**
 * Represents the inline {@}id} tag for tutorials
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @tutorial   tags.inlineid.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserIdInlineTag extends parserInlineTag
{
    
/**
     * always 'id'
     * @var string
     */
    
var $inlinetype 'id';
    
/**
     * package of the {@}id}
     * @var string
     */
    
var $package 'default';
    
/**
     * category of the {@}id}
     * @var string
     */
    
var $category 'default';
    
/**
     * subpackage of the {@}id}
     * @var string
     */
    
var $subpackage '';
    
/**
     * full name of the tutorial
     * @var string
     */
    
var $tutorial;
    
/**
     * section/subsection name
     * @var string
     */
    
var $id;
    
    
/**
     * constructor
     *
     * @param string $category   category name
     * @param string $package    package name
     * @param string $subpackage subpackage name
     * @param string $tutorial   tutorial name
     * @param string $id         section/subsection name
     */
    
function parserIdInlineTag($category,$package,$subpackage,$tutorial,$id false)
    {
        
$this->package    $package;
        
$this->subpackage $subpackage;
        
$this->tutorial   $tutorial;
        
$this->id         $id;
        
$this->category   $category;
    }
    
    
/**
     * converter
     *
     * @param Converter &$c output converter
     *
     * @return string
     * @uses Converter::getTutorialId() retrieve converter-specific ID
     * @todo CS cleanup - rename to convert for camelCase rule
     */
    
function Convert(&$c)
    {
        if (!
$this->id) {
            return 
'';
        }
        return 
$c->getTutorialId($this->package$this->subpackage
            
$this->tutorial$this->id$this->category);
    }
}

/**
 * Represents {@}toc} for table of contents generation in tutorials
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage InlineTags
 * @author     Gregory Beaver <cellog@php.net>
 * @copyright  2002-2008 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.4
 * @filesource
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @see        parserStringWithInlineTags
 * @tutorial   tags.inlinetoc.pkg
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - change classname to PhpDocumentor_*
 */
class parserTocInlineTag extends parserInlineTag
{
    
/**
     * always 'toc'
     * @var string
     */
    
var $inlinetype 'toc';
    
/**
     * @var array format:
     * <pre>
     * array(
     *     array(
     *         'tagname' => section,
     *         'link'    => returnsee link,
     *         'id'      => anchor name,
     *         'title'   => from title tag
     *     ),
     *     ...
     * )
     * </pre>
     * @access private
     */
    
var $_toc false;
    
/**
     * full path to tutorial, used in conversion
     * @var string
     * @access private
     */
    
var $_path false;

    
/**
     * constructor
     */
    
function parserTocInlineTag()
    {
        
parent::parserInlineTag('toc''');
    }
    
    
/**
     * set the TOC
     *
     * @param array $toc format:
     * <pre>
     * array(
     *     array(
     *         'tag'   => {@link parserXMLDocBookTag},
     *         'id'    => {@link parserIdInlineTag},
     *         'title' => {@link parserXMLDocBookTag title}
     *     ),
     *     ...
     * )
     * </pre>
     *
     * @return void
     */
    
function setTOC($toc)
    {
        
$this->toc $toc;
    }
    
    
/**
     * set the path
     *
     * @param string $path the path
     *
     * @return void
     */
    
function setPath($path)
    {
        
$this->_path $path;
    }
    
    
/**
     * converter method
     *
     * <pre>
     * array(
     *    'tagname' => string name of tag,
     *    'link'    => {@link tutorialLink} to the tutorial,
     *    'id'      => converter specific tutorial ID from 
     *                     {@link Converter::getTutorialId()}
     *    'title'   => title of the tutorial)
     * </pre>
     * and returns the results as the table of contents
     *
     * @param Converter &$c converter object
     *
     * @return mixed
     * @uses Converter::getTutorialId() retrieve the tutorial ID for
     * @uses Converter::formatTutorialTOC() passes an array of format:
     * @todo CS cleanup - rename to convert for camelCase rule
     */
    
function Convert(&$c)
    {
        
$newtoc = array();
        if (isset(
$this->toc) && is_array($this->toc)) {
            foreach (
$this->toc as $i => $toc) {
                if (isset(
$toc['title'])) {
                    
$toc['tag']->setTitle($toc['title']);
                } else {
                    
$toc['tag']->setTitle(new parserStringWithInlineTags);
                }
                
$newtoc[$i]['tagname'] = $toc['tag']->name;
                
$l                     = new tutorialLink;
                if (!isset(
$toc['title'])) {
                    
$title 'section '.$toc['id']->id;
                } else {
                    
$title $toc['title']->Convert($c);
                }
                
$l->addLink($toc['id']->id$this->_pathbasename($this->_path), 
                    
$toc['id']->package$toc['id']->subpackagestrip_tags($title));
                
$newtoc[$i]['link']  = $c->returnSee($l);
                
$newtoc[$i]['id']    = $c->getTutorialId($toc['id']->package
                    
$toc['id']->subpackagebasename($this->_path), 
                    
$toc['id']->id$toc['id']->category);
                
$newtoc[$i]['title'] = $title;
            }
        }
        return 
$c->formatTutorialTOC($newtoc);
    }
}
?>

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