Status delle discussioni nelle descrizioni delle sezioni

Started by 3DDario, May 27, 2012, 06:26:14 AM

Previous topic - Next topic

3DDario

Oggi vi vorrei chiedere se esiste una MOD per il mio SMF 2.0.2 ITA.
Vorrei una cosa abbastanza complicata:

  • Vorrei che in tutti (o alcuni) topic comparisse un bottone ai MOD che ti permettesse di indicare lo status della discussione (Completata, in coda, in attesa, ...);
  • Che lo status scelto in precedenza comparisse nell'elenco delle discussioni nella sezione;
  • Che nell'index comparisse accanto alle sezioni qualcosa tipo "2 discussioni completate, 3 in attesa, ....";
Siccome so già che una MOD di questo tipo non esiste, vorrei avere alcune indicazioni per crearle e/o per sapere quali file modificare.
Grazie in anticipo.

emanuele

1) ti serve introdurre dei permessi, quindi dovrai modificare (oppure aggiungere tramite un "hook") ManagePermissions.php,
2) ti servirà creare una nuova colonna nel database (tabella {db_prefix}topics) per poter salvare lo status (se vuoi lo storico, dovrai creare un'altra colonna oppure un'intera tabella, a seconda di come vuoi archiviarlo),
3) per far comparire lo status di fianco all'elenco delle discussioni dovrai modificare MessageIndex.php per far sì che i dati vengano richiamati da database e MessageIndex.template.php per far sì che lo status venga visualizzato,
4) per far comparire le informazioni in nell'index...probabilmente ti conviene aggiungere una colonna alla tabella {db_prefix}boards in cui archivierai il numero di discussioni in un certo stato e lo aggiornerai quando lo stato cambia (questo perché altrimenti diventerebbe probabilmente oneroso calcolare al volo ogni volta il numero di discussioni in un certo stato, è lo stesso trucchetto che viene usato per il numero di post e topic nelle board),
5) per poi visualizzare il numero dovrai modificare: Subs-Board.php (dove c'è la query che recupera le informazioni relative alle board), quindi BoardIndex.php (ma forse questo non è necessario, non ricordo più) ed infine BoardIndex.template.php per effettivamente mostrare i valori (tieni poi conto che probabilmente dovrai farlo comparire anche nelle board dove ci sono sotto-board e per farlo dovrai apportare le modifiche che hai fatto a BoardIndex.php e BoardIndex.template.php anche a MessageIndex.php e MessageIndex.template.php).

Non so quanto questa disquisizione possa averti chiarito le idee... LOL


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

3DDario

Per prima cosa, provo in locale perché:

  • Riduco i tempi per la modifica dei file;
  • Non distruggo il mio sito...
XD

EDIT: Ho creato il sito in locale, ma non so come seguire la tua guida. Ho provato a fare il passo 2 (senza fare l'1), ma senza successo. Ho provato quindi a creare una nuova tabella, ma non sapevo che inserire...

emanuele

Allor.
Vuoi farlo come se fosse un mod (quindi inteso per poi ridistribuirlo) oppure ti bata farlo per il tuo sito? (che in ogni casi io suggerirei la forma di mod perché così in caso di problemi o upgrade ti basta un click (o giù di lì) per re-installarlo)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

3DDario

Mod perché lo userò in più forum e io faccio spesso reinstallazioni.

emanuele

Per un mod allora la prima cosa che devi fare è creare uno script per l'installazione.
Qualche riferimento:
http://www.simplemachines.org/community/index.php?topic=299669.0
http://www.simplemachines.org/community/index.php?topic=299670.0
http://wiki.simplemachines.org/smf/$smcFunc#Database_Package_Functions_only.

Per aggiungere una colonna devi usare $smcFunc['db_add_column'], qui trovi anche un esempio).
Per creare una tabella devi usare $smcFunc['db_create_table'], ma di questa non ho esempi, ti consiglio di scaricarti un mod che crea una tabella ed usarlo come riferimento.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

3DDario

Ok. Lavorerò per creare questa MOD. Domani vi dico.
EDIT: Per la prima versione di test, avresti una MOD che faccia lo stesso tipo di modifiche che voglio io in modo che io debba solo modificare i campi?
Ho provato partendo da una MOD già creata, solo che mi blocco quando devo modificare i codici da inserire. Il readme, l'install e tutto è ok. Mi manca solo il file "modification_2.xml".
Quote
Al massimo c'è qualcuno che avrebbe voglia di fare questo lavoro al posto mio? Per uno che ha già creato mod non credo che sia così difficile. Per me, si.

emanuele

Gli xml sono di norma la parte più facile: si tratta di mettere nel tag <search> il codice original di smf e in <add> quello nuoo del mod.
Questo va fatto solo per i file di SMF che vengono modificati.

Se il problema è il file xml un mod qualunque va quasi certamente bene (devi essere proprio sfortunateo per beccarne uno che non fa modifiche! :P).


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Advertisement: