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

Pagine: 1 [2] 3 4 5 ... 15
21
Sviluppo / [1.7] funzionamento pulsante custom nella toolbar
« il: 01 Ott 2011, 21:17:20 »
Nel backend del mio componente ho definito un pulsante custom in una view che mi mostra tutte le entry di una tabella.

Selezionando una voce e premendo il pulsante deve aprirsi una nuova view che mi mostra i dettagli della entry selezionata.

Il pulsante lo definisco in queesto modo
JToolBarHelper::custom('libri.details','details.png','details.png',TOOLBAR_DETAILS',true);

questa dovrebbe inviare una richiesta ad una funzione del controller che devo chiamare details(), giusto?
Come recupero l'id della entry selezionata?
Per l'elaborazione devo richiedere un'istanza del model e inserire nel model una funzione che elabori i dati?
Dopo aver elaborato i dati, come richiamo la nuova view?

Per intenderci meglio inserisco uno screenshot di dove ho messo il pulsante custom, è quello che si chiama "Dettagli" e per ora non ha un'immagine.



22
Sviluppo / [1.7] pulsante custom nella toolbar del backend
« il: 01 Ott 2011, 18:02:05 »
Devo aggiungere un pulsante custom in una toolbar nel backend del mio componente.
La difficoltà è quella di inserire l'icona.

JToolBarHelper::custom('libri.details','details.png',details.png','JTOOLBAR_DETAILS',true);

Dove devo mettere la mia immagine details.png?
 Come devo creare la entry nella toolbar in modo che il percorso sia corretto e l'icona venga visualizzata?

23
Sviluppo / Re:Definire tipo form nel backend
« il: 01 Ott 2011, 01:01:56 »
Sono riuscito a prenderlo con
$_FILES['jform'['name']['miocampo']

24
Sviluppo / Re:Ricavare l'id dell'ultima entry
« il: 01 Ott 2011, 00:59:42 »
Grazie per la risposta, ho appena risolto con $db->insertid()

25
Sviluppo / [Risolto] Ricavare l'id dell'ultima entry
« il: 01 Ott 2011, 00:39:30 »
Dopo aver effettuato una query INSERT, come recupero l'id inserito?
mysql_insert_id() mi ritorna sempre 0, suppongo perché non trova una connessione attiva.

26
Sviluppo / Re:Definire tipo form nel backend
« il: 30 Set 2011, 22:09:52 »
Adesso come recupero il nome del file caricato?
Con $_FILES['nomecampo']['name'] nel file php corrispondente nella cartella table non viene recuperato niente.

Quali file devo modificare e come?

27
Sviluppo / Re:Definire tipo form nel backend
« il: 30 Set 2011, 10:31:49 »
Si, il componente lo sto scrivendo io, grazie per la risposta, ho risolto, mi ero impuntato col file xml invece di pensare al file php della view.

28
Sviluppo / [Risolto] Definire tipo form nel backend
« il: 29 Set 2011, 21:19:16 »
Nel backend ho bisogno di permettere l'upload di un file da una delle form che servono a popolare le tabelle del componente, nel file xml che definisce la form però non so come dichiararla multipart/form-data.

Ho provato a mettere enctype='multipart/form-data' nel tag <form> ma non ha funzionato

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<form>
    <fieldset>
        <field name="id" type="text" default="0" label="JGLOBAL_FIELD_ID_LABEL"
                readonly="true" class="readonly"
                description="JGLOBAL_FIELD_ID_DESC" />

        <field name="creatore" type="text" size="40" class="inputbox"
                label="COM_PREVENTIVILIBRI_FORM_LBL_LIBRO_CREA TORE"
                description="COM_PREVENTIVILIBRI_FORM_DESC_LIBRO_CRE ATORE"
                filter="safehtml" />

        <field name="testo" type="upfile" size="50" class="inputbox"
                label="COM_PREVENTIVILIBRI_FORM_LBL_LIBRO_TEST O"
                description="COM_PREVENTIVILIBRI_FORM_DESC_LIBRO_TES TO" />

    </fieldset>
</form>
Il campo upfile è un campo custom che ho creato io.

29
Premetto che sto usando il modulo nativo di Joomla, non uso xxxxx

Ho attivato l'opzione Attiva URL SEF e nei link resta sempre /index.php/

Se provo ad attivare anche Riscrivi URL SEF e attivo il file .htaccess (lasciando le impostazioni standard) non funzionano più i link.

Come posso togliere la parte /index.php/ ?

Edit : rimosso riferimento componente commerciale

30
Nel file XML di installazione del mio componente, nella sezione dedicata al frontend ho
Codice: [Seleziona]
<files folder="site">
    <filename>index.html</filename>
    <filename>preventivilibri.php</filename>
    <filename>controller.php</filename>
    <filename>router.php</filename>
    <folder>views</folder>
    <folder>models</folder>
    <folder>controllers</folder>
    <folder>helpers</folder>
    <folder>images</folder>
    <folder>files</folder>
</files>
All'interno della cartella "site" ovviamente ho tutte queste cartelle indicate, ma quando vado ad installare il componente un messaggio d'errore mi dice

JInstaller: :Install: il file non esiste /htdocs/public/www/tmp/install_4e843ab722053/com_preventivilibri-2.1.0/site/files

ma la cartella files c'è, ho anche provato a fare copia/incolla del nome per escludere errori di digitazione, ma niente da fare.
La cartella files contiene altre 2 cartelle, "testi" e "copertine", entrambe vuote.

Devo dichiarare anche queste altre due cartelle? Come?
Oppure quale può essere il problema?

Anche la cartella "images" (contiene 3 immagini) è una cartella non standard che ho aggiunto io, ho provato a fare un'installazione senza la cartella "files" e non ho avuto problemi.

31
Sviluppo / Impostare moduli da mostrare in una view
« il: 27 Set 2011, 21:08:25 »
In una view del frontend del mio componente ho un link html che punta ad un'altra view.
Questa altra view non ha alcuna voce di menu che punta ad essa, quindi dal backend non posso decidere quali moduli mostrare con tale view.

C'è un altro modo per impostare i modli da mostrare con questa view?
Se si può solo scegliere di non mostrarne alcuno potrebbe andare bene ugualmente, ma mi farebbe comodo poter scegliere se possibile.

32
Sviluppo / [1.7] Ottenere il valore di itemid
« il: 27 Set 2011, 19:05:52 »
Devo costruire un link ad una view del mio componente e metterlo in setRedirect.

Ho bisogno di ricavare l'id della view (o meglio della voce di menu ad essa associata) in modo da metterlo nel parametro Itemid del link.

Devo ricavarlo leggendo dal db oppure c'è una funzione che me lo recupera?

33
Sviluppo / Re:Menu drop down e selezione multipla
« il: 21 Set 2011, 00:38:33 »
Grazie, mi sono creato il mio campo personalizzato e funziona a dovere :)

34
Grazie, ci proverò.  :)

35
Sviluppo / [Risolto] Menu drop down e selezione multipla
« il: 20 Set 2011, 12:56:18 »
Nel file
administrator\components\com_mycomponent\models\forms\miaform.xml

ho un campo di tipo sql che prende dei dati da una mia tabella e li mostra in un menu select.
Il problema è che se ne può selezionare solo uno, io avrei bisogno di rendere la selezione multipla, ma il tipo di campo sql sembra non avere alcun parametro utile allo scopo.

Come posso risolvere?

36
Sviluppo / Re:Problemi tra AJAX e stringhe responseText
« il: 20 Set 2011, 12:51:54 »
Ho risolto e spiego la situazione nel caso possa fare comodo ad altri.

Intanto assegnaXMLHttpRequest() ovviamente è una funzione che mi restituisce un oggetto XMLHttpRequest da usare per la chiamata AJAX e responseText è ciò che torna indietro dalla chiamata.

Dunque, il problema era che la stringa generata dallo script PHP viene messa all'interno della struttura di una pagina del sito, anche se questa non viene mostrata, dunque in risposta, oltre al menu select c'era tutto il codice della pagina: doctype, tag heder, meta, link, body... tutto.

Ho risolto mettendo all'inizio e alla fine della stringa generata dallo script un simbolo che mi fa da delimitatore, nel codice javascript effettuo uno split() e recupero il secondo elemento, che è il solo codice che mi interessa.

37
Sviluppo / Re:generic.list mi deforma un div
« il: 17 Set 2011, 09:17:03 »
Il problema è che l'output della funzione php, ovvero il solo menu <select>, viene messo all'interno di un'intera pagina html, comprensiva di tutte le sue parti (doctype, headers, tag meta, tutto il template del sito...) in pratica come se dovesse essere mostrata sul browser e tutto questo viene ricevuto dalla funzione AJAX.

Come faccio ad estrapolare solo l'output della funzione php? Oppure, se fosse possibile, come faccio a non far mettere l'output all'interno della struttura di una pagina?

38
Per favore datemi una mano perché sto uscendo  matto.

Nel file default.php di una vista del frontend di un componente ho questo codice AJAX
Codice: [Seleziona]
function cartaInternoChanged()
{   
    var mypostrequest = new assegnaXMLHttpRequest();
    mypostrequest.onreadystatechange = function() {
        if (mypostrequest.readyState == 4){
            if (mypostrequest.status == 200 || window.location.href.indexOf("http") == -1){
                var select = mypostrequest.responseText;
           
                select = select.match(/<select(.*?)<\/select>/m);
                alert(select); //stampa null
                document.getElementById("select-formatocarta").innerHTML = select;
            }
            else{ alert("An error has occured making the request"); }
        }
    }
    var parametri = "option=com_preventivilibri&task=formaticarta&tmpl=component&";
    parametri += "tipocarta="+document.forms["preventivo"].elements['tipocarta'].value;
     
    mypostrequest.open("POST", "index.php", true);
    mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    mypostrequest.send(parametri);
    return false;
}
La funzione formaticarta() che viene chiamata si trova nel controller ed ha questo codice
Codice: [Seleziona]
function formaticarta()
{
    $db = &JFactory::getDBO();
       
    $query = "SELECT id, formato, h, l FROM #__gestionepreventivi_formaticarta";
    $db->setQuery($query);
    $result = $db->loadAssocList();

    $options = array();
    foreach($result as $option)
        $options[] = JHTML::_('select.option',$option['id'],JText::_($option['formato']." (".$option['h']." x ".$option['l'].")"));
       
    echo JHTML::_('select.genericlist', $options, 'formatocarta');
}
Perché
select = select.match(/<select(.*?)<\/select>/m);
non trova alcun match?

Se provo a stampare direttamente la variabile "select" il menu appare, quindi la risposta della funzione php è corretta, ma la match() non se ne accorge.

Se al posto di
var select = mypostrequest.responseText;
metto
select = "bla bla <select name='formatocarta'><option value='1'>A4</option><option value='2'>A5</option></select> bla bla";

il match() fa il suo lavoro, rimuove tutto ciò che non è il tag select, quindi la regex  funziona

Il problema sta nel fatto che il responseText non è interpretato come stringa... come mai? ???

Il punto è che oltre al tag select arriva altro codice aggiunto da Joolma che non mi serve e voglio rimuoverlo selezionando solo il tag select.

Aiutatemi, non so più che pesci prendere.

39
Sviluppo / generic.list mi deforma un div
« il: 16 Set 2011, 20:59:10 »
Tramite AJAX chiamo una funzione che legge dei dati dal db, genera un menu select, lo restituisce e la funzione AJAX lo inserisce in un div rimpiazzando il select che c'era prima.

Il problema è che il div mi diventa altissimo che mi deforma il layout.

Il menu è generato in questo modo

$query 
"SELECT bla bla bla";
$db->setQuery($query);
$result $db->loadAssocList();
$options = array();
foreach(
$result as $option)
$options[] = JHTML::_('select.option',$option['id'],JText::_($option['formato']." (".$option['h']." x ".$option['l'].")"));
        
echo 
JHTML::_('select.genericlist'$options'formatocarta');


il div in cui inserisco il menu ha id="select-formatocarta"

Con firebug ho notato che oltre al codice per il select, prima di questo, vengono aggiunti un sacco di altri tag, questi

Nella richiesta AJAX, tra i parametri ho messo anche
 tmpl=component

Da dove saltano fuori? Come si fa a non farli generare?

40
Sviluppo / Elaborare JSON su risposta AJAX
« il: 16 Set 2011, 18:15:48 »
Sul frontend del mio componente ho una form con alcuni campi select.
Le option di alcuni di questi campi sono legati gli uni agli altri.
Vorrei fare in modo che selezionando un'opzione da una select, le opzioni di quella ad essa legata vengano ripopolate al volo.
Per fare questo sto ovviamente usando AJAX, ma sto riscontrando un problema.

La funzione AJAX invia correttamente la richiesta, risponde una funzione che ho messo nel controller.php, questa elabora i dati e restituisce il risultato in formato JSON.

Tutto questo funziona, perché se stampo il responseText, dentro ci trovo i dati in formato JSON.

Adesso viene il problema.
Questo è ciò che ricevo in risposta dal controller (stampato con innerHTML in  un div di prova)
Codice: [Seleziona]
[ {id:"1", formato:"A4", h:"297", l:"210",}, {id:"2", formato:"A5", h:"210", l:"148",}, {id:"3", formato:"A6", h:"148", l:"105",} ]Il codice con cui invece provo ad  elaborare la risposta è questo
Codice: [Seleziona]
if (mypostrequest.status == 200 || window.location.href.indexOf("http") == -1)
{
    var json = mypostrequest.responseText;
    var arr = eval(json);
    var result = '';
    for(var i=0;i<arr.length;i++){
        result += "id: "+arr[i].id+" - formato: "+arr[i].formato+" - h: "+arr[i].h+" - l: "+arr[i].l+"[br /]";
    }
    document.getElementById("risultatopreventivo").innerHTML = result;
}
Questo non funziona, si blocca all'esecuzione della eval(json)
Se però copio l'output che ricevo e lo assegno direttamente alla variabile json nella funzione javascript, la eval() funziona ed i dati vengono stampati regolarmente.

In pratica pare che la stringa  ricevuta in risposta dalla funzione nel controller non sia accettata dalla eval().

Avete idea del perché di  questo comportamento? Come posso risolvere?

Pagine: 1 [2] 3 4 5 ... 15


Web Design Bolzano Kreatif