朋友您好我正在编写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>
我主要看到两个挑战,那就是本地和远程路径,应该是该功能的确切代码。
答案 0 :(得分:2)
这可能会让你开始..
<?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;
?>