2011-01-12 3 views
0

Bonjour mes amis Je suis en train de coder un Template Joomla et je veux utiliser une option de mise en place de fichiers statiques sur un CDN. Je veux que le modèle recherche le chemin CDN mentionné par l'utilisateur dans le panneau des options du modèle et s'il n'y a pas d'entrée, il doit prendre les fichiers du dossier local par défaut.Fonction PHP pour changer dynamiquement de chemins

Le dossier local CDN est à la racine du dossier de modèle: templates/MyTemplate/cdn

La structure du dossier CDN est comme ceci:

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

Alors ce que je suis exactement à la recherche de est ......

J'appelle à une entrée d'utilisateur pour le CDN de chemin comme celui-ci

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

et l'obtenir via le fichier templateDetails.xml. Maintenant, l'entrée de l'utilisateur est .... http://mycdn.com/cdn

Ici, je besoin d'une fonction qui prend le chemin absolu de l'entrée de l'utilisateur (y compris le http://) et ajouter qu'en tant que valeur de la fonction CDNPath() et si l'utilisateur ne saisit pas de valeur alors il faut ajouter la valeur par défaut (templates/myTemplate/cdn) que la valeur de CDNPath()

function CDNPath(){ 

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

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

Dans mes autres fonctions CSS, des images et des chemins js J'utilise la fonction suivante

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

et dans mon modèle, je lien les fichiers comme:

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

Je vois majorly deux défis dans ce domaine et qui est de chemins locaux et distants et ce qui devrait être le code exact pour cette fonction.

Répondre

2

Cela pourrait vous aider à démarrer ..

<?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; 
?> 
Questions connexes