Joomla.it Forum
Non solo Joomla... => Sviluppo => : Dacchio 27 Jul 2011, 17:39:09
-
Buongiorno, premetto che è la prima volta che scrivo qui in forum ,ma vi seguo da un pò, ultimamente mi è capitato di perfezionare il componente K2comments, così vorrei creare un plugin per poter scambiare il file in questione automaticamente con una semplice istallazione,ho seguito diverse guide online, ma creato il file xml e quello php non sono riuscito a trovare la funzione giusta per poter sostituire il file modificato con quello originale di K2, potete aiutarmi?
ho seguito questa guidahttp://www.joomlashow.it/guide/sviluppo-estensioni/creare-un-plugin-per-joomla-1.5/ (http://www.joomlashow.it/guide/sviluppo-estensioni/creare-un-plugin-per-joomla-1.5/) ma non riesco dal php a fargli sostituire il file quando il plugin viene attivato
Vi ringrazio in anticipo per le vostre risposte
-
sai che non ho capito nulla?
M.
-
Si scusami mi sono accorto di aver confuso un pò troppo, vorrei sapere come posso spostare un file da una cartella all'altra automaticamente, io avevo pensato di usare un plugin ma non sò quale comando scrivere all'interno della funzione,e come la devo chiamare?
function <EventName>()
{
global $mainframe;
// Plugin code goes here.
return true;
}
-
non è detto che tu possa operare sul server determinati comandi.
poi per poter rispondere bisognerebbe capire anche il senso di quello che vuoi fare... non mi sembra una cosa che si faccia "normalmente", solitamente queste necessità risciano di derivare da errori concettuali più che da geniali soluzioni.
Anche perchè non mi è molto chiaro perchè vuoi sfruttare un trigger per fare questa cosa.
Magari ha un senso tutto... ma non capendo... ;)
M.
-
se non si può spostare il file già modificato sarebbe possibile aggiungere solo il pezzo di codice che ho aggiunto a quello originale?il file da modificare è un .php
-
se non si può spostare il file già modificato
------------------------------------------------------------
ho detto questo e non me ne sono accorto?
M.
-
Scusami non avveo compreso bene il precedente messaggio, il fatto è che per automatizzare il tutto non ho altre possibilità che spostare direttamente il file, o comunque il pezzo di codice modificato, ma è molto complicato da attuare?e casomai quali funzioni posso usare?
-
ultimamente mi è capitato di perfezionare il componente K2comments, così vorrei creare un plugin per poter scambiare il file in questione automaticamente con una semplice istallazione
----------------------------------------------------------------
questa cosa prova a tradurla in uno schema/flusso, magari diventa chiaro... scambiare non è molto comprensibile e sicuramente comprende una marea di cose che dai per scontato.
K2comments permette di....,
tu vorresti che: un guest,...un user,.. o un admin potessero fare (tramite cosa?) ......
M.
-
ho modificato dei file di k2 comments per creare un antispam,per fare questo ho aggiunto del codice in più, io vorrei poter aggiungere in un qualsiasi sito quel pezzetto di codice con una semplice istallazione, senza utilizzare l'FTP
-
:) se iniziavi così il post era tutto più chiaro e semplice.
il modo più semplice è prendere in esempio i captcha di joomla e fare la stessa cosa con il tuo codice, nella jed ne trovi tanti.
si, un plugin potrebbe essere una soluzione, forse basta solo l'override.
In joomla, non è necessari modificare il codice sorgente delle estensioni, spesso si può ricorrere all'override, una semplice cartella html contenente la dir del componente da modificare e i files che modifichi (completi, non solo la modifica) copiando quella cartella all'interno dei tuoi templates puoi avere quelle modifiche ovunque ci siano le medesime condizioni (ovvero quel componente installato e la stessa major version di Joomla).
Come si fa l'override lo trovi facilmente...
M.
-
Grazie mille, ora proverò con le soluzioni che mi hai elencato grazie ancora e scusami per gli intrecci di parole
-
Ho provato con l'override, e devo dire che è una funzione piuttosto interessante di joomla che non conoscevo, solo ce vorrei automatizzare il tutto, ho provato ad inserire il file all'interno del template con il file xml, ma sono riuscito a copiarlo solo all'interno della cartella plugins.Ora stò provando ad usare il file php, con il seguente codice
function onAfterContentSave( &$location, &$destination)
{
global $mainframe;
$location="plugin/system/com_k2/models/item.php";
$destination= $mainframe->getBasePath() . "templates/" . $mainframe->getTemplate()."html/";
copy($location,$destination);
return true;
}
questa è solo un idea del codice, mancherebbe ancora la funzione per ceare la cartella com_k2/model all'interno del templates,mi servirebbe sapere il tipo di plugins da usare e la funzione che all'attivazione del plugins mi faccia eseguire il codice postato sopra.
-
no aspetta, non fare i mischioni.
- l'override è una cosa, un plugin è un altra.
- l'override si fa in una cartella html nel template, il plugin si installa e ha una sua cartella
- nell'override non c'è un xml
se devi fare un plugin che sia installabile ovunque devi mettere il codice che crea il captcha nel plugin, è sconsigliabilissimo includerlo.
Il plugin solitamente consiste in due files uno: il plugin, due: il manifesto xml che contiene parametri fissi e i files che lo compongono per l'installazione.
M.
-
Con il file php del plugins non posso unire l'override e il plugin?
Perchè poi dal plugin non saprei come includere il codice
-
Con il file php del plugins non posso unire l'override e il plugin?
------------------------------------------------------------------------------------
No
dal plugin non saprei come includere il codice
----------------------------------------------------------------
devi scriverlo all'interno del plugin, non includerlo (ma anche nell'override comunque)
Stai cercando di skippare una parte che non può essere skippata: la conoscenza del framework joomla.
Riparti dal tutorial plugin , segui passo passo la guida cercando di capire cosa stai facendo, quando hai capito come "gira il fumo" costruisci allo stesso modo il tuo plugin.
Il copia-incolla alla cieca, non sapendo cosa si fa non è mai ne consigliato ne favorito (almeno da me)
M.