Yii Framework Forum: Ho fatto un widget =) - Yii Framework Forum

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Ho fatto un widget =) Rate Topic: -----

#1 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 16 September 2011 - 04:33 PM

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
0

#2 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 17 September 2011 - 03:27 AM

Bravo... il primo dei molti che verano... :D
Find more about me.... btw. Do you know your WAN IP?
0

#3 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 05:24 AM

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 =).
0

#4 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 19 September 2011 - 05:47 AM

Per vedere come si fa, e per avere qualche nuova idea... butta un occhio ai core widget di Yii...

li trovi nel folder "framework/web/widgets"
Find more about me.... btw. Do you know your WAN IP?
0

#5 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 06:28 AM

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:

<?php
            $this->widget('ext.my.widget', array(
                'valore' => 1234
            ));
?>

0

#6 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 19 September 2011 - 06:38 AM

Al widget non puoi passare dei parametri come ad un metodo... pero puoi settare i suoi property...

Nel tuo essempio... "valore" dovrebbe essere un "public valore;" nell tuo widget...
Find more about me.... btw. Do you know your WAN IP?
0

#7 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 07:19 AM

Molto bene: ho fatto un widget!!! A breve lo pubblico nella directory di yii! E' molto molto molto utile, vedrai!
1

#8 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 08:37 AM

http://www.yiiframew...ion/lyiightbox/
0

#9 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 19 September 2011 - 08:43 AM

Sei veloce :)

Se ci spendi anchora un po di tempo ad analizare i widget di Yii... troverai anche come publicare automaticamente le imagini ;)

Una nota... nella prima riga hai un errore...

scrive: To user this extension
dovrebber stare: To use this extension

Se e possibile sarebber piu facile ad altri utenti se il link per github sia "live"...
Find more about me.... btw. Do you know your WAN IP?
0

#10 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 08:50 AM

Ho corretto il "to user" in "to use" ed anche il link. Adesso vediamo che cosa mi dicono.
0

#11 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 19 September 2011 - 08:57 AM

Rimane anchora il fatto che si devono manualmente copiare le imagini...

Per questo puoi usare il metodo publish() - http://www.yiiframew...#publish-detail
Find more about me.... btw. Do you know your WAN IP?
0

#12 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 09:02 AM

E come posso fare a rinominare una cartella con publish?
0

#13 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 09:06 AM

Mmmm adesso che ci penso... perchè far rinominare la cartella!?!? Non ha senso: correggo subito il widget e lo ripubblico corretto.
0

#14 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 09:10 AM

Scusami ancora, ma ... devo creare una nuova classe che estende CAssetManager?
0

#15 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 01:18 PM

Ed ora ho una marea di widget che mi sono venuti in mente. Ma non parto con il secondo fino a che questo non è stabile e commentato da qualcuno.
0

#16 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 19 September 2011 - 02:26 PM

pe run idea dai un occhiata al codice di CGridView... li si publica un folder intero con le imagini... ;)
Find more about me.... btw. Do you know your WAN IP?
1

#17 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 19 September 2011 - 04:40 PM

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:
Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('zii.widgets.assets')).'/gridview';
. 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?
0

#18 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 19 September 2011 - 04:55 PM

CGridView a i suoi dati nella cartela zii...

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

guarda come e fatto il CSS del CGridView...
Find more about me.... btw. Do you know your WAN IP?
0

#19 User is offline   sensorario 

  • Elite Member
  • Yii
  • Group: Moderators
  • Posts: 1,986
  • Joined: 07-September 10
  • Location:Cesena (Italy)

Posted 20 September 2011 - 02:35 AM

Mi serve ancora un piccolo aiutino:
Come posso fare ad includere un file javascript con dei parametri, ad esempio

<script src="myscript.js?folder=/my/site/assets/230948728" />

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 =(.
0

#20 User is offline   Maurizio Domba Cerin 

  • Yii - Yesss It Is !!!
  • Yii
  • Group: Yii Dev Team
  • Posts: 4,339
  • Joined: 12-October 09
  • Location:Croatia

Posted 20 September 2011 - 02:57 AM

E dove si trova sto JS file... se lo metti nel folder dove si trovano anche le imagini ho pure un subfolder... alora puoi usare i path relativi

Per esempio nel tuo widget puoi avere la strutura dei folder simile a questa

mywidget
-- assets
------ js
------ css
------ imagini

In questo caso publish() ti copia questa strutura e dal JS file puo otenere le imagini con '../imagini/'

Nel essempio di CGridView il JS file e le imagini sono assieme nello stesso folder...
Find more about me.... btw. Do you know your WAN IP?
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users