Eccoci arrivati alla prima alpha release.
Ecco qualche screenshot.
Eccoci arrivati alla prima alpha release.
Ecco qualche screenshot.
Ultima modifica di shinesoftware; 02-08-2010 alle 18:33
Shine Software Hosting
Domini, Hosting, Adsl, Shdsl, Ecommerce
http://www.shinesoftware.com .it .eu .biz
Avete utilizzato lo Zend Framework di base per MVC (in un altro topic avete detto di usare questo ADP)?
Oppure vi siete scritti qualcosa di Vs pugno?
Lo chiedo perché potrebbe essere interessante il progetto e, se sfruttate librerie "standard", che permettono velocemente di comprendere come è organizzato il codice, potreste trovare velocemente persone che contribuiscono al dev.![]()
Ultima modifica di Antonio; 23-11-2009 alle 12:52
La libreria MVC è stata realizzata di sana pianta proprio con l'intento di semplificarne tutti gli aspetti e la velocità di creazione dei moduli. Basta pensare che per creare un nuovo modulo si perdono solamente 3 minuti seguendo quanto descritto in basso.
Prima di tutto bisogna capire la struttura del progetto. Eccola qua:
Ecco la classe di partenza di un modulo:Codice:1. application [cartella che contiene l'applicazione e tutti i moduli] 2. libraries [cartella che contiene tutte le librerie come PEAR] 3. public [cartella pubblica che contiene i template pubblici ed i template di amministrazione] 4. readme.txt [file di spiegazioni] 5. shineisp_temp.sql [database di partenza]
in allegato vedete un esploso.
Quindi per creare un semplice modulo funzionante al 100% in 3 minuti dovete semplicemente eseguire i seguenti passi:
Creazione di un modulo amministrativo
1. Creare una cartella dentro admin/plugins con il nome del vostro modulo in minuscolo senza ne simboli ne numeri; ad esempio: myplugin
2. Creare una cartella templates all'interno di myplugin
3. Creare un file myplugin.php dentro la cartella myplugin ed incollare la classe di partenza al suo interno
4. Creare un file template myplugin.htpl dentro la cartella templates ed inserire la seguente stringa {$test} al suo interno
5. Creare un nuovo record dentro la tabella modules inserendo il nostro nuovo modulo amministrativo:
Classe PHP5 di partenza per la realizzazione di un nuovo plugin:Codice:INSERT INTO `modules` (`module_id`, `menu`, `class`, `link`, `description`, `icon`, `enabled`, `parent`) VALUES (1, 'MyPlugin', 'myplugin', '/admin/myplugin/', 'MyPlugin Management', 'myplugincss', 1, 0);
Adesso accedendo nell'area amministrativa http://www.vostrodominio.it/admin/ troverete, dopo aver effettuato il login il vostro modulo.Codice:/** * * PHP versions 5 * * @name ...... * @package Shine Framework * @author Shine Software <info@shinesoftware.com> * @copyright 1997-2009 Shine Software Group * @license BSD License 3.0 * @version 1.0 * @link http://www.shinesoftware.com */ class myplugin { protected $id; protected $params; protected $skin; protected $website_id; protected $maintpl; protected $modulename = "myplugin"; /** * Main Constructor of the class * @return null */ public function __construct($maintpl="", $id="", $params="", $skin="", $website_id="") { // Set the main variables $this->id = $id; $this->params = $params; $this->skin = $skin; $this->website_id = $website_id; $this->maintpl = $maintpl; } /** * First method called * @return html */ public function doExecute() { $libs = singleton::getInstance ( 'Library' ); /* TODO: * 1. You have to create a folder inside the modules name with the same module name. * 2. You have to create a folder inside your new module folder called "templates". * 3. You have to create a php file inside your module folder with the same module name. * 4. You have to create a htpl file inside your custom module templates folder with the same module name. * 5. Open your template and write {$test} string */ $tpl = $libs->retrieveTemplate ( APPLICATION_PATH . '/modules/" . $this->modulename . "/templates/' ); $tpl->assign ( 'test', 'test my first template'); return $tpl->fetch ( $this->modulename . '.htpl' ); } }
Ecco tutto.
Ultima modifica di shinesoftware; 02-08-2010 alle 18:33
Shine Software Hosting
Domini, Hosting, Adsl, Shdsl, Ecommerce
http://www.shinesoftware.com .it .eu .biz
un qualcosa che manca assolutamente a WHMCS
gestire più dati fattura con un unica email.
Adesso WHMCS lavora così: 1 email di contatto account = 1 dato fattura
Nel loro forum troverai molte richieste relative a questa cosa che interessa a mezzo mondo![]()
Faccio la domanda prima di installare il tutto che comunque mi interessa parecchio.
Per la registrazione domini è prevista (o magari c'è già) qualche interazione con le API di qualche registrars (opensrs o affini) ?
grazie
Abbiamo pubblicato il progetto su Sourceforge ed avete a disposizione l'SVN che vi permetterà di collaborare alla creazione del progetto adatto alla vostra azienda.
Si possono creare tutti i moduli che si desiderano in meno di 3 minuti, quindi possiamo realizzare API di qualsiasi registrar. zofe, inviaci i riferimenti che la realizziamo
Serverweb: cosa intendi con gestire più dati fattura con un unica email?
In questo momento un utente amministratore può creare tutti gli ordini che desidera legandoli ad un cliente.
Presto realizzeremo la parte pubblica ma abbiamo bisogno di voi!
A presto
Shine Software Hosting
Domini, Hosting, Adsl, Shdsl, Ecommerce
http://www.shinesoftware.com .it .eu .biz
Ti faccio un esempio della limitazione di WHMCS, limitazione molto discussa sul forum del medesimo pannello
WHMCS:
cliente pippo@pippo.it
il cliente pippo compra domini e hosting e li rivende a terzi. Le fatture sono da intestare a Pippo.
Pippo avrà 100 hosting e 100 domini e 1 dato fattura utile per fatturare i vari piani
NON HA WHMCS e molto richiesto:
cliente pippo@pippo.it
il cliente pippo compra domini e hosting per conto terzi. Lui si incarica di ordinare i piani hosting per altri usando la sua email ma vuole che le fatture siano fatte a diverse società, quelle società che lo incaricano di ordinare
Per fare questo su WHMCS, PIPPO deve per ogni dato fattura creare un account diverso (es: ditta@pippo.it).
Ha 100 piani hosting a 100 ditte diverse? deve creare 100 alias@pippo.it per poter gestire le 100 ditte.
Se postassi anche un link non faresti male
Su ShineISP non ne ho trovati![]()
Serverweb se abbiamo capito bene cerchi un modulo rivenditori che offre la possibilità di rivendere i domini nascondendo il fornitore vero e proprio. Giusto?
Il progetto ha appena una settimana di vita se ci aiutate inseriremo entro natale tutte le funzionalità base per un servizio completo.
Ecco qua il link https://sourceforge.net/projects/shineispsoft/ lo trovi sotto svn.
Shine Software Hosting
Domini, Hosting, Adsl, Shdsl, Ecommerce
http://www.shinesoftware.com .it .eu .biz
Ciao Antonio,
dimmi cosa non ti va, in dettaglio. Cosa intendi con: "per diverse cose." ?
Magari se dai delle buone motivazioni si può prendere la palla al balzo per migliorare.
Fammi sapere.
Shine Software Hosting
Domini, Hosting, Adsl, Shdsl, Ecommerce
http://www.shinesoftware.com .it .eu .biz
Te ne scrivo alcune:
Mi fermo qui, ma ci sarebbero anche altre cose che salterebbero fuori con una attenta analisi di tutto lo script.
- Non commentate il codice (non venitemi a dire che prima si finisce il software e poi si commenta il codice che mi arrabbio di brutto poi
)
- Utilizzate decine e decine di librerie diverse, seminate un pò nella library ed un pò in application (librerie mantenute da diverse persone/gruppi, alcune anche non mantenute più).
- Nessun controllo sui parametri in ingresso (lo si deve fare di volta in volta nei vari moduli... evviva i design error prone
)
- Inserite nelle sessioni le stringhe di localizzazione ed è la prima volta che vedo una pazzia del genere
- Sistema di logging decente inesistente
- Sistema di ACL/gestione autenticazione inesistente
- La progettazione del database non è stata fatta con molta attenzione e, per diverse feature che dovrete inserire, sarete costretti ad un bel refactoring pesante.
E' un peccato, perché sarei stato propenso a dare una mano dato che era interessante come progetto
EDIT: Ho tolto il punto sulla licenza, dopo che ho riletto la PHP License nuova
Ultima modifica di Antonio; 24-11-2009 alle 16:13
Ciao Antonio,
grazie per la tua analisi. Molte delle cose che indichi sono giuste ed è per questo che chiediamo un aiuto per la creazione di un codice migliore. Purtroppo come sai benissimo progettare, e sviluppare non è gratis e stiamo cercando di conciliare le varie fasi con la licenza offerta. Per quanto riguarda la licenza è BSD anche se qualche file ha una licenza PHP.
Siamo disposti ad un'analisi approfondita ma abbiamo bisogno di un aiuto. Quindi se il progetto ti interessa impegnamoci a realizzarlo insieme.
Fammi sapere
Shine Software Hosting
Domini, Hosting, Adsl, Shdsl, Ecommerce
http://www.shinesoftware.com .it .eu .biz
Con l'ottica di dare un parere da programmatore dopo un'occhiata al codice.
Voglio anche essere severo, ma lo faccio perchè chi fà open source vuole e deve accettare "critiche", perchè è l'unico modo per migliorarsi.
La prima è abbastanza personale:
- PEAR a mio modo di vedere è pieno di mostri del passato, e anche smarty pur essendo io costretto ad usarlo spesso per logiche aziendali non è una soluzione in auge nei framework MVC piu' recenti, dove le viste si fanno in PHP "liscio".. se devi fare qualcosa dippiu' di due foreach innestati non muori giovane.. e se mischi anche javascript non ti incartarti con i {literal}
Le altre forse osservazioni sono piu' condivisibili:
- Trovo sbagliato anche senza aprire e leggere il codice, che ci siano il modulo "login" e il modulo "logout".
Sarebbe piu' logico aspettarsi un modulo utente, con quelle due azioni possibili... in generale in tutta l'applicazione non c'è proprio un concetto di "modulo" (se ogni cartella contiene un'unico file con un'unica azione possibile, tuttalpiu' parlerei di plugin.. con una certa difficoltà pure)
- Che senso ha usare PEAR/DB come wrapper se poi le query funzionerebbero solo in mysql? (mi riferisco alle query "lisce" dove si fà anche uso di funzioni non standard ansi tipo CONCAT trovate in giro nel codice..
Per non parlare della mancanza di un escape e della concatenazione di stringhe "lisce" dalla SESSION, la manna degli hacker.
- Per quanto mi riguarda puo' anche non esserci un ACL, un log, ma l'uso della sessione php è davvero "sbarazzino", mi associo ad antonio nel ritenere senza senso mettere le stringhe di lingua in sessione, è meno imbarazzante usare i global.
- poi, lo definite "MVC", ammesso che i controller siano cio' che c'è in "modules", e che i file smarty siano le viste, dove stanno i model? mi pare che non ci siano. (non è necessariamente una pecca.. ma almeno io non lo chiamerei MVC).
- direi che nel quasi 2010 sarebbe ora di usare solo sintassi php5 no?
Consiglio
se volete davvero reclutare gente si puo' solo usare un framework già documentato, magari piccolo ma che sia esente dai problemi seri segnalati.
Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)
Segnalibri