Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Application/Service/Urls.php
Строк: 87
<?php
namespace ConcreteCoreApplicationService;

/**
 * @package Helpers
 * @category Concrete
 * @author Andrew Embler <andrew@concrete5.org>
 * @copyright  Copyright (c) 2003-2008 Concrete5. (http://www.concrete5.org)
 * @license    http://www.concrete5.org/license/     MIT License
 */

class Urls
{

    
/**
     * Gets a full URL to an icon for a particular application
     * @param Package $pkg
     * @return string URL to the package's icon
     */
    
public function getPackageIconURL($pkg)
    {
        if (
$pkg && file_exists($pkg->getPackagePath() . '/' FILENAME_BLOCK_ICON)) {
            return 
$this->getPackageURL($pkg) . '/' FILENAME_BLOCK_ICON;
        } else {
            return 
PACKAGE_GENERIC_ICON;
        }
    }

    
/**
     * Get the package's URL
     * @param Package $pkg
     * @return mixed
     */
    
public function getPackageURL($pkg)
    {
        return 
$pkg->getRelativePath();
    }

    
/**
     * @deprecated
     * Gets a URL to reference a script in the tools directory
     * @param string $tool
     * @param string $pkgHandle
     * @return string Relative url to tool
     */
    
public function getToolsURL($tool$pkgHandle null)
    {
        if (
$pkgHandle != null) {
            
$url REL_DIR_FILES_TOOLS_PACKAGES '/' $pkgHandle '/' $tool;
            return 
$url;
        } else {
            if (
file_exists(DIR_APPLICATION '/' DIRNAME_TOOLS '/' $tool '.php')) {
                return 
REL_DIR_FILES_TOOLS '/' $tool;
            } else {
                return 
REL_DIR_FILES_TOOLS_REQUIRED '/' $tool;
            }
        }
    }

    
/**
     * Gets a full URL to an icon for a particular block type
     * @param BlockType $bt
     * @return string
     */
    
public function getBlockTypeIconURL($bt)
    {
        
$url $this->getBlockTypeAssetsURL($btFILENAME_BLOCK_ICON);
        if (
$url != false) {
            return 
$url;
        } else {
            return 
BLOCK_TYPE_GENERIC_ICON;
        }
    }

    
/**
     * Gets a full URL to the directory containing all of a block's items, including JavaScript, tools, icons, etc...
     * @param BlockType $bt
     * @param bool|string $file If provided will get the assets url for a file in a block
     * @return string $url
     */
    
public function getBlockTypeAssetsURL($bt$file false)
    {
        
$ff '';
        if (
$file != false) {
            
$ff '/' $file;
        }
        
$url '';

        if (
file_exists(DIR_FILES_BLOCK_TYPES '/' $bt->getBlockTypeHandle() . $ff)) {
            
$url REL_DIR_APPLICATION '/' DIRNAME_BLOCKS '/' $bt->getBlockTypeHandle() . $ff;
        } elseif (
$bt->getPackageID() > 0) {
            
$h $bt->getPackageHandle();
            
$dirp = (is_dir(DIR_PACKAGES '/' $h)) ? DIR_PACKAGES '/' $h DIR_PACKAGES_CORE '/' $h;
            if (
file_exists($dirp '/' DIRNAME_BLOCKS '/' $bt->getBlockTypeHandle() . $ff)) {
                
$url = (is_dir(DIR_PACKAGES '/' $h)) ? DIR_REL ASSETS_URL;
                
$url $url '/' DIRNAME_PACKAGES '/' $h '/' DIRNAME_BLOCKS '/' $bt->getBlockTypeHandle() . $ff;
            }
        } elseif (
file_exists(DIR_FILES_BLOCK_TYPES_CORE '/' $bt->getBlockTypeHandle() . $ff)) {
            
$url ASSETS_URL '/' DIRNAME_BLOCKS '/' $bt->getBlockTypeHandle() . $ff;
        }
        return 
$url;
    }

    
/**
     * Gets a full URL to a block's JavaScript file (if one exists)
     * @param BlockType $bt
     * @return string $url
     */
    
public function getBlockTypeJavaScriptURL($bt)
    {
        return 
$this->getBlockTypeAssetsURL($bt'auto.js');
    }

    
/**
     * @deprecated
     * Gets a full URL to a block's tools directory
     * @param BlockType $bt
     * @return string $url
     */
    
public function getBlockTypeToolsURL($bt)
    {
        return 
REL_DIR_FILES_TOOLS_BLOCKS '/' $bt->getBlockTypeHandle();
    }


}
Онлайн: 1
Реклама