Category Archives: Joomla

Player video youtube responsivo

Aggiungere player per la visualizzazione di video Youtube è molto semplice: basta aggiungere il “codice da incorporare” scaricato dalle proprietà del video e inserirlo nel codice HTML del nostro sito… ma se il sito ha un layout responsivo, il player non si adatterà correttamente.

Per risolvere possiamo modificare il codice html scaricato da youtube:

<iframe src="//www.youtube.com/embed/KmObZnQfRXg?rel=0" frameborder="0" allowfullscreen height="315" width="560">>

con questo:

<div class="resp-video">
<iframe src="//www.youtube.com/embed/KmObZnQfRXg?rel=0" frameborder="0" allowfullscreen>
</div>

ed aggiungere il seguente codice css:

.resp-video {
height: 0;
overflow: hidden;
padding-bottom: 56.25%;
padding-top: 30px;
position: relative;
}
.resp-video iframe,
.resp-video object,
.resp-video embed {
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}

Errori in upgrade da Joomla 2.5 a 3.2

Oggi ci siamo imbattuti in un aggiornamento di un sito joomla a dir poco rovinoso.. per fortuna avevamo un backup messo da parte…

dopo aver lanciato l’aggiornamento, accedendo sia al sito che all’area amministrativa ci viene presentato il seguente errore:

Fatal error: Call to a member function isAdmin() on a non-object in /site/plugins/system/remember/remember.php on line 42

la soluzione è stata sostituire il file render.php con quello salvato in fase di backup, completare l’upgrade e sostituire nuovamente il file con quello creato dall’upgrade..

ma, risolto un problema eccone uno di nuovo:

Fatal error: Call to a member function getInt() on a non-object in /site/administrator/components/com_postinstall/models/messages.php on line 37

in questo caso la soluzione è stata modificare il codice del file messages.php cambiando, come di seguito indicato, le righe evidenziate con “da modificare”


$query = parent::buildQuery($overrideLimits=true); <----------------------------------da modificare $db = $this->getDbo();

// Add a forced extension filtering to the list
$eid = $this->getState('eid', 700);<---------------------------------------da modificare $query->where($db->qn('extension_id') . ' = ' . $db->q($eid));

// Force filter only enabled messages

$published = $this->getState('published', 1, 'int'); <-----------------------change $query->where($db->qn('enabled') . ' = ' . $db->q($published));

return $query;

Una volta rientrati nell’area amministrativa, joomla ci accoglie con una serie di postinstall messages corrotti… soluzione? Editare il database cancellando i record (non l’intera tabella) presenti nella tabella XXXXX_postinstall_messages.

Aggiunta checkbox accettazione privacy al form contatti joomla

joomlaIn questo post vediamo come si può aggiungere una checkbox da far selezionare agli utenti di un sito Joomla prima di procedere con l’invio di un form contatti.
Per prima cosa copiamo il file da www.sito.it/components/com_contact/views/contact/tmpl/default_form.php a www.sito.it/templates/nome_template/html/com_contact/contact/default_form.php.

Ovviamente dovremo sostituire nome_template con il nome del template utilizzato.

Editiamo il file default_form.php aggiungendo la seguente stringa:

JHTML::_('behavior.modal');

sotto la stringa

defined('_JEXEC') or die;

e sostituiamo tutto il codice presente sotto la seguente stringa:

<?php endforeach;?>
<dt></dt>

con questo codice:

<dt></dt>
<dd><dt>
<input type="checkbox" name="privacy_policy" id="privacy_policy" value="1" />*
Ho letto ed accetto l'<a href="URL_PAGINA_PRIVACY" rel="{handler: 'iframe', size: {x: 640, y: 480}}" title="Accetta I Termini Della Privacy.">informativa sulla privacy.</a>
</dd></dt>
<dd><dt><button type="submit"><?php echo JText::_('COM_CONTACT_CONTACT_SEND'); ?></button>
<input type="hidden" name="option" value="com_contact" />
<input type="hidden" name="task" value="contact.submit" />
<input type="hidden" name="return" value="<?php echo $this->return_page;?>" />
<input type="hidden" name="id" value="<?php echo $this->contact->slug; ?>" />
<?php echo JHtml::_( 'form.token' ); ?>
</dt></dd>
</dl>
</fieldset>
</form>
</div>

Il gioco è fatto…

Nota 1: Ora dovremo formattare via css la nostra checkbox
Nota 2: volendo si potrebbe modificare direttamente il file www.sito.it/components/com_contact/views/contact/tmpl/default_form.php ottenendo lo stesso risultato ma, ad ogni aggiornamento di Joomla, dovremo ripetere la procedura sopra evidenziata.

Cartella Administrator in Joomla

In questo articolo vi spiego come rinominare la cartella Administration in Joomla: questa tecnica permette di aumentare il livello di sicurezza del vostro sito sviluppato con il noto CMS Joomla.

  1. Create una nuova cartella nella “root” di Joomla: in questo esempio creiamo la cartella “amministrazione
  2. Create quindi un nuovo file “index.php” nella cartella “amministrazione” contenente il seguente codice PHP:
    $admin_cookie_code="5434231426";
    setcookie("JoomlaAdminSession",$admin_cookie_code,0,"/");
    header("Location: /administrator/index.php");
    ?>
  3. Aggiungete poi al file “.htaccess” presente nella cartella “administrator” di Joomla il seguente codice:
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/administrator
    RewriteCond %{HTTP_COOKIE} !JoomlaAdminSession=5434231426
    RewriteRule .* - [L,F]
  4. Per accedere al sito amministrativo di Joolmla, collegatevi tramite un browser supportato alla pagina “http://sitojoomla.com/amministrazione/” dove “sitojoomla.com” è il nome del vostro sito. Il codice PHP creerà un cookie (nell’esempio, identificato nel codice da !JoomlaAdminSession=5434231426) che vi reindizzerà alla pagina del sito di amministrazione: tale cookie scadrà al termine della sessione. Nessuno sarà in grado di caricare la pagina di amministrazione se non accedendo alla pagina che abbiamo creato prima.

Ricordatevi che potete usare un nome di fantasia per denominare la nuova pagina di amministrazione e che è consigliabile cambiare il codice del cookie in qualcosa di diverso per ragioni di sicurezza.

Titoli cliccabili in Joomla

Oggi vi spiego come aggiungere un link nel titolo di un modulo in Joomla 1.6 , 1.7 e 2.5 : come ben sapete, Joomla non permette di fare ciò di default.

Vediamo quindi la procedura da seguire per ottenere ciò:

  1. Aprite il file .xml relativo al modulo per il quale volete aggiungere un link nel titolo: in questo esempio utilizzeremo il modulo Articles_News: modules/mod_articles_news/mod_articles_news.xml
  2. Aggiungete la seguente riga di codice tra il primo set di tags  <fieldset name=”basic”></fieldset>:
    <field name="title_link" type="text" default="" label="Title link" description="" />

    Salvate quindi il file .xml appena modificato

  3. Aprite ora il file templates/system/html/modules.php ed individuate la seguente funzione xhtml:
    function modChrome_xhtml($module, &$params, &$attribs)
    {
    	if (!empty ($module->content)) : ?>
    		<div>
    		<?php if ($module->showtitle != 0) : ?>
    			<h3><?php echo $module->title; ?></h3>
    		<?php endif; ?>
    			<?php echo $module->content; ?>
    		</div>
    	<?php endif;
    }

    Una volta individuata, sostituitela con il seguente codice PHP:

    function modChrome_xhtml($module, &$params, &$attribs)
    {
    	if (!empty ($module->content)) : ?>
    		<div>
    		<?php if ($module->showtitle != 0) : ?>
    			<?php $title_link = $params->get('title_link'); ?>
    			<h3><?php if($title_link) { ?> <a href="<?php echo $params->get('title_link');  ?>"> <?php } ?><?php echo $module->title; ?><?php if($title_link) { ?></a><?php } ?></h3>
    		<?php endif; ?>
    			<?php echo $module->content; ?>
    		</div>
    	<?php endif;
    }
  4. Salvate il file: ora avete la possibilità di inserire un link come parametro fra le opzioni del modulo! 😀

Nota: in Joomla 3.0 questa opzione ora è disponibile di default.