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

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

joomla-logo

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

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

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

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

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

Δηλαδή όλα τα

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

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

  1. <?php
  2. /*
  3. * Banner Scroller Module
  4. * @version $Id:1.0
  5. * @copyright (C) 2009 Stergios Zgouletas / web-expert.gr
  6. * @Για το Joomlafans.gr & techtips.gr
  7. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
  8. */
  9. defined( '_JEXEC' ) or die( 'Restricted access' );
  10. //Get Parameters from xml
  11. $width=$params->get('width', '100%');
  12. $height=$params->get('height', '200');
  13. $direction=$params->get('direction', 'up');
  14. $speed=$params->get('speed', '6');
  15. //Μέρος 3ο
  16. $target  = $params->get('target', '_parent');
  17. $banner_ids  = $params->get('banner_ids', 0 );
  18.  
  19. //Ελεγχος εαν υπάρχουν τιμές στο banner ID(s)
  20. if ( $banner_ids )
  21. {
  22. $ban_ids = explode(",",$banner_ids);
  23. if (count($ban_ids)>=1)
  24. {
  25. $multi=1;
  26. }
  27. }
  28. //Δημιουργία αντικειμένου για την εκτέλεση του query
  29. $db =& JFactory::getDBO();
  30. $query = "SELECT * FROM #__banner WHERE showBanner=1 \n"; //query
  31. if ($multi){
  32. $i = 1;
  33. $query .= "\nAND (";
  34. foreach ($ban_ids as $bid){
  35. if ($i == count($ban_ids)){
  36. $query .= "bid='$bid'";
  37. } else {
  38. $query .= "(bid='$bid') OR \n";
  39. }
  40. $i++;
  41. }
  42. $query .= ") ";
  43. }
  44. $db->setQuery($query); //execute query
  45. $banners = $db->loadObjectList(); //Load results as objects
  46. //Με αυτό τον τρόπο το όνομα της κάθε στήλης του πίνακα θα μετατραπεί σε αντικείμενο
  47. //Καθορισμός του banner path (JURI::root() --> http://www.mydomain.gr/)
  48. $imgpath=JURI::root()."images/banners/";
  49. ?>
  50. <marquee direction="<?php echo $direction;?>" width="<?php echo $width;?>"
  51. height="<?php echo $height;?>" scrollamount="<?php echo $speed;?>"
  52. onmouseover="this.stop();" onmouseout="this.start();">
  53.  
  54. <?php foreach ($banners as $banner){
  55. //Καθορισμός του Link
  56. $link=JRoute::_('index.php?option=com_banners&task=click&bid='.$banner->bid);
  57. //Το JRoute::_(); άλλαζει την μορφή του link ανάλογα εαν έχουμε τα SEO settings ενεργά
  58.  
  59. //Εαν δεν θέλουμε τα μετράμε τα cliks σε κάθε banner τότε
  60. //$link=$banner->clickurl;
  61. ?>
  62.  
  63. <a title="<?php echo $banner->name;?>" target="<?php echo $target;?>"
  64.  href="<?php echo $link;?>">
  65. <img alt="<?php echo $banner->name;?>"
  66. src="<?php echo $imgpath.$banner->imageurl;?>" border="0"/>
  67. </a>
  68.  
  69. <?php } ?>
  70. </marquee>

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

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

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

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

` Ετικέτες: , , , , ,

Comments are closed.