<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Override per posizionare un modulo dopo il secondo paragrafo dell&#x27; articolo]]></title><description><![CDATA[<p dir="auto">Ciao a tutti, come da titolo io vorrei posizionare un modulo subito dopo il <strong>secondo paragrafo</strong> dell' articolo, per farlo sto cercando di adottare la tecnica del <strong>override</strong>, inserendo questa porzione di codice all'inizio nel file default.php riesco a inserire il modulo subito dopo il <strong>primo paragrafo</strong> "<strong>&lt;/p&gt;</strong>" il che è già un buon risultato, ma se io volessi metterlo non  subito il primo ma subito dopo il <strong>secondo paragrafo</strong> che cosa devo cambiare nel codice?<br />
Allego il codice che inserisco:</p>
<pre><code>//*******
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule( 'mod_custom' , 'Nome Del Modulo' );
$len = strlen($this-&gt;item-&gt;text);
$pos = strpos($this-&gt;item-&gt;text, "&lt;/p&gt;");
$first = substr($this-&gt;item-&gt;text, 0, $pos);
$NomeDelModulo = $module-&gt;content;
$end = substr($this-&gt;item-&gt;text, $pos, $len);
$this-&gt;item-&gt;text = $first.$NomeDelModulo.$end;
//********
// Fine inserimento modulo in articolo.
</code></pre>
]]></description><link>https://connect.gt/topic/195392/override-per-posizionare-un-modulo-dopo-il-secondo-paragrafo-dell-articolo</link><generator>RSS for Node</generator><lastBuildDate>Mon, 25 May 2026 18:12:43 GMT</lastBuildDate><atom:link href="https://connect.gt/topic/195392.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Oct 2013 12:11:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Override per posizionare un modulo dopo il secondo paragrafo dell&#x27; articolo on Sat, 07 Dec 2013 17:21:06 GMT]]></title><description><![CDATA[<p dir="auto">Ciao danko54 e Benvenuto nel Forum GT.</p>
<p dir="auto">Le modifiche da apportare al codice sono davvero poche:</p>
<pre><code>
jimport( 'joomla.application.module.helper' );
$module = JModuleHelper::getModule( 'mod_custom' , 'tuomodulo' );
$len = strlen($this-&gt;item-&gt;text); 
$posp = strpos($this-&gt;item-&gt;text, "&lt;/p&gt;");
if($len &gt; $posp + 10)
{
$pos12 = $posp + 4;
$pos2 = strpos($this-&gt;item-&gt;text, "&lt;/p&gt;",$pos12);
if (!($pos2=='false') ) $posp = $pos2;
}
$first = substr($this-&gt;item-&gt;text, 0, $posp);
$NomeDelModulo = $module-&gt;content;
$end = substr($this-&gt;item-&gt;text, $posp, $len);
$this-&gt;item-&gt;text = $first.$NomeDelModulo.$end;

</code></pre>
<p dir="auto">Commento</p>
<p dir="auto">Il codice sopra deve essere inserito nel file <em>default.php</em> relativo all'articolo e racchiuso tra:</p>
<pre><code>
&lt;?php
// qui ci va il codice
?&gt;

</code></pre>
<p dir="auto">Il file <em>default.php</em> si trova solitamente nella cartella dei template cioè seguendo il percorso templates &gt; tuotemplate &gt; html &gt; com_content &gt; article &gt; default.php .<br />
Se invece si desidera modificare il file del core di Joomla il percorso è: components &gt; com_content &gt; views &gt; article &gt; tmpl &gt; default.php .</p>
<p dir="auto">Rispetto alla tua soluzione ho rinominato *posp *(posizione paragrafo) la variabile che tu hai nominato <em>pos</em>, ma non cambia nulla.<br />
La riga</p>
<pre><code>
$posp = strpos($this-&gt;item-&gt;text, "&lt;/p&gt;");

</code></pre>
<p dir="auto">ha lo stesso effetto della tua, cioè mette in *posp *la posizione del primo carattere della stringa "&lt;/p&gt;" all'interno del testo.</p>
<p dir="auto">Dopo un primo paragrafo potrebbe essercene un secondo oppure no. Poiché dopo *posp *abbiamo almeno i 4 caratteri di "&lt;/p&gt;" e poi altri 7 del secondo paragrafo "&lt;p&gt;&lt;/p&gt;", la condizione che ho imposto per proseguire nella ricerca è che la lunghezza complessiva del testo (len) sia maggiore di almeno 11 rispetto a <em>posp</em>; se ciò accade si prosegue con la ricerca a partire da dopo il "&lt;/p&gt;" trovato, ovvero da <em>pos12 = posp + 4</em>.<br />
*pos12 *e *pos2 *sono variabili di comodo.</p>
<p dir="auto">La riga:</p>
<pre><code>
$pos2 = strpos($this-&gt;item-&gt;text, "&lt;/p&gt;",$pos12); 

</code></pre>
<p dir="auto">effettua una ricerca analoga alla precedente, sempre all'interno del testo ma a partire dalla <em>pos12</em>.</p>
<p dir="auto">Nota: non è detto che esista un secondo paragrafo: precedentemente abbiamo fatto un controllo sul numero minimo di caratteri, ma non sappiamo se il paragrafo ci sia. La funzione *strpos *restituisce un numero intero solo se la ricerca ha esito positivo, cioè se il paragrafo c'è, altrimenti restituisce <em>false</em>.</p>
<p dir="auto">A questo punto ho fatto un'ipotesi: se c'è un secondo paragrafo allora aggiorniamo la posizione *posp *con *pos2 *(posizione del secondo paragrafo), altrimenti ... nulla, cioè in *posp *resterà la posizione del primo paragrafo. In questo modo, se esiste un unico paragrafo allora *tuomodulo *viene stampato alla fine dell'unico paragrafo presente.<br />
Se serve puoi inserire altre condizioni/eccezioni.</p>
<p dir="auto">Spero di esserti stato utile.:)<br />
F.</p>
]]></description><link>https://connect.gt/post/1142191</link><guid isPermaLink="true">https://connect.gt/post/1142191</guid><dc:creator><![CDATA[fda]]></dc:creator><pubDate>Sat, 07 Dec 2013 17:21:06 GMT</pubDate></item></channel></rss>