Joomla 1.5 – Γράφοντας το πρώτο module μας (3ο μέρος)

Κατηγορία: How To | Tricks & Tips, Web Developing Views: 137

joomla-logo

Σήμερα θα συνεχίσουμε τον οδηγό μας για την δημιουργία ενός module αφού στο προηγούμενο άρθρο αναλύσαμε την υλοποίηση ενώς απλού module.

Στο άρθρο αυτό θα σας δείξω πως εκτελούμε sql queries και πως χειριζόμαστε τα αποτελέσματα.

Στο πρόγραμμα που ακολουθεί, αντί να βάζουμε χειροκίνητα image & links θα το μετατρέψουμε να "τραβάει" απο το com_banner.

1)Αφαίρεση μη απαιραίτητου κώδικα

Σβήνουμε  όλες τις αναφορές στα images & links σε php και xml.

Δηλαδή όλα τα

1)<param name="imageX" type="text" default="" label="ImageX"
description="Image file url" />
 
2)$imageX=$params->get('imageX', '');
 
3)<a href="<?php echo $linkX;?>" target="_blank"><img src="<?php echo $imageX;?>"
 border="0" /></a>

2)Προσθήκη νέου κώδικα για την διασύνδεση με την βάση

<?php
/*
* Banner Scroller Module
* @version $Id:1.0
* @copyright (C) 2009 Stergios Zgouletas / web-expert.gr
* @Για το Joomlafans.gr & techtips.gr
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
defined( '_JEXEC' ) or die( 'Restricted access' );
//Get Parameters from xml
$width=$params->get('width', '100%');
$height=$params->get('height', '200');
$direction=$params->get('direction', 'up');
$speed=$params->get('speed', '6');
//Μέρος 3ο
$target  = $params->get('target', '_parent');
$banner_ids  = $params->get('banner_ids', 0 );
 
//Ελεγχος εαν υπάρχουν τιμές στο banner ID(s)
 if ( $banner_ids )
 {
 $ban_ids = explode(",",$banner_ids);
 if (count($ban_ids)>=1)
 {
 $multi=1;
 }
 }
//Δημιουργία αντικειμένου για την εκτέλεση του query
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__banner WHERE showBanner=1 \n"; //query
if ($multi){
 $i = 1;
 $query .= "\nAND (";
 foreach ($ban_ids as $bid){
 if ($i == count($ban_ids)){
 $query .= "bid='$bid'";
 } else {
 $query .= "(bid='$bid') OR \n";
 }
 $i++;
 }
$query .= ") ";
}
$db->setQuery($query); //execute query
$banners = $db->loadObjectList(); //Load results as objects
//Με αυτό τον τρόπο το όνομα της κάθε στήλης του πίνακα θα μετατραπεί σε αντικείμενο
//Καθορισμός του banner path (JURI::root() --> http://www.mydomain.gr/)
$imgpath=JURI::root()."images/banners/";
?>
<marquee direction="<?php echo $direction;?>" width="<?php echo $width;?>"
 height="<?php echo $height;?>" scrollamount="<?php echo $speed;?>"
 onmouseover="this.stop();" onmouseout="this.start();">
 
<?php foreach ($banners as $banner){
//Καθορισμός του Link
$link=JRoute::_('index.php?option=com_banners&task=click&bid='.$banner->bid);
//Το JRoute::_(); άλλαζει την μορφή του link ανάλογα εαν έχουμε τα SEO settings ενεργά
 
//Εαν δεν θέλουμε τα μετράμε τα cliks σε κάθε banner τότε
//$link=$banner->clickurl;
?>
 
<a title="<?php echo $banner->name;?>" target="<?php echo $target;?>"
 href="<?php echo $link;?>">
<img alt="<?php echo $banner->name;?>"
src="<?php echo $imgpath.$banner->imageurl;?>" border="0"/>
</a>
 
<?php } ?>
</marquee>

Το άρθρο γράφτηκε απο τον Στέργιο Ζγουλέτα / web-expert.gr

Joomla 1.5 - Γράφoντας το πρώτο module μας (1ο μέρος)

Joomla 1.5 - Γράφoντας το πρώτο module μας (2ο μέρος)

Joomla 1.5 - Γράφαντας το πρώτο module μας (3ο μέρος)

1 αστέρι2 αστέρια3 αστέρια4 αστέρια5 αστέρια!!! (1 votes, average: 5.00 out of 5)
Loading ... Loading ...
` Ετικέτες: , , , , ,

Comments are closed.