Redaxscript\Modules\DirectoryLister\DirectoryLister::_renderItem PHP Method

_renderItem() protected static method

renderItem
protected static _renderItem ( string $directory = null, array $optionArray = [] ) : string
$directory string
$optionArray array
return string
    protected static function _renderItem($directory = null, $optionArray = [])
    {
        $outputItem = null;
        /* html elements */
        $linkElement = new Html\Element();
        $linkElement->init('a', ['class' => self::$_configArray['className']['link']]);
        $textSizeElement = new Html\Element();
        $textSizeElement->init('span', ['class' => self::$_configArray['className']['textSize']]);
        $textDateElement = new Html\Element();
        $textDateElement->init('span', ['class' => self::$_configArray['className']['textDate']]);
        /* lister directory */
        $listerDirectory = new Directory();
        $listerDirectory->init($directory);
        $listerDirectoryArray = $listerDirectory->getArray();
        /* process directory */
        foreach ($listerDirectoryArray as $value) {
            $path = $directory . '/' . $value;
            $fileExtension = pathinfo($path, PATHINFO_EXTENSION);
            $text = self::_replace($value, $fileExtension, $optionArray['replace']);
            $textDate = date(Db::getSetting('date'), filectime($path));
            $isDir = is_dir($path);
            $isFile = is_file($path) && array_key_exists($fileExtension, self::$_configArray['extension']);
            /* handle directory */
            if ($isDir || $isFile) {
                $outputItem .= '<li>';
            }
            if ($isDir) {
                $outputItem .= $linkElement->copy()->attr(['href' => Registry::get('parameterRoute') . Registry::get('fullRoute') . '&directory=' . $path . $optionArray['hash'], 'title' => Language::get('directory', '_directory_lister')])->addClass(self::$_configArray['className']['types']['directory'])->text($text);
                $outputItem .= $textSizeElement->copy();
            } else {
                if ($isFile) {
                    $fileType = self::$_configArray['extension'][$fileExtension];
                    $textSize = ceil(filesize($path) / self::$_configArray['size']['divider']);
                    $outputItem .= $linkElement->copy()->attr(['href' => Registry::get('root') . '/' . $path, 'target' => '_blank', 'title' => Language::get('file', '_directory_lister')])->addClass(self::$_configArray['className']['types'][$fileType])->text($text);
                    $outputItem .= $textSizeElement->copy()->attr('data-unit', self::$_configArray['size']['unit'])->text($textSize);
                }
            }
            if ($isDir || $isFile) {
                $outputItem .= $textDateElement->copy()->text($textDate);
                $outputItem .= '</li>';
            }
        }
        return $outputItem;
    }