2011-01-12 3 views
0

Hallo Freunde Ich bin ein Joomla-Template Codierung und ich möchte eine Option verwenden, statische Dateien zu einem CDN zu setzen.PHP-Funktion zum dynamischen Wechsel von Pfaden

Ich möchte, dass die Vorlage nach dem CDN-Pfad sucht, der vom Benutzer im Vorlagenoptionsfeld erwähnt wird. Wenn keine Eingabe erfolgt, müssen die Dateien aus dem lokalen Standardordner übernommen werden.

Der lokale CDN-Ordner ist in der Wurzel des Vorlagenordner: templates/myTemplate/CDN

Die Struktur innerhalb des CDN-Ordner ist wie folgt:

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

Was genau ich suche für eine Benutzereingabe ist ......

ich mag dieses

$cdn_path = $doc->params->get("cdn-path","templates/myTemplate/cdn") 
für das CDN von Pfad nennen

und erhalten Sie es über die Datei templateDetails.xml. Nun Benutzereingabe ist .... http://mycdn.com/cdn

Hier muss ich eine Funktion, die den absoluten Pfad von Benutzereingabe erfolgt (einschließlich der http://) und fügen hinzu, dass als Wert der Funktion CDNPath() und wenn der Benutzer keinen Wert eingibt, dann es muss die Standard-(templates/myTemplate/cdn) als der Wert von CDNPath()

function CDNPath(){ 

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

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

In meinen anderen Funktionen für CSS, Bilder und js Pfade hinzufügen ich die folgende Funktion

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

und in meiner Vorlage verknüpfe ich die Dateien als:

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

ich majorly zwei Herausforderungen in dieser sehe, und das ist von lokalen und Remote-Pfaden und was sollte der genaue Code für diese Funktion.

Antwort

2

Dies könnte Sie beginnen ..

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