PHP in uw artikelen

Afdrukken PDF
Geschreven door Marieke van der Tuin op zondag 01 maart 2009 11:30, in: Artikelen (1.5.x)

Met behulp van de DirectPHP plugin kunt u in uw artikel rechtstreeks PHP codes invoeren. In dit artikel leest u hoe u dit kunt doen, inclusief vele voorbeelden van wat u zoal in een artikel kunt zetten met PHP.

DirectPHP plugin

De DirectPHP plugin kunt u downloaden onderaan deze pagina. Kies voor de DirectPHP plugin voor Joomla! 1.5.x (v1.5). Het gedownloade zipbestand installeert u op de gebruikelijke manier: Log in op de backend van uw Joomla! site. Ga vervolgens via het menu Extensies naar Installeer/deinstalleer. Klik op de Zoeken/Browse knop en open het zipbestand via de verschenen pop-up. Klik nu op de knop Upload bestand en installeer. De plugin is nu geinstalleerd.

Voor u de plugin in gebruik kunt nemen, dient u eerst de plugin te activeren. Dit kunt u doen bij Extensies -> Pluginbeheer. Zoek hier de DirectPHP plugin op, en klik op het rode kruisje in de kolom Geactiveerd. Het rode kruisje verandert in een groen vinkje, en vanaf dat moment kunt u de plugin gebruiken.

Met deze plugin kunt u in elk artikel direct PHP codes plaatsen. Plaats bijvoorbeeld deze code in een artikel:

Deze tekst is op de normale manier in het artikel gezet.
<?php echo 'En deze tekst is geplaatst met de DirectPHP plugin.'; ?>

 En sla het artikel op. Als het goed is ziet de inhoud van het artikel er dan zo uit:

Deze tekst is op de normale manier in het artikel gezet.
En deze tekst is geplaatst met de DirectPHP plugin.

De PHP code kunt u direct in het artikel zelf plaatsen. Hiervoor hoeft u dus niet naar de HTML modus te gaan. Let erop dat elke PHP code wordt voorafgegaan door <?php en wordt gesloten met ?>. Bewerk het artikel met PHP codes niet via de frontend. Daar worden de codes door veiligheidsredenen weggefilterd.

 Enkele voorbeelden

 Gelukkig kunt u meer met PHP in een artikel dan enkel gebruikmaken van 'echo' (wat overigens niet meer doet dan enkel de tekst welke erna komt weergeven). Hieronder volgen enkele voorbeelden van PHP codes welke u kunt toevoegen aan een artikel.

Voor het weergeven van de sitenaam gebruikt u bijvoorbeeld deze code:

<?php echo $mainframe->getCfg('sitename') ;?>

Als u de titel van het artikel wilt weergeven, zet u het volgende in de editor:

<?php echo $article->title; ?>

Als u de gebruikers de mogelijkheid wilt geven om de directe link naar het artikel wat zij op dit moment bekijken te kopiëren, kunt u de link weergeven op onderstaande manier. Deze manier van weergave werkt ook als u zoekvriendelijke URLs gebruikt, of als u gebruiktmaakt van een content vertaal systeem, zoals JoomFish. http://uwsite.nl vervangt u vanzelfsprekend door een link naar uw eigen site.

<?php $link = JRoute::_(ContentHelperRoute::getArticleRoute($article->id, $article->catid, $article->sectionid));
echo 'http://uwsite.nl'.$link; ?>

 Voor het weergeven van de categorietitel kunt u de volgende code gebruiken. Als het artikel niet gecategoriseerd is, wordt de tekst Ongecategoriseerd weergegeven.

<?php if ( $article->category == NULL ) { $article->category = "Ongecategoriseerd" ; } ;
echo $article->category; ?>

In plaats van enkel de categorietitel, kunt u deze ook linkbaar maken. De titel van de categorie linkt dan naar de standaard lijstweergave van de artikelen binnen deze categorie. Als het artikel niet gecategoriseerd is, wordt enkel de tekst Ongecategoriseerd weergegeven. U kunt deze code niet gebruiken bij ongecategoriseerde artikelen als u ook de bovenstaande code voor weergave van enkel de categorietitel gebruikt.

<?php if ( $article->category == NULL ) {
echo "Ongecategoriseerd";
} else {
echo '<a href="'.JRoute::_(ContentHelperRoute::getCategoryRoute($article->catslug, $article->sectionid)).'">';
echo $article->category;
echo '</a>';
} ?>

Voor het weergeven van de sectietitel kunt u de volgende code gebruiken. Als het artikel niet gecategoriseerd is, wordt de tekst Ongecategoriseerd weergegeven.

<?php if ( $article->section == NULL ) { $article->section = "Ongecategoriseerd" ; } ;
echo $article->section; ?>

Natuurlijk kunt u deze sectietitel ook aanklikbaar maken. Als het artikel niet gecategoriseerd is, wordt enkel de tekst Ongecategoriseerd weergegeven. Ook hier kunt u deze code niet gebruiken bij ongecategoriseerde artikelen als u ook de bovenstaande code voor weergave van de sectietitel gebruikt.

<?php if ( $article->section == NULL ) {
echo "Ongecategoriseerd";
} else {
echo '<a href="'.JRoute::_(ContentHelperRoute::getSectionRoute( $article->sectionid )).'">';
echo $article->section;
echo '</a>';
} ?>

Voor weergave van het aantal keer dat dit artikel is weergegeven gebruikt u de volgende PHP code:

<?php echo $article->hits; ?>

Als u gebruikmaakt van de content plugin Artikel Waardering (hiermee kunnen uw gebruikers stemmen op uw artikelen), zijn de volgende PHP codes wellicht nuttig.

De Artikel waardering wordt standaard pas geladen nadat het artikel zelf geladen is. Vandaar kunnen niet de 'gemakkelijke' codes gebruikt worden welke wel voor gegevens over het artikel zelf (categorie, sectie, etc.) gebruikt worden. Bij elke PHP code welke wordt gebruikt om iets weergegeven over de artikel waardering, moet daarom eerst contact worden gemaakt met de database tabel content_rating.

De (gemiddelde) waardering van het artikel geeft u als volgt weer:

<?php $db = JFactory::getDBO();
$db->setQuery('SELECT rating_sum FROM #__content_rating WHERE content_id = '.$article->id);
$rating_sum = $db->loadResult();
if ( $rating_sum == NULL ) { $rating_sum = "0" ; } ;
echo $rating_sum; ?>



In plaats van enkel een cijfer welke de waardering weergeeft, kunt u ook gebruikmaken van bijvoorbeeld verschillende plaatjes. In dit voorbeeld staan de plaatjes nul t/m vijf.gif in de map images/votingplaatjes/.

 

<?php $db = JFactory::getDBO();
$db->setQuery('SELECT rating_sum FROM #__content_rating WHERE content_id = '.$article->id);
$rating_sum = $db->loadResult();
if ( $rating_sum == NULL ) { $rating_sum = "0" ; } ;
if ( $rating_sum == "0" ) { $img="nul.gif"; } ;
if ( $rating_sum == "1" ) { $img="een.gif"; } ;
if ( $rating_sum == "2" ) { $img="twee.gif"; } ;
if ( $rating_sum == "3" ) { $img="drie.gif"; } ;
if ( $rating_sum == "4" ) { $img="vier.gif"; } ;
if ( $rating_sum == "5" ) { $img="vijf.gif"; } ;
echo '<img src=images/votingplaatjes/'.$img.' alt="Waardering van het artikel is '.$rating_sum.' ">';
?>

Het aantal keer dat er gestemd is geeft u als volgt weer:

<?php $db =  JFactory::getDBO();
$db->setQuery('SELECT rating_count FROM #__content_rating WHERE content_id = '.$article->id);
$rating_count = $db->loadResult();
if ( $rating_count == NULL ) { $rating_count = "0"; } ;
echo $rating_count; ?> 

Tenslotte

U kunt met behulp van PHP codes veel handelingen uitvoeren binnen uw artikel. Zo kunt u met behulp van deze plugin gemakkelijk een standaard PHP formulier integreren in uw website zonder gebruik te maken van een wrapper etc.

De PHP codes welke hier zijn beschreven zou u overigens ook zo kunnen gebruiken bij het maken van bijvoorbeeld een template override.

Als u op zoek bent naar een PHP code (met betrekking tot Joomla!) welke niet in dit artikel beschreven staat, kunt u dit altijd vragen op het forum.