Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    modifica codice modulo joomla

    Salve a tutti ragazzi, lavoro da un paio di anni con joomla e da autodidatta cerco di capire qualcosa di php, ad oggi riesco a fare piccole modifiche ma ora sono davvero in un punto morto.

    in pratica vorrei fare delle modifiche ad un modulo (joomla) che ha questo codice:

    Codice PHP:
    // no direct access
    defined('_JEXEC') or die('Restricted access');
    jimport('joomla.filesystem.file');

    class 
    modRseventsHelper
    {

        
    /**
         * Method to get the events
         *
         * @access public
         * @return array
         */
        
    function getList(&$params)
        {
            
    $db            =& JFactory::getDBO();
            
            
    //check for rsevents
            
    if(file_exists(JPATH_SITE.DS.'components'.DS.'com_rsevents'.DS.'helpers'.DS.'rsevents.php'))
                require_once(
    JPATH_SITE.DS.'components'.DS.'com_rsevents'.DS.'helpers'.DS.'rsevents.php');
            else return;
            
            
    //get config
            
    $db->setQuery("SELECT * FROM `#__rsevents_config`");
            
    $rseventsConfigDb $db->loadObjectList();
            foreach (
    $rseventsConfigDb as $objConfig)
                
    $rseventsConfig[$objConfig->ConfigName] = $objConfig->ConfigValue;
            
            
    $where "";
            
            
    //get parameters
            
    $current_time    time();
            
    $locationIds    $params->get('locids','');
            
    $categoryIds $params->get('catids','');
            
    $repeatingEvents $params->get('repeatevents','0');
            
    $itid            $params->get('itemid','');
            
    $limit         = (int)$params->get('evnumber');
            if(
    $limit == 0$limit1000000;
            
    $ordering $params->get('ordering','0');
            
    $order = ($ordering == 0) ? 'DESC' 'ASC';
            
    $target = ($params->get('target','0') == 0) ? '_blank' '_self';
            
    $todayevents $params->get('today','1');
            
    $tday mktime(0,0,0,date('n'),date('j'),date('Y'));

            
            if(
    is_array($locationIds)) $locids implode(','$locationIds); else $locids $locationIds;
            if(
    is_array($categoryIds)) $catids implode(','$categoryIds); else $catids $categoryIds;
            
            if (
    $todayevents == 1)
                
    $where .= " AND e.EventStartDate >= '".$current_time."' ";
            else 
    $where .= " AND ((e.EventStartDate <= '".$tday."' AND e.EventEndDate >= '".$tday."') OR (e.EventStartDate >= '".$tday."' AND e.EventStartDate <= '".($tday+86400)."')) ";
            
            if(!empty(
    $locationIds))
                
    $where .= " AND l.IdLocation IN (".$locids.") ";
            if(!empty(
    $categoryIds))
                
    $where .= " AND c.IdCategory IN (".$catids.") ";
                
                
    $where .= " AND e.published = 1 AND e.EventType = 1 ";
            
            if(
    $repeatingEvents == $where .= " AND e.IdParent = 0 ";
                else 
    $where .= "";
            
            
    $query "SELECT e.IdEvent , e.EventName ,e.EventEnableRegistration, l.IdLocation , l.LocationName , e.EventStartDate , e.EventEndDate , e.EventIcon ,  c.IdCategory , c.CategoryName FROM #__rsevents_events e "
                    
    ." LEFT JOIN #__rsevents_locations l ON e.IdLocation=l.IdLocation LEFT JOIN #__rsevents_events_cat ec ON ec.IdEvent = e.IdEvent LEFT JOIN #__rsevents_categories c ON c.IdCategory = ec.IdCategory WHERE 1=1 ".$where." GROUP BY e.IdEvent ORDER BY e.EventStartDate ".$order." LIMIT ".$limit;
            
            
    $db->setQuery($query);
            
    $rows $db->loadObjectList();

            
            
    $Itemid JRequest::getVar('Itemid','','request');
            if(!empty(
    $Itemid))
            {
                if(
    $itid == '' || empty($itid)) $itemId =  '&Itemid='.$Itemid;
                    else 
    $itemId '&Itemid='.$itid;
            } else 
    $itemId='';
            
            
    $i        0;
            
    $lists    = array();
            if(!empty(
    $rows))
            foreach ( 
    $rows as $row )
            {
                
    $categnames = array();
                
    $layout $params->get('layout','{EventStartDate} - {EventName}');
                
    $eventlink JRoute::_('/eventi/event/'.$row->IdEvent.'-'.$row->EventName.'.html',false); 
    questo codice produce questo risultato.



    ps :il codice continua, ma penso che le righe che ci interessano siano queste, con particolar riferimento alle ultime 3)

    io vorrei invece arrivare a questa soluzione:

    IMMAGINE CREATA CON PAINT!!! PURAMENTE INDICATIVA!

    il problema a mio modo di vedere è che la variabile (ammesso che sia una variabile) del tempo, è unica e non è distinta per giorni mesi ed anni, nel codice è EventStartDate, ed ha formato (come si vede dalla prima immagine) d:m:Y h:m
    A me interesserebbe estrapolare da questa data, solo il giorno ed il mese, assegnandole poi a dei div che mi consentano di inserirvi l'immagine del calendario.

    grazie, spero di essere stato chiaro, e scusatemi per il post abbastanza lungo.

    grazie ancora.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Devi modificare il file dentro la cartella tmpl, è quello che mostra il risultato grafico, lì prendi solo i dati dal db.

  3. #3
    Al momento sono fuori casa, appena torno ti posto l codice del file default.php della cartella tmpl.

  4. #4
    ecco questo è il codice del file default.php
    Codice PHP:
    <?php
    /**
    * @version 1.0.0
    * @package RSEvents! 1.0.0
    * @copyright (C) 2009 [url]www.rsjoomla.com[/url]
    * @license GPL, [url]http://www.gnu.org/copyleft/gpl.html[/url]
    */

    // no direct access
    defined('_JEXEC') or die('Restricted access');

    $params = & $params;

    $layout $params->get('chooselayout',0);
    $class_suffix $params->get('moduleclass_sfx');
    $class_suffix = (empty($class_suffix)) ? '' '_'.$class_suffix;

    // check if any results returned
    if(empty($list))
        echo 
    JText::_('RSE_NO_EVENTS_MODULE');
    else {
    ?>
    <div class="rse_upcoming<?php echo $class_suffix?>">
    <?php 
        
    echo ($layout == 0) ? '<ul class="menu">' '' 
        
    $startli = ($layout == 0) ? '<li id="eventi">' '' ;
        
    $endli   = ($layout == 0) ? '' '' ;
    ?>

    <?php
    foreach($list as $item)
    {
        echo 
    $startli.$item->layout.$endli;
    }
    ?>

    <?php echo ($layout == 0) ? '[/list]' '' ?>
    </div>
    <?php ?>

  5. #5

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    puoi postare il codice html GENERATO delle righe di esempio (quello che contiene "30 gen 12 20:00" - link)? SOLO QUELLA PARTE... quindi la riga che contiene quel pezzo con i tag intorno (due/tre righe)

  8. #8
    ecco il codice html che mi genera. dato che ci sono, mi spiegate come faccio a mettere come target _self?? non lo trovo nel codice php

    codice:
    <ul class="menu">
    <li id="eventi">08 Feb 12 20:00 - Innaugurazione [/list]
    il codice riporta altri eventi rispetto alla foto, dato che quelli erano di prova e li ho cancellati.

  9. #9
    ho trovato la parte di codice da modificare per il target, tutto fatto, resto in attesa di risposte per il problema originale

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.