La soluzione è semplice.
Start -> run -> cmd.exe
cd c:\EasyPHP\MySql\bin
mysql_upgrade.exe -u root -pPASSWORD
La soluzione è semplice.
Start -> run -> cmd.exe
cd c:\EasyPHP\MySql\bin
mysql_upgrade.exe -u root -pPASSWORD
Primi passi con Social Engine 4 e primi problemi nello sviluppo dei plugin..
Questo errore che mi ha occupato diversi giorni, l’ho finalmente risolto e spero possa essere d’aiuto anche a voi.
exception 'Engine_Api_Exception' with message 'Unknown item type: ' in [...]
Lo causava il ->delete() di un metodo, perché la classe della tabella (documentatevi sull’uso delle tabelle con Zend Framework) l’avevo creata così:
(nella cartella: PluginName/Model/)
Nometabella.php
SBAGLIATO:
class Pluginname_Model_Nometabella extends Core_Model_Item_Collection {
CORRETTO:
class Pluginname_Model_Nometabella extends Core_Model_Item_Abstract {
Hope this helps.
E’ ormai indispensabile usare la programmazione orientata ad oggetti (OOP). Questo anche in JavaScript. Nonostante sia stato usato nell’antichità (ai tempi di IE6) solo per piccoli controlli, ora come ora, non possiamo fare nulla senza utilizzarlo. Ogni sito che si rispetti, infatti, utilizza ormai AJAX. Benvenuti in WEB2 =)
In realtà quelle che siamo abituati a chiamare classi negli altri linguaggi, per JS sono degli oggetti, di tipo Object
Vediamo dunque come poter utilizzare gli oggetti in JS. La struttura degli oggetti, è identica a quella di un file JSON. Supponiamo, dunque, di avere un set di funzioni che abbiamo scritto. Queste funzioni le vogliamo inserire in un nostro oggetto, così da poterle facilmente distinguere nel codice che scriviamo e che andremo a leggere da qui a tot mesi per magari porvi modifiche.
Ecco le nostre funzioni di esempio:
A puro titolo informativo, le seguenti funzioni, potevano essere dichiarate anche così:
Proprio da questo, prendiamo spunto per creare il nostro oggetto:
State attenti a separare ogni elemento dell’oggetto con una virgola ed alla fine della dichiarazione, mettere il punto e virgola.
Se prima, per utilizzarle le chiamavamo semplicemente da codice, ora le utilizzeremo così:
Enjoy
Un buon modo per velocizzare il nostro sito, è quello di puntare molto sulla cache. Questa, come sappiamo, è la rottura di palle per eccellenza se si sta sviluppando, ma per l’utente finale che naviga il sito, è essenziale.
Un modo ottimo per usare la cache, è puntare sul file manifest. Questo file, è facilmente creabile con un editor di testo e la sintassi è decisamente semplice. Ci permette di salvare i files sul browser permettendo l’esecuzione del sito o parte di esso anche offline.
File: cache.manifest
Vediamo di capirci qualcosa.
La nostra pagina web (esempio index.php) includerà il file manifest così:
Il browser, quando leggerà la pagina, andrà a vedere se in locale ha i files specificati nel file. Se li ha già, non li riscarica. Se il file manifest, è cambiato dall’ultimo accesso, il browser scaricherà tutti i files. Ora il browser ha tutti i files pronti per l’esecuzione direttamente in locale.
I files elencati sotto la sezione
Per poter usare questo metodo di cache, dovrete settare un file .htaccess che imposti il mimetype del file, ovvero:
Questo vi permette di utilizzare un’estensione diversa, a vostra scelta. E’ importante impostare l’AddType, altrimenti avrete un errore sul browser:
Prestate, inoltre, attenzione al fatto che avrete un limite di 5mb per sito.
Da quanto ho capito, non è possibile specificare cartelle, per il caching, quindi niente *. Potrete, invece, usarli nella direttiva network.
Beh, se come me avete avuto la necessità di comprimere i JS, in specialmodo prototype 1.7, dovete assolutamente usare questo tool di google:
http://code.google.com/intl/it-IT/closure/compiler/
(file ZIP)
Tutti i tool online, portano a generare un JS non funzionante perchè cambiano nomi alle variabili. Questo, si limita a comprimere al meglio.
Da 170kb, prototype.js è ora 85kb.
Usarlo è semplice, ricordate che necessita Java 6+ installato.
Apriamo una console DOS, piuttosto che una shell linux, entrate nella cartella dove avete decompresso l’archivio e digitate:
java -jar compiler.jar --js=nostro_file.js --js_output_file=file_compresso.js
Se volete comprimere più di un file in UNO solo, allora vi sarà comodo fare
java -jar compiler.jar --js=file1.js --js=file2.js --js=file3.js --js_output_file=file_compresso.js
Buona compressione
Oggi sono inciampato in questo errore.
Fortunatamente è facilmente risolvibile.
per prima cosa, facciamo una print_r del nostro oggetto:
ottenendo un risultato simile a questo:
__PHP_Incomplete_Class Object
(
[__PHP_Incomplete_Class_Name] => NomeOggetto
[...]
Dovremo dunque includere il file contenente la dichiarazione della classe NomeOggetto.
Quindi:
Risolvendo dunque il problema.
Hope this helps.
D.
Un’ottima soluzione, per separare il codice dall’HTML, è l’uso dei template.
Recentemente ho imparato ad usarli sempre. Creo un service lato server, in PHP che ritorna un oggeto JSON. Tale oggetto lato client, con JavaScript, è facilmente interpretabile ed usabile per completare la nostra pagina.
Prendiamo in esempio tabella. Vogliamo completarla con dei valori che otteniamo da un service chiamato con AJAX.
Nell’esempio uso prototype, ma potrebbe essere anche jQuery.
Chiamata AJAX:
Funzione elabora flusso:
Gestione ottimale del render EJS:
Esempio fileTemplate.ejs
Questo EJS, produrrà in output una tabella con tante voci quante ne arrivano dal service.
Ecco un JSON di esempio:
I tag per scrivere con EJS, sono <% e %>. Gli stessi di ASP. Fra quei tag, possiamo usare del codice JavaScript, che verrà eseguito quando faremo EJS.render().
Il vero problema degli EJS è l’assenza di un tool per verificarne la sintassi. A breve pubblicherò un piccolo tool online per validarli con visualizzazione del numero riga riportante l’errore.
Link di riferimento:
Validatore JSON
Embedded JS (EJS homepage)