Pagina 1 di 3

Modificare <title> nell'overall_header

Inviato: 20/01/2016, 4:49
da frank
Nella mia estensione devo sostituire la parte title con un'altra, però non c'è un event così in alto da far interagire. Come posso fare?

Codice: Seleziona tutto

<title><!-- IF UNREAD_NOTIFICATIONS_COUNT -->({UNREAD_NOTIFICATIONS_COUNT}) <!-- ENDIF --><!-- IF not S_VIEWTOPIC and not S_VIEWFORUM -->{PAGE_TITLE} - <!-- ENDIF --><!-- IF S_IN_MCP -->{L_MCP} - <!-- ELSEIF S_IN_UCP -->{L_UCP} - <!-- ENDIF -->{SITENAME}<!-- IF S_VIEWTOPIC or S_VIEWFORUM --> - {SITENAME}<!-- ENDIF --></title>
devo sostituirla con questa:

Codice: Seleziona tutto

<title><!-- IF UNREAD_NOTIFICATIONS_COUNT -->({UNREAD_NOTIFICATIONS_COUNT}) <!-- ENDIF --><!-- IF not S_VIEWTOPIC and not S_VIEWFORUM -->{SITENAME} - <!-- ENDIF --><!-- IF S_IN_MCP -->{L_MCP} - <!-- ELSEIF S_IN_UCP -->{L_UCP} - <!-- ENDIF -->{PAGE_TITLE}<!-- IF S_VIEWTOPIC or S_VIEWFORUM --> - {SITENAME}<!-- ENDIF --></title>
Schermata 2016-01-20 alle 04.40.36.png

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 9:12
da Micogian
Secondo me hai 3 strade:
1) creare una copia di overall_header.html, fare le modifiche al tag <title> e usare questo overall_header1.html per le tue pagine personalizzate.
2) Modificare direttamente il file overall_header. Le modifiche del codice originale sono sconsigliate, non vietate.
3) Aggiungere due eventi nel file overall_header, ad esempio prima del tag title inserisci:

Codice: Seleziona tutto

<!-- EVENT title_header_before -->
e dopo il tag <title>

Codice: Seleziona tutto

<!-- EVENT title_header_after-->
In questo caso dovresti creare 2 eventi nell'estensione, nel primo evento nel file title_header_before inserisci semplicemente il tag inizio commento:

Codice: Seleziona tutto

<!--
Nel secondo file title_header_after ci metti la chiusura del commento e il title modificato

Codice: Seleziona tutto

-->
<title>.......</title>
Il risultato sarà questo:

Codice: Seleziona tutto

<!--
<title>codice originale</title>
-->
<title>Codice modificato</title>
In sostanza la parte originale del title non viene eliminata ma viene commentata e sostituita da quella successiva.
Anche questa comunque è una modifica al codice anche se lascia le cose come stanno se non viene abilitata l'estensione.
E' il sistema che ho usato per modificare la testata e inserire un menu nel mio forum di prova http://www.actaplantarum.org/forum/

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 10:57
da frank
Io non voglio toccare il file originale

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 10:59
da Astro86
non ho ben capito dove vuoi far apparire il codice ma prima del overall_header_head_append ci sarebbe il overall_header_feeds

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 11:22
da Micogian
Le estensioni aggiungono codice, non lo sostituiscono. L'unica soluzione è commentare il codice che si vuole modificare e sostituirlo con quello modificato.
Si potrebbe invertire nell'estensione i valori delle 2 variabili PAGE_TITLE e SITENAME ma poi bisogna vedere che non siano usate in altra parte.

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 11:25
da frank
Questo sta sotto il title <!-- EVENT overall_header_feeds -->

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 11:29
da frank
E' possibile modificare il codice senza toccare il file originale, l'utente Sir l'ha già fatto

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 11:31
da Micogian
La prima riga del file index_body.html che è l'indice del forum è questa

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->
Se nel file overall_header.html non ci sono eventi non c'è soluzione se non la modifica del codice.
Anch'io ho modificato il codice da estensione, ma come ho spiegato nel mio intervento.

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 11:35
da frank
Micogian ha scritto:La prima riga del file index_body.html che è l'indice del forum è questa

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->
Se nel file overall_header.html non ci sono eventi non c'è soluzione se non la modifica del codice.
Anch'io ho modificato il codice da estensione, ma come ho spiegato nel mio intervento.
Allora devo aspettare Sir, lui sa come fare

Re: Modificare <title> nell'overall_header

Inviato: 20/01/2016, 13:13
da Sir Xiradorn
La soluzione di Mico è quella da adottare in questo caso. Lui ti sta dicendo questo: Non devi commentare il codice originale, bensì usare una estensione per operare un comment su tale valore. Quindi in sostanza è quella che credo la migliore cosa se vuoi operare per bene. Quindi non vai a fare una sporcatura del codice originale, ma useresti quella furbata.

Se vuoi poi sfruttare tale procedura ancora più selettivamente potresti usare ad esempio lo SCRIPT_NAME come clausola dell'if e dire fai l'inversione SITENAME e PAGE_TITLE solo su alcune pagine.

Si sottolineo la soluzione portata in auge da MICO suggerendo che se l'estensione va a intaccare valori dentro un ciclo, potete sfruttarne anche dentro le potenzialità come sto facendo nel porting di una MOD

Quindi in breve, crea una estensione, o modificane una che hai già e creato tu, aggiungendo tale procedura.

La modifica del codice diretto è sconsigliata.

Esiste una ulteriore strada però. Diciamola come numero 4.
Esistono i core event che ti permettono di modificarne proprio l'header ovvero il core.page_header e con quello creare un listener e una funzione per intercettarne l'event del PAGE_TITLE o farne addirittura l'override

Più complessa questa strada ma forse anche più efficace (e tra le altre mi ha anche dato una mezza idea per una altra cosa che sperimenterò quanto prima).

Se vuoi pochi problemi Mico's rules it's the right way.

L'altra volta è stato possibile intervenire come una riscrittura perchè il tag era displayble cioè nascondibile. Il tag Title non ha la stessa simpatia del precedente caso