Logo Joomlainfo

Joomlainfo News & Infos

Wissenswertes rund um das Content Management

Hier könnte deine Werbung stehen! So wie das hier:

Hack zur SVN Versionsanzeige der Joomla! 1.5.1

changelog hack

Neulich wurde ich angefragt, wie ich es schaffe, immer die Revisionsnummer der aktuellen Joomla! 1.5.1 SVN in der Fusszeile meines Joomlanews-Templates anzeigen zu lassen. Das Ganze funktioniert mit einem simplen Codeschnipsel, einem sogenannten Hack. Meinem Kollegen Nikolai Plath (www.easy-joomla.org) ist es zu verdanken, dass ich diese Idee auf der Seite realisieren konnte. Ich möchte euch diesen [[wiktipedia:Hack]] natürlich nicht vorenthalten.

Dafür braucht es eigentlich nur zwei Codeschnipsel, welches ihr in euer Template einbauen müsst. (Pfad: ../templates/dein_Template/index.php) Dieser Hack bewirkt, dass aus der CHANGELOG.php die Versionsinfos der aktuellen Joomlaausgabe ausgelesen wird. Das ist vor allem für diejenigen praktisch, die sich laufend die neuste SVN-Version installieren. So ist nach der Installation der neuen Files auch gleichzeitig die neuste Versionsnummer auf der Seite sichtbar.

Dazu müsst ihr in der index.php eures Templateordners die folgenden Teile einfügen.

Zwischen <head> und </head > fügt ihr den folgenden Code ein:

<? php
/**
* Extract strings from svn:property Id
* 
* like:
* 
* version $ I d: CHANGELOG.php 362 2007-12-14 22:22:19Z elkuku $
* [0] => Id: [1] => CHANGELOG.php [2] => 362 [3] => 
 2007-12-14 [4] => 22:22:19Z [5] => elkuku [6] => 😉
* 
* @param string $path full path
* @param string $filename the name of the file
* @return mixed propertystring or FALSE
*/
$VERSION = new JVersion;
function getVersionFromFile( $path, $filename )
{
if( ! file_exists( $path.DS.$filename) )
{
return $filename.JText::_(' NOT FOUND in path').'
'.$path;
}
$output = '';
$f = fopen( $path.DS.$filename, 'r' );
while( $line = fgets( $f, 1000 ) )
{
if( strpos( $line, '@version'))
{

// we found the @version
$line = explode( '

Anschliessend muss man nur noch innerhalb des Seitentemplates an gewünschter Stelle zwischen <body> und </body> den Aufruf der Funktion platzieren. Dies beruht auf einem simplen php Echo-Befehl

powered by Joomla <? php echo $VERSION->getShortVersion(); 
 echo getVersionFromFile( JPATH_SITE, 'CHANGELOG.php' ); ?>

Hinweis: Bitte entfernen Sie oben bei den PHP Tags: „< ? php “ und „? > “ die Leerschläge dazwischen. Sonst hätte ich hier den Code nicht abbilden können.

Ich danke an dieser Stelle nochmals ganz herzlich meinem Kollegen Nikolai Plath für das Schreiben dieses Hacks. Ich hoffe, dass es euch allen genauso eine Hilfe ist wie mir.

, $line );
$line = explode( ' ', $line[1] );
$svn_rev = $line[2];
$svn_date = $line[3];

//custom date for roger 
$c_date = explode ( '-', $svn_date );
$svn_date = $c_date[2].'-'.$c_date[1].'-'.$c_date[0];

//custom format: REV - DATE
$output = 'Rev # '.$svn_rev.' - '.$svn_date;
return $output;
}
}// while
return JText::_('No @version string (Id) found...').'
'.$path;
}// function
?>

Anschliessend muss man nur noch innerhalb des Seitentemplates an gewünschter Stelle zwischen <body> und </body> den Aufruf der Funktion platzieren. Dies beruht auf einem simplen php Echo-Befehl


Hinweis: Bitte entfernen Sie oben bei den PHP Tags: „< ? php “ und „? > “ die Leerschläge dazwischen. Sonst hätte ich hier den Code nicht abbilden können.

Ich danke an dieser Stelle nochmals ganz herzlich meinem Kollegen Nikolai Plath für das Schreiben dieses Hacks. Ich hoffe, dass es euch allen genauso eine Hilfe ist wie mir.

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp
Email

Das könnte dich auch interessieren...

Diskutieren auf GitHub

Auf GitHub über Joomla! diskutieren

Seit Dezember 2020 kann man auf GitHub beim Joomla!-Projekt nicht nur über Issues diskutieren. Das Joomla! Produktionsteam hat neu auch ein Diskussions-Feature freigeschaltet, dass neue Möglichkeiten zur Kommunikation innerhalb des Projekts anbietet.

Weiterlesen »

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Willkommen zurück, wir haben dich vermisst

Bitte anmelden, um alle Inhalte werbefrei lesen zu können.