PHP функция для динамического переключения путей - PullRequest
0 голосов
/ 13 января 2011

Привет друзья! Я кодирую шаблон Joomla и хочу использовать опцию размещения статических файлов в CDN.

Я хочу, чтобы шаблон искал путь CDN, указанный пользователем на панели параметров шаблона.и если нет ввода, то он должен взять файлы из локальной папки по умолчанию.

Локальная папка CDN находится в корне папки шаблона: templates / myTemplate / cdn

Структуравнутри папки CDN это примерно так:

- cdn
---- css
---- images
---- js

Так что именно я ищу ......

Я вызываю пользовательский ввод для CDN пути, как это

$cdn_path = $doc->params->get("cdn-path","templates/myTemplate/cdn")

и получите его через файл templateDetails.xml.Теперь пользовательский ввод .... http://mycdn.com/cdn

Здесь мне нужна функция, которая берет абсолютный путь из пользовательского ввода (включая http://) и добавляет его в качестве значения функции CDNPath() иесли пользователь не вводит никакого значения, он должен добавить значение по умолчанию (templates/myTemplate/cdn) в качестве значения CDNPath()

function CDNPath(){

   <!-- What code should go here -->

    return <!-- and here -->;
}

В других моих функциях для CSS, изображений и путей js я использую следующую функцию

function CSSPath(){
    return className::CDNPath().'css/';
}
function JSPath(){
    return className::CDNPath().'js/';
}
function ImagePath(){
    return className::CDNPath().'images/';
}

и в моем шаблоне я связываю файлы следующим образом:

<link rel="stylesheet"href="<?php echo $className->CSSPath(); ?>template.css"  type="text/css" media="screen" />
<script type="text/javascript" src="<?php echo $className->JSPath(); ?>scripts.js"></script>

В основном я вижу две проблемы в этом: локальный и удаленный пути и какой должен быть точный коддля этой функции.

1 Ответ

2 голосов
/ 13 января 2011

Это может помочь вам начать ..

<?php
    // CDN url from: $doc->params->get("cdn-path","templates/myTemplate/cdn")
    $cdn_path = "http://www.google.com/images/";

    // Local path, used if $cdn_path is not set
    $local_path = "/images/";

    // Retrieve our path
    function get_path() {
        // Bring in variables that were declared outside of the function
        global $cdn_path, $local_path;

        // If $cdn_path has a value, return it. Otherwise, return $local_path
        return (isset($cdn_path) ? $cdn_path : $local_path);
    }

    // Use get_path() in any SRC attribute to retrieve the path 
    echo '<img src="' . get_path() . 'logo.png">' . PHP_EOL;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...