Si si lo so che è un esempio becero semplice e fin troppo stupido ma guardate qui:
Ho creato un widget di esempio!!!
Sono andato dentro alla cartella delle extensions, quindi ho creato /protected/extensions/esempio/
e dentro il file Esempio.php: /protected/extensions/esempio/Esempio.php
Dentro al file php ho scritto questa roba
<?php
class Esempio extends CWidget {
public function init() {
Yii::app()->getClientScript()->registerScript(__CLASS__ . '#', "alert('Esempio');");
}
}
Poi sono andato in una view ed ho richiamato il widget:
<?php $this->widget('ext.esempio.Esempio'); ?>
Funziona!!!
Volevo gioire con voi di questa piccola conquista: non avevo ancora esteso yii se non con extensions di altri
Ho in mente un paio di widget molto interessanti, solo che usano delle librerie javascript. Appena verifico come includere dei file .js faccio subito subito un paio di estensioni =).
Sto guardando in questo momento. Però ho un problema: ho creato questo widget, sono riuscito ad importare nella pagina i suoi .js, i suoi css… Ma non mi è chiaro come posso fare a passare dei parametri: mi aspettavo di poter fare una cosa come questa:
La libreria LightBox utilizza delle immagini, devo necessariamente copiarle fuori dalla cartella assets perché i loro percorsi sono scritti in file css o in file javascript. Per questo nella guida suggerisco di copiare la cartella lightbox2images/ dentro images/. Guardando il CGridView ho trovato questo:
. Vuoi dire che posso fare la stessa cosa, e copiare i files che mi servono dentro la cartella zii di yii? Quindi devo modificare i files css del mio widget in modo che puntino a quella cartella? Mi sembra molto contorto :-\. Non sarebbe più semplice copiare dei files dal mio widget ad un’altra cartella del mio sito web?
il tuo widget ha i suoi dati nella sua cartella… quando chiami il metodo publish() gli dai il path della tua cartela… e questo metodo copiera tutto il contenuto della tua cartella nel asstess del applicazione…
Nella tua cartella puoi avere i CSS a i JS files che si riferiscono alle imagini contenute li… usi i relativi path…
Dentro al codice javascript mi servono delle variabili che posso conoscere solo al momento della creazione del widget. Vorrei passare al file .js il percorso dell’asset. Ma non riesco ad ottenere questo valore. Provo da ore ma nulla =(.