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 - memo2014

Pagine: [1]
1
Sviluppo / [2.5]sistema di votazione
« il: 01 Lug 2014, 18:06:02 »
Buonasera a tutti.


Sto implementando un sistema di votazione con il "classico" star rating.


Ciò che non riesco a gestire per bene è la situazione in cui l'item da votare, per un determinato ip, abbia già ricevuto un rating e quindi impedire che possa essere votato nuovamente (sempre da uno stesso ip).


la porzione di codice è questa:


Codice: [Seleziona]
$query = "SELECT * FROM #__com_songs_rating WHERE id = ".(int)$item->id;
$db->setQuery($query);
$result = $db->loadObject();


if(!$result)
{
   $query = "INSERT INTO blablbalba";
   $db->setQuery($query);
   $db->query();
   echo JText::('Il tuo voto è stato registrato');
}
else
{
   //questa porzione di codice non funziona
   if($ip_user != ($result->$ip))
   {
      $query = "INSERT INTO blablabla";
      $db->setQuery($query);
      $db->query();
      echo JText::('Il tuo voto è stato registrato');
   }
   else
   {
       echo JText::('Hai già espresso il tuo voto per questo brano');
   }
}


Il problema è che riesco a votare solo se non ho mai votato. Se ho già espresso il voto,
non mi entra nell'ultimo "else" ma mi stampa comunque "il tuo voto è stato registrato".


Grazie in anticipo a tutti.

2
Sviluppo / Re:[2.5]problema con media field
« il: 09 Mag 2014, 23:05:50 »
In sostanza ho il problema che con il field media non riesco a selezionare i files presenti nella directory ma solo a vederli. Sempre dalla documentazione leggo che basta (o meglio dovrebbe) settare nelle opzioni del media manager :


Estesioni consentite(tipi di file) : ->aggiungere ,mp3,MP3
MIME Types consentiti: ->aggiungere audio/x-mpeg-3


Il problema potrei aggirarlo utilizzando un filelist al posto del media, ma poi chi utilizza il componente dovrebbe
caricare i files via ftp.




3
Sviluppo / Re:[2.5]problema con media field
« il: 09 Mag 2014, 21:22:40 »
Ok..


nel file xml "fields" come dice il termine stesso, sono definiti i tipi di campi che saranno utilizzati sul "form" .
Sono definiti in libraries/joomla/form/fields. Volendo si può estendere uno di questi field per creare il proprio custom fields da mettere all'interno del componente.


Originariamente il campo in questione era definito così come standard comanda:


Codice: [Seleziona]
<field name="cover" type="media"
       label="COM_SELECTOR_FORM_LBL_SELECTOR_COVER"
       description="COM_SELECTOR_FORM_DESC_SELECTOR_COVER"
       required="true"


directory="songs" />

Nel quale c'è scritto semplicemente: il "nome" del campo, il tipo "media" corrispondente a media.php in library/joomla/form/fields, la label (quello che l'utente legge sul form come label appunto), la sua descrizione, e che è un campo obbligatorio.
Per quanto riguarda il parametro "link", il post dal quale ho preso spunto è questo:http://forum.joomla.org/viewtopic.php?f=620&t=700953#p3030566

4
Sviluppo / Re:[2.5]problema con media field
« il: 09 Mag 2014, 20:59:11 »
Ciao e grazie ad entrambi per l'interesse :)


Allora, non ho menzionato il componente perché non è un componente di default o un'estensione nota ma credo sia stato scritto appositamente per fare alcune cose lato admin.


Per il file "xml" il colpevole sono io :D


Ho tratto spunto da questo 3d:


http://forum.joomla.org/viewtopic.php?f=620&t=700953


per tentare una via che risolvesse il mio problema.




5
Sviluppo / [2.5]problema con media field
« il: 09 Mag 2014, 20:15:18 »
Buonasera a tutti.
Ho abilitato il media manager per l'upload di mp3 lato admin.
Funziona bene in quanto se faccio l'upload di un mp3, lo carica e lo vedo.


Nel componente che utilizzo invece ho questo problema:


(path model/fields del componente/selector.xml)


//blabla
Codice: [Seleziona]
<field name="mp3" type="media" size="60"
               
    label="COM_SELECTOR_FORM_LBL_SELECTOR_MP3"
    description="COM_SELECTOR_FORM_DESC_SELECTOR_MP3"
               
link="index.php?option=com_media&amp;view=media&amp;tmpl=component&amp;asset=com_selector&amp;" 
                 required="true"
 
directory="songs” />

Ora, mi succede che quando dal componente clicco sul pulsante di selezione, riesco a vedere gli mp3 ma non riesco a selezionarli.

Dove sto sbagliando ?

Grazie.






6
Piccolo aggiornamento...


Ho capito che a me non serve conoscere l'id della categoria quando posso generare i file xml in una volta sola:


Codice: [Seleziona]
$query = "SELECT id, title FROM #__categories WHERE published = '1' AND extension = 'songmanager'";
$titles  = $db->setQuery($query);
$results = $db->loadObjectList();


foreach($results as $row) {
      $xml = new XMLWriter();
      $xml->openURI('path/'.$row->title.'.xml');
      //blabla


      $querySongs = "SELECT titolo, artista, blabla WHERE published = '1' AND categoryID = '" .$row->id."' ";
      $db->setQuery($querySongs);
      $brani = $db->loadObjectList();
     
      foreach($brani as $brano) {
           //blabla
      }
}


In questo modo in un'unica volta ottengo tutto ciò che mi occorre .


Vorrei solo introdurre questa funzione all'interno del componente, dopo un save/edit o delete...

7
Ok, ho rifatto il modulo utilizzando i metodi "jdatabase":


Codice: [Seleziona]
$db =& JFactory::getDBO();


$queryDB = "SELECT titolo, autore, brano, copertina FROM #__songs WHERE published = '1' AND catid = '".categoryID."' ORDER BY id DESC";


$db->setQuery($queryDB);
$results = $db->loadObjectList();


//il nome della categoria sarà il nome del file xml da generare
$queryCategories = "SELECT title FROM #__categories WHERE published = '1' AND id = '" .$categoryID."'";
$resultsCategories = $db->setQuery($queryCategories);
$fileNameXML = $db->loadResult();


//predispongo la creazione e la scrittura del file xml
$xml = new XMLWriter();
$xml->operURI('playlists/'.$fileNameXML.'.xml');
$xml->startDocument('1.0', 'UTF-8');
$xml->setIndent(true);
$xml->startElement('rss');
$xml->writeAttribute('version', '2.0');
$xml->writeAttribute('xmlns:jwplayer', 'http://developer.longtailvideo.com/');
$xml->startElement('channel');


$path = JURI::base()."media/songs/";


foreach($results as $res) {


      $xml->startElement("item");
      $xml->writeElement('titolo', $res->artista.' - '.$res->titolo');$
      //blablabla $xml->endElement();


}
//chiudo i nodi
 $xml->endElement();
$xml->endElement();
//blabla


Funziona tutto come mi aspetto: il file viene generato correttamente ed anche il contenuto è corretto.
Ora, oltre al problema iniziale, ho anche un altro problema:
Diciamo che rendo tutto una funzione pubblica:
public function doXmlPlaylist($categoryID)
Ammesso che riesca a capire dove chiamare questa funzione da un componente ( :( ),
il problema in più che mi sono creato è: come gli passo $categoryID ?


Grazie ancora per il supporto.

8
Eh :) Il fatto è che pensavo di poter utilizzare quel modulo :(


Per quanto riguarda invece il componente, immagino di dover lavorare in administrator/components/com_miocomponente.


Visto che questo file xml dev'essere aggiornato ad ogni cambiamento nel db, suppongo di dover
agire all'interno di un metodo "save/edit" oppure "delete".


Non ne trovo traccia però ne nei controllers ne nei models... :(

9
Innanzitutto grazie per la risposta.


Tutto chiaro ciò che hai detto. Ma non potrei nemmeno scrivere direttamente all'interno del model del componente, adattandola opportunamente, la funzione di quel modulo ? una sorta di:


Codice: [Seleziona]
public function writeXml() {
//blabla
}


e chiamarla quindi direttamente dall'interno del componente ?


Dico questo perché la scrittura del file xml è un evento che avviene solo lato admin.

10
Buongiorno a tutti.


Il mio scenario è questo:


ho un modulo che esegue un compito molto semplice, ovvero di generare un file xml.


Io vorrei fare in modo che questo modulo, venga chiamato quando si esegue il save o si edita un record da un determinato componente.


il codice del modulo è il seguente:
Codice: [Seleziona]
<?php defined('_JEXEC') or die('Restricted access');
$categoriaID $params->get('categorie'0);
?>



<?php 


mysql_connect
('192.168.1.1''TESTDB''TESTDB');
mysql_select_db('TESTSITE');


$ssql "SELECT titolo, autore, brano, copertina FROM #__songs WHERE published = '1' AND categoriaID='" .$categoriaID."' ORDER BY id DESC";
$getCategoryNameSql "SELECT titolo FROM #__categories WHERE published = '1' AND id='" .$categoriaID."'";
$categoryResult mysql_query($getCategoryNameSql);
$categoryTitle mysql_fetch_row($categoryResult);




$xml = new XMLWriter();
$xml->openURI('modules/mod_songs/'.$categoryTitle['0'].'.xml');
$xml->startDocument('1.0''UTF-8');
$xml->setIndent(true);
$xml->startElement('rss');
$xml->writeAttribute('version''2.0');
$xml->writeAttribute('xmlns:jwplayer''http://developer.longtailvideo.com/');
$xml->startElement('channel');




$res mysql_query($ssql);


$path JURI::base()."media/canzoni/";


while(
$row mysql_fetch_assoc($res)) {
      
   
$xml->startElement("item");
   
$xml->writeElement('titolo'$row['autore'].' - '.$row['titolo']);
   
$xml->writeElement('jwplayer:file'$path.$row['brano']);
   
$xml->writeElement('jwplayer:image'$path.$row['copertina']);
   
$xml->endElement();
}


$xml->endElement();
$xml->endElement();
$xml->flush();


 
?>





Vi ringrazio in anticipo per qualsiasi indicazione mi darete .



11
Sviluppo / [2.5]jroute e sef
« il: 04 Feb 2014, 20:46:15 »
Buonasera a tutti :)


Sto provando a linkare ad un immagine il richiamo ad un componente passandogli un parametro:


Codice: [Seleziona]
<a href="<?php echo JRoute::_('index.php?view=category&id='.$catidtrue, -1); ?>">
<img src="pathblabla.png" /></a>


Il link funziona, nel senso che vengo indirizzato alla pagina giusta (passando "catid" come parametro), solo che la vedo così:


Codice: [Seleziona]
www.miosito.bla/component/mio_componente/?view=category&id=12


e nel menu della pagina ovviamente vedo:


Codice: [Seleziona]
sei qui: HOME
Vorrei ovviamente nascondere il nome del componente dalla url e avere
il riferimento corretto nel menu.


Il router.php del componente è questo:


Codice: [Seleziona]

<?php
defined
('_JEXEC') or die;




function 
MiocomponenteBuildRoute(&$query)
{
       
$segments = array();
       if(isset( 
$query['catid'] ))
       {
                
$segments[] = $query['catid'];
                unset( 
$query['catid'] );
       };
       if( isset(
$query['id']) )
       {
                
$segments[] = $query['id'];
                unset( 
$query['id'] );
       };
       unset( 
$query['view'] );
       return 
$segments;
}


function 
MiocomponenteParseRoute($segments)
{
       
$vars = array();
       
$app =& JFactory::getApplication();
       
$menu =& $app->getMenu();
       
$item =& $menu->getActive();
       
// Count segments
       
$count count$segments );
       
//Handle View and Identifier
       
switch( $item->query['view'] )
       {
               case 
'categories':
                       if(
$count == 1) {
                               
$vars['view'] = 'category';
                       }
                       if(
$count == 2) {
                               
$vars['view'] = 'article';
                       }
                       
$id explode':'$segments[$count-1] );
                       
$vars['id'] = (int) $id[0];
                       break;
               case 
'category':
                       
$id   explode':'$segments[$count-1] );
                       
$vars['id']   = (int) $id[0];
                       
$vars['view'] = 'article';
                       break;
       }
       return 
$vars;
}


?>



Grazie come sempre in anticipo a tutti.

12
Sviluppo / Re:[2.5][RISOLTO]paginazione modulo elementare
« il: 27 Gen 2014, 09:49:54 »
 ;)

13
Sviluppo / Re:[2.5]paginazione modulo elementare
« il: 21 Gen 2014, 14:17:56 »
Wow, bel passo in avanti !! grazie !!


Supporto meraviglioso! non ho parole !


Grazie !

14
Sviluppo / Re:[2.5]paginazione modulo elementare
« il: 21 Gen 2014, 12:50:57 »
Ok, seguendo i vostri preziosi suggerimenti sono giunto a questo:


Codice: [Seleziona]
<?php
$total 
'SELECT COUNT(*) FROM tabella';
$numrows 10;
jimport('joomla.html.pagination');
$pagination = new JPagination($total0$numrows);
$query 'SELECT id, nome, cognome FROM tabella WHERE bla = bla LIMIT 0, '.$numrows.'';
$db->setQuery($query);
$rows $db->loadObjectList();
?>

<?php foreach($rows as $row) : ?>
<div class="blabla"><?php echo $row->bla?><>
<?php endforeach; ?>




Non ho ancora ben compreso come impostare il "limitstart".
Con il codice sopra, ovviamente non ho delle pagine perchè la query prende solo i primi dieci..


Grazie per il supporto.

15
Sviluppo / Re:[2.5]paginazione modulo elementare
« il: 21 Gen 2014, 12:03:21 »
Ok, se prima ero confuso, ora è anche peggio :D


Capisco come prendere il totale dei records
[size=78%]$total = "SELECT count(*) FROM tabella"; //numero totale records[/size]


ma per il "limit" non ho capito :(




16
Sviluppo / Re:[2.5]paginazione modulo elementare
« il: 21 Gen 2014, 11:11:30 »
Allora... c'è qualcosa che mi sfugge:


se metto la "paginazione" prima del foreach, vedo il numero di pagine, ma mi stampa comunque tutte le righe.


se la metto dopo, ovviamente mi stampa sempre tutte le righe e alla fine (fuori dal foreach) la paginazione.




17
Sviluppo / Re:[2.5]paginazione modulo elementare
« il: 21 Gen 2014, 10:50:38 »
Ok, prima di tutto grazie per aver risposto !!


Ho capito quindi che devo ciclare :


Codice: [Seleziona]
<?php
$query 
"SELECT id, nome, cognome FROM #tabella WHERE categoriaID = valore";
$db->setQuery($query);$rows $db->loadObjectList();
$navigazione = new JPagination(count($rows), 010);?>

<?php foreach($rows as $row) : ?>
<div class="someclass">
<div class="rowid"><?php echo $row->id?><>
<div class="nome"><?php echo $row->nome?><>
<div class="cognome"><?php echo $row->cognome?><>
<?php endforeach; ?>

Solo che a questo punto non riesco a capire dove "piazzare" la paginazione

18
Sviluppo / [2.5][RISOLTO]paginazione modulo elementare
« il: 21 Gen 2014, 10:29:46 »
Buongiorno a tutti e complimenti per il vostro fantastico impegno .
Sono un neofita alle prime armi con il mondo joomla e giusto per fare un pò di esperienza sto
provando a scrivere qualcosa da me.


Sono partito prima _non_ utilizzando il pattern mvc. Vorrei giusto capire un paio di cose di base e poi proseguire e progredire.


Detto questo vi espongo il mio piccolo problema:


ho la classica query che vorrei imparare a "paginare" :


Codice: [Seleziona]
$query = "SELECT id, nome, cognome FROM #tabella WHERE categoriaID = valore";
$db->setQuery($query);
$rows = $db->loadObjectList();
jimport('joomla.html.pagination');
<div class="someclass">
<div class="rowid"><?php echo $rows->id?><>
<div class="nome"><?php echo $rows->nome?><>
<div class="cognome"><?php echo $rows->cognome?><>
<?php 
        $navigazione 
= new JPagination($rows010);
        echo 
$navigazione->getListFooter(); ?>

?>
<>


Riesco a vedere il numero di pagine, ma non riesco a vedere il contenuto della lista,
cioè, non vedo i "records".


Mi dareste una mano ?


Grazie in anticipo.


Memo.





Pagine: [1]


Web Design Bolzano Kreatif