Hallo,
ich möchte der Joomla-Gemeinde auf diesem Wege ein Plugin vorstellen, das Language-Definitionen und Joomla-Variablen im Content ausgeben kann und bin noch an ein paar Fragen und Ideen interessiert, bevor ich es veröffentliche.
1. Ich möchte gerne Wünsche hören, falls vorhanden, welche Variablen in den Joomla-Content hinein könnten / sollten.
2. Gerne nehme ich Ideen zur Code-Optimierung entgegen, da ich nicht so richtig fit mir regulären Ausdrücken bin, gerade in diesem Bereich, vielleicht möchte da jemand noch was beisteuern und dann werde ich den Zeit-Unterschied testen.
3. Ich möchte gerne die Frage klären, ob man in Joomla ob und wenn wie Plugins nur für bestimmte Artikel bzw. bestimmten Content ausführen lassen kann. Im Moment stelle ich mir das so vor, dass im Content-Bereich ein zusätzlicher Parameter eingesetzt wird, bin mir aber darüber im klaren, dass man dazu das Core-System patchen müsste. Welche anderen Ideen gibt es dazu?
4. Ich möchte das gerne, dass nach 2 Wochen dieses Thema hier als gelöst/erledigt angesehen wird.
Und hier der Quellcode:
Code:<?php /** * JoomlaVarsInContent plugin for Joomla! 1.5 * Version: 1.0 * @license http://www.gnu.org/licenses/gpl.html GNU/GPL v2.0. * @by addi * @Copyright (C) 2008 - 2009 */ defined( '_JEXEC' ) or die( 'Restricted access' ); class plgContentJoomlaVarsInContent extends JPlugin { function plgContentJoomlaVarsInContent (& $subject) { parent::__construct($subject); } } $mainframe->registerEvent( 'onPrepareContent', 'JoomlaVarsInContent' ); function JoomlaVarsInContent(&$row, &$params) { $user = &JFactory::getUser(); if ($user->id == 0) { $username = JText::_( 'Guest' ); $realname = JText::_( 'Guest' ); $date_registered = JText::_( 'Never' ); $date_lastvisit = JText::_( 'Never' ); } else { $username = $user->username; $realname = $user->name; $date_registered = $user->registerDate; $date_lastvisit = $user->lastvisitDate; } $var_array = array ( "user_username" => $username, "user_realname" => $realname, "user_userid" => $user->id, "user_registerdate" => $date_registered, "user_lastvisitdate" => $date_lastvisit, "content_title" => $row->title, "content_alias" => $row->title_alias, "date_created" => $row->created, "date_modified" => $row->modified ); /* * Put Joomla API Variables in Your Content. Sample {user_realname} */ foreach ($var_array as $key => $value) { $row->text = str_replace('{' . $key . '}', $value, $row->text); } /* * Put Joomla Language Items in Your Content. Sample {LANG:home page} */ $pos = 0; while ($i = strpos(substr($row->text, $pos, strlen($row->text)), '{LANG:')) { $j = strpos(substr($row->text, $pos+$i, strlen($row->text)), '}'); $jtext_item = substr($row->text, $pos+$i+6, $j-6); $row->text = substr($row->text, 0, $pos+$i) . JText::_( $jtext_item ) . substr($row->text, $pos+$i+$j+1, strlen($row->text)); $pos = $i + strlen(JText::_( $jtext_item ))-1; } return true; } ?>


LinkBack URL
About LinkBacks
Zitieren
Lesezeichen