Aggiornamento mod "Add PM Info To Header Area"

Aperto da Filippo, Sabato - 13 Dicembre 2014 - 16:39

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Filippo

http://custom.simplemachines.org/mods/index.php?mod=619

La mod è per la 1.1. Mi sembra decisamente basilare e quindi facilissimamente implementabile sulla 2.0.x

Consiste nella modifica del solo index.template.php 

if ($context['allow_pm'])
echo $txt['youhave'], '<a href="', $scripturl, '?action=pm">', $context['user']['messages'], ' ', $context['user']['messages'] != 1 ? $txt[153] : $txt[471], '</a>', $txt['newmessages4'], ' ', $context['user']['unread_messages'], ' ', $context['user']['unread_messages'] == 1 ? $txt['newmessages0'] : $txt['newmessages1'], '<br />';


Ho provato ad istallarla ma naturlmente non funziona. Facendo le debite modifiche manualmente invece va.


e nell'aggiunta di una stringa nel Modification.lingua.php


$txt['youhave'] = 'You have ';


come si fa per farla diventare una mod funzionante per la 2.0?

Flavio93Zena

Non capisco cos'è che vorresti sapere... Se hai già fatto le modifiche cosa dovrei dirti? Lol

Filippo

A mano.

Vorrei che la mod funzionasse in automatico :P

Flavio93Zena

Beh non basta modificare il file .xml cambiando versione e modifiche al file con quelle che hai fatto tu? :D
(se ti servono maggiori dettagli ti rispondo ma dopo cena lol)

emanuele

Decomprimi il file zip, apri con un editor di testo (ad esempio notepad++) il file modification.xml ed osserva come è fatto, quindi "rimpiazza" con i cambiamenti che hai trovato tu.
Se hai problemi (e posso immaginare ne avrai al primo tentativo) posta quello che hai fatto e quello che non ti riesce. ;)

Filippo

Ho aggiunto al file la modifica al file modification.italian (funziona)
il resto l'ho lasciato come era

Inoltre ho modificato il file package-info dandogli la compatibilità generale per la 2.0

La mod si installa correttamente ma mi posiziona la stringa nel posto sbagliato e manca qualcosa, probabilmetne variabili della  non esistenti nella 2.0

(lo stesso vale per il tema di default)
La modifica al file viene da questa porzione di codice

Citazione<file name="$themedir/index.template.php">
      <operation>
         <search position="before"><![CDATA[
   // If the user is logged in, display stuff like their name, new messages, etc.
   if ($context['user']['is_logged'])
   {
]]></search>
         <add><![CDATA[
      if ($context['allow_pm'])
            echo $txt['youhave'], '<a href="', $scripturl, '?action=pm">', $context['user']['messages'], ' ', $context['user']['messages'] != 1 ? $txt[153] : $txt[471], '</a>', $txt['newmessages4'], ' ', $context['user']['unread_messages'], ' ', $context['user']['unread_messages'] == 1 ? $txt['newmessages0'] : $txt['newmessages1'], '<br />';
]]></add>
      </operation>
   </file>


Il risultato è il seguente

Filippo

#6
Secondo me dovrebbe inserirsi dopo questa porzione, qualche rigo sotto

echo '
<ul class="reset">
<li class="greeting">', $txt['hello_member_ndt'], ' <span>', $context['user']['name'], '</span></li>
<li><a href="', $scripturl, '?action=unread">', $txt['unread_since_visit'], '</a></li>
<li><a href="', $scripturl, '?action=unreadreplies">', $txt['show_unread_replies'], '</a></li>';

emanuele

In <search> devi metterci il testo che il package manager deve cercare, quindi se pensi che il testo debba andare dopo quel pezzo, dovrai scrivere qualcosa tipo:

         <search position="before"><![CDATA[echo '
<ul class="reset">
<li class="greeting">', $txt['hello_member_ndt'], ' <span>', $context['user']['name'], '</span></li>
<li><a href="', $scripturl, '?action=unread">', $txt['unread_since_visit'], '</a></li>
<li><a href="', $scripturl, '?action=unreadreplies">', $txt['show_unread_replies'], '</a></li>';]]></search>

Flavio93Zena

Un piccolo appunto... In genere meno scrivi e meglio è nell'xml, nel senso che se tu posti grandi pezzi di codice poi ti ritrovi che in molti temi la modifica fallirà perchè non troverà la stringa da modificare (perchè magari quelle precedenti/seguenti sono state modificate dal tema stesso), quindi cerca di tenere sempre meno codice possibile, lasciando però una stringa univoca (cioè che non ce ne sia più di una identica nel file, diversamente la modifica fallirà).

Filippo

Capito come modificare.

Solo che la stringa che deve comparire non compare completa. Guardate l'allegato

emanuele


Filippo

#11
No, era già nella risposta n°6 :)


emanuele

Ahhh... okay, quello è perché ti mancano delle stringhe:
$txt[153] : $txt[471]
che, a giudicare dal fatto che usano un indice numerico, erano di SMF 1.0/1.1.
Quello che puoi fare, è aggiungere alla tua versione del mod il codice per aggiungere quelle due stringhe, oppure scoprire come sono state cambiate in SMF 2.0 ed usare quelle nuove.
Ho dato un occhiata e:
* $txt[153] è diventata $txt['msg_alert_messages']
* mentre $txt[471] potrebbe essere $txt['message']

Filippo


Flavio93Zena

Citazione di: emanuele il Lunedì - 15 Dicembre 2014 - 15:50
$txt[153] : $txt[471]
che, a giudicare dal fatto che usano un indice numerico, erano di SMF 1.0/1.1.
Aaaahhh ora ho capito che diamine sono... Mi domando perchè farle tutte con numeri O.o ne viene fuori un macello incomprensibile nel codice... Beh grazie :P

Discussioni simili (3)