Optimus, errore meta description?

Aperto da Flavio93Zena, Domenica - 02 Settembre 2018 - 20:02

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Flavio93Zena

https://custom.simplemachines.org/mods/index.php?mod=2659
Ho la mod Optimus di Bugo e un piccolo/grande problema... Questa mod permette di avere (fra altre cose) come meta description la descrizione delle categorie, peccato che in realtà quello che viene fuori su Google è il nome della categoria seguito da un trattino e dal nome del forum più un altro trattino >:(

Ho guardato il file (mi pare sia Sources/Class-Optimus o qualcosa del genere) e boh mi pare a posto tranne forse questo pezzo
if (!empty($modSettings['optimus_board_description'])) {
$context['optimus_description'] = !empty($context['description']) ? $context['description'] : $context['name'];
$context['optimus_description'] = $smcFunc['htmlspecialchars']($context['optimus_description']);

Che secondo me dovrebbe essere
if (!empty($modSettings['optimus_board_description'])) {
$context['optimus_description'] = empty($context['description']) ? $context['description'] : $context['name'];
$context['optimus_description'] = $smcFunc['htmlspecialchars']($context['optimus_description']);

(notare l'assenza del punto esclamativo). Anche cambiandolo però mi pare non sia cambiato nulla ???
Avete idee? Ho provato a chiedere nel topic di supporto ma ho idea che o l'autore non ha capito una mazza (parla quasi solo russo) ;D oppure non gli interessa molto.
Grazie in anticipo :)

emanuele

Forse dovresti ripassare un po' le basi di php. :P

Il codice di Bugo sembra corretto. Sei sicuro la board in questione abbia una descrizione?

Flavio93Zena

Sì ce l'ha.
A me sembra corretto il mio... Se la descrizione è vuota mostra il nome :/ La sua è se la descrizione non è vuota mostra il nome (che è quello che fa, per questo l'ho cambiata).

emanuele

La tua versione è.

empty($context['description']) ? $context['description'] : $context['name'];

che si può tradurre in:
if (empty($context['description']))
{
    $context['description']
}
else
{
    $context['name']
}

che tradotto in linguaggio umano diviene:
CitazioneSe $context['description'] è vuoto, allora prendi $context['description']. Se invece non lo è, prendi $context['name']

Flavio93Zena

O.o beh in entrambi i casi mostra il nome della sezione e il nome del forum, per cui non funziona in quel senso...

emanuele

Guardando il codice, mi viene da pensare che l'hook usato per eseguire il codice è chiamato troppo presto, prima che la descrizione della board sia popolata, quindi $context['description'] è sempre vuoto e non viene utilizzato.

Flavio93Zena

Ovviamente devi avere ragione xD
Sono 2, li ho messi entrambi (di modo che quello di pre_load sia dopo quello di pre_include) in integrate_buffer con il codice di Bugo originale e... Vedo solo il nome della sezione, uno spazio, un trattino e uno spazio. Ancora niente descrizione :(

emanuele

Muovere le cose a caso non serve a niente.
Il mio suggerimento era inteso come "dillo a Bugo che sicuramente sa cosa fare" (anche se originariamente non ha realizzato che il codice non funziona).
integrate_buffer è inutile perché avviene dopo che l'html è già stato processato e creato, quindi cambiare le variabili da usare nel  template a quel punto è perfettamente inutile.

Il codice deve essere eseguito da qualche parte intorno a loadTheme o giù di lì direi.
Sicuramente dopo loadBoard.

Flavio93Zena

Citazione di: emanuele il Lunedì - 03 Settembre 2018 - 14:01
Muovere le cose a caso non serve a niente.
Ma... Ma... Trial and error ::)
Citazione di: emanuele il Lunedì - 03 Settembre 2018 - 14:01
Il mio suggerimento era inteso come "dillo a Bugo che sicuramente sa cosa fare" (anche se originariamente non ha realizzato che il codice non funziona).
Fatto, ma non mi pare sia d'aiuto.
Citazione di: emanuele il Lunedì - 03 Settembre 2018 - 14:01
integrate_buffer è inutile perché avviene dopo che l'html è già stato processato e creato, quindi cambiare le variabili da usare nel  template a quel punto è perfettamente inutile.
Citazione di: emanuele il Lunedì - 03 Settembre 2018 - 14:01
Il codice deve essere eseguito da qualche parte intorno a loadTheme o giù di lì direi.
Sicuramente dopo loadBoard.
Ah, pensavo riuscisse comunque a sostituirla come fosse una banale variabile dichiarata 2 volte... Tipo $description=whatever, $description=whatever2. Per cui integrate_buffer è così tardi che la pagina esiste già, a quanto capisco. Non saprei però dove altro infilare gli hooks, nessuna delle altre opzioni è una... Via di mezzo, per così dire.

emanuele

ehh...
Potrebbe essere qualcosa tipo integrate_load_theme o come si chiama (al momento sono troppo stanco per pensare e/o cercare... xD ).

Flavio93Zena

E' esattamente l'ultimo che ho provato e mi sono dimenticato di scriverlo O:-)
Non funziona, esce solo "Titolo - " e basta :(

Flavio93Zena


Flavio93Zena


emanuele

Al momento è parecchio dura, devo installare SMF, installare optimus e vedere cosa fare.
Tieni conto che al momento sto lavorando sulle semantic URL in elk è la cosa mi porta via già parecchio tempo, quindi... diciamo dopo metà ottobre per andare sul sicuro, prima non so se ce la faccio a guardare.

Flavio93Zena

FeelsBadMan
Ho anche le mie varie installazioni di test più o meno vanilla se serve.

Discussioni simili (3)