Back to top

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - bronco

Pagine: [1]
1
Sviluppo / Re:Creare SEF url
« il: 27 Lug 2010, 18:49:45 »
ciao,
Se mastichi l'inglese puoi guardare qui http://docs.joomla.org/Routing

ma in poche parole:
poniamo che il tuo componente si chiama com_calcio e ha queste pagine:

index.php?option=com_calcio&view=squadre (liste di tutte le squadre)
index.php?option=com_calcio&view=squadre&id=18 (pagina di una squadra in particolare)
index.php?option=com_calcio&view=giocatore&id=18 (pagina con la scheda di un giocatore)

ora crea un file chiamato router.php e inseriscilo nella cartella del tuo componente
l'interno del file è cosi composto:
Codice: [Seleziona]
<?php
if(!defined('_JEXEC')) die( 'Restricted access' );

//funzione che crea le url sef da quelle normali
//Sostituire Calcio con il nome vero del componente
function CalcioBuildRoute(&$query){
   
$segments = array();

    return 
$segments;
}

//Questa funtione trasforma le url sef in quelle normali
function CalcioParseRoute(&$segments)
{
    
$vars = array();

    return 
$vars;
}
?>


Nella funzione BuildRoute viene passato l'array $query che contiene tutte le variabili Get dell'url.
index.php?option=com_calcio&view=squadre&id=18
in questo caso $query['view'] e $query['id']

da questi valori devi creare la tua url sef restituendo tutti i segmenti di cui è composta
es:
$segments[] = 'squadre;
$segments[] = 'roma';

in questo modo trasformi l'url da
index.php?option=com_calcio&view=squadre&id=18
a
calcio/squadre/roma

esempio in codice :)

Codice: [Seleziona]
<?php

function CalcioBuildRoute(&$query){
   
$segments = array();

   if( isset(
$query['view']) && $query['view'] == 'squadre'){
      
$segments[] = 'squadre';
      unset(
$query['view']); //se non elimini il parametro joomla lo appenderà alla fine dell'url

      
if( isset($query['id']) ){
        
$database    =& JFactory::getDBO();
        
$database->setQuery("SELECT nome FROM #__calcio_sq WHERE id=".intval($query['id']) );
        
$nome $database->loadResult();

        if(
$nome){
          
$segments[] = $nome;
          unset(
$query['id']); 
       }

   }

    return 
$segments;
}

?>



La funzione ParseRoute(&$segments) funziona al contrario, vengono passati i segmenti dell'url sef e bisogna trasformarli in un array di variabili ( che sarebbero poi le variabili GET)

$segments[0] (primo segmento dell'url sef, nel nostro esempio sarà 'squadre')
$segments[1] (secondo segmento nome della squadra)
devono diventare cosi:
$vars['view'] = 'squadre';
$vars['id'] = $id_squadra;

es codice:
Codice: [Seleziona]
<?php

function CalcioParseRoute(&$segments)
{
    
$vars = array();

    
// Count segments
    
$count count$segments );
    
// if no segment return
    
if( $count == 0)  return $vars;
    
    if( 
$segments[0] == 'squadre' ){
       
$vars['view'] = 'squadre';

       if(
$count 1){
         
$database    =& JFactory::getDBO();
         
$sql "SELECT id FROM #__calcio_sq WHERE nome='".mysql_escape_string$segments[1] )."'";
         
$database->setQuery($sql,0,1);
         
$id $database->loadResult();

         if( 
$id) {
           
$vars['id'] = $id;
         }
      }

    }

    return 
$vars;
}
?>



grossomodo funziona così, prova a guardare anche i router.php contenuti nei componenti standard di joomla ( com_content, com_search ecc.)



2
Sviluppo / Re: usare JRoute::_ in pagina esterna (ajax)
« il: 08 Gen 2009, 18:35:28 »
alla fine ho risolto nel modo più semplice, eliminando plugins/content dal link dopo essere passato da JRoute

Codice: [Seleziona]
$link="index.php?option=com_componente&Itemid=".$itemid."&task=lista&id=".$id;
$seflink=JRoute::_($link);
$seflink=str_replace("plugins/content/", "", $seflink);

sicuramente non è il modo più corretto, ma per ora è l'unico modo che ho trovato. Anche per JURI::root() ho usato lo stesso sistema

Codice: [Seleziona]
$livesite     = str_replace("plugins/content/", "", JURI::root());

in seguito usando per tutto lo script la variabile $livesite.

Però mi piacerebbe capire perchè aggiunge sempre il percorso dove si trova il file, probabilmente perchè è un file esterno da joomla.

3
Sviluppo / usare JRoute::_ in pagina esterna (ajax)
« il: 08 Gen 2009, 03:44:45 »
salve, ho un problema con la creazione di un content plugin con navigazione in ajax.

in pratica tramite javascript richiamo la pagina ajax.php che nel suo interno ha un codice tipo questo:

Codice: [Seleziona]
<?php
define
'_JEXEC');
//joomla 1.0 compatibilit&#224; componente
define'_VALID_MOS');

$path =str_replace("\plugins\content"""dirname(__FILE__));
define('JPATH_BASE'$path );

define'DS'DIRECTORY_SEPARATOR );


require_once ( 
JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( 
JPATH_BASE .DS.'includes'.DS.'framework.php' );
require_once ( 
JPATH_BASE .DS.'libraries'.DS.'joomla'.DS.'plugin'.DS.'helper.php' );

$mainframe =& JFactory::getApplication('site');
$cfg&#160; &#160; &#160;  =& JFactory::getConfig();
$database&#160; =& JFactory::getDBO();

//link sef non funziona!
$link="index.php?option=com_componente&Itemid=".$itemid."&task=lista&id=".$id;
$seflink=JRoute::_($link);
?>

Il problema nasce con JRoute::_ in quanto inserisce prima dell'url /plugin/content/ facendolo diventare tipo questo localhost/plugins/content/component/componente/?task=lista&id=2058

anche JURI::root() mi da localhost/plugins/content/ inveche di localhost.

come faccio a utilizzare JRoute::_ in un file esterno da joomla? ci sto sbattendo la testa da ore  :(
grazie dell'aiuto

4
Sviluppo / Re: Remository HelP!
« il: 08 Gen 2009, 02:57:48 »
quando crei una categoria (contenitore) devi settare i permessi per l'upload e di modifica per il gruppo di utenti.
Per creare un gruppo vai in Gestione gruppi, grei il gruppo dandogli un nome che vuoi e poi gli aggiungi gli utenti.

esempio:
*vai in gestione gruppi e crea un gruppo chiamato "Uploader".
*entra nel gruppo appena creato e aggiungi il tuo utente che vuoi che abbia i permessi di invio (per esempio l'utente Admin).
*ora vai in Gestione contenitori e crea o modifica una categoria, impostando nelle opzioni Upload roles: e Edit roles: il gruppo "Uploader"

ora dovresti poter inviare i file dal frontend, ma solo con gli utenti impostati nel gruppo uploadr (in questo caso Admin).

Se vuoi dare il permesso di inviare file a tutti gli utenti registrati non bisogna impostare un gruppo basta mettere nelle opzioni della categoria il gruppo Registrato.



5
salve a tutti, ho un problema con l'aggiornamento di un componente scritto da me, vorrei renderlo joomla 1.5 native ma ho un problema con il sistema di paginazione dei risultati di joomla 1.5. (<< Inizio < Prec. 1). Questo componente non fa altro che cercare degli articolo e stampare la lista dei risultati.

In particolare in joomla 1.0 aggiungevo le variabili extra che mi servivano tramite GET semplicemente aggiungendo il link nella funzione $pageNav->writePagesLinks( $link )
 
$link = "index.php?option=com_componente&amp;Itemid=$Itemid&amp;task=lista"&amsearchp;search=$stringa&amp;cat=$cat"
echo $pageNav->writePagesLinks( $link );

in questo caso joomla integrava anche le variabili $cat e $stringa nei link della paginazione

mentre con joomla 1.5 queste variabili non vengono più passate e non capisco bene come si possa fare. Cercando un po di capire ho visto che si possono aggiungere delle variabili alla sessione dell'utente in joomla con le funzioni:

$mainframe->setUserState( "$option.cat", $cat );
e riaverle con :
$mainframe->getUserStateFromRequest( "$option.cat", 'cat', '0' );

con questo sistema potrei ovviare al problema anche se mi rimane il problema che se un utente sfoglia altre parti del sito e poi ritorna nel componente si ritrova l'ultima ricerca fatta.

esiste qualche altro sistema per passare le variabili nella paginazione integrata di joomla, usando il sistema stUserState si appesantische troppo il carico sul server (non sono un gran esperto di php)?

questo è il pezzo di codice al centro del problema:
Codice: [Seleziona]
<?php
$stringa      
'ciao';//stringa di ricerca presa da form

$limitstart   intvalJRequest::getVar('limitstart') );
$limit        50;
$database    =& JFactory::getDBO();
//conta risultati
$query "SELECT COUNT(*) AS Numitem FROM #__componente WHERE title LIKE '%$stringa%''";
$database->setQuery($query);
$conta $database->loadObjectList();
$total $conta[0]->Numitem;

jimport('joomla.html.pagination');
$pageNav = new JPagination$total$limitstart$limit);

//lista risultati
$database->setQuery($query$limitstart$limit);
$rows $database->loadObjectList(); 

if (
$total $limit){ //se non necessaria non mettere la barra navigazione   
 
echo $pageNav->getPagesLinksJURI::base() . "index.php?option=com_componente&amp;Itemid=$Itemid&amp;key=$stringa);
 
//$key=$stringa non viene aggiunto
 
 
echo '<br />';
}
echo 
$pageNav->getPagesCounter();
?>
Con joomla 1.0 funzionava bene solamente aggiungendo &amp;key=$stringa al link, ora questo viene troncato.


Guardando un po il nuovo joomla (sto passando ora a 1.5) ho notato che la paginazione della lista di articoli nelle categorie non memorizza l'ordine che si da alla lista, quindi quando si cambia pagine l'ordine ritorna quello di default (ordina per nome, articolo ecc), sembra un po strana la cosa.

grazie del vostro aiuto  ;)

6
Sviluppo / Re: Creato componente Total Converter
« il: 23 Nov 2008, 23:21:37 »
salve, per caso sono finito in questa discussione è il componente sembra bello e utile, ne ho visti un paio di esempi in alcuni siti, però il sito dell'autore è offline e non trovo il componente da nessuna parte  :(

Qualcuno sa se è stato rilasciato o se qualcuno per pura fortuna l'ha salvato?
grazie

7
salve, sto impazzendo per il componente ricettario,
ho joomla 1.13 e ricettario 1.03.
riesco a fare tutto ma non riesco a vedere le pagine delle ricette, se non sono loggato la pagina torna nella lista categorie e nell url esce:
com_ricettario&Itemid=60&mosmsg=Non+sei+connesso+come+utente

se mi loggo esce:
Ricetta+non+esistente+o+non+ancora+approvata+da+un+amministratore

ma io ho approvato tutto :/
dove sbaglio??
grazie

8
Database / Re: meglio 1 database o tanti per joom, forum, ecc
« il: 17 Ago 2007, 23:00:58 »
salve a tutti...
vorrei aggiungere a joomla il forum phpbb e eventualmente coppermine per le immagini, per l'installazione non ho problemi ma ho un dubbio sui database, se il bridge per il forum e galleria mi permette di scegliere se separarli o no cosa è meglio fare?
ci sono differenze di prestazioni o altro tenendoli tutti insieme  o separati?
(chiaramente tenendoli separati ce bisogno un hosting che offre tanti database)

grazie saluti
Benvenuto nel forum di Joomla  :)
Dipende molto da cosa vuoi fare. Per un sito di medie dimensione non serve un grande architettura, quindi puoi usare tranquillamente un unico db  ;)

grazie della risposta, il sito sarebbe modesto quindi credo non avrei problemi con uno solo, ma vorrei capire bene cosa cambia nel farne uno immenso o tre piccoli...è forse per un fatto di dimensioni o magari di lavoro del server?
Non sono molto pratico di php e mysql...
grazie saluti

9
Database / meglio 1 database o tanti per joom, forum, ecc
« il: 16 Ago 2007, 19:53:58 »
salve a tutti...
vorrei aggiungere a joomla il forum phpbb e eventualmente coppermine per le immagini, per l'installazione non ho problemi ma ho un dubbio sui database, se il bridge per il forum e galleria mi permette di scegliere se separarli o no cosa è meglio fare?
ci sono differenze di prestazioni o altro tenendoli tutti insieme  o separati?
(chiaramente tenendoli separati ce bisogno un hosting che offre tanti database)

grazie saluti

Pagine: [1]


Web Design Bolzano Kreatif