Back to top

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - claudiofollonica

Pagine: [1] 2
1
Joomsites / Re:Siti giuridici con plugin specifico
« il: 29 Apr 2014, 14:57:54 »
La normativa articolo per articolo mi serviva proprio per tirare dei link specifici dal sito dello studio (www.studiodestasio.it) che prima del plugin automatico dovevo inserire manualmente con l'estensione simple wiki linker. Da tempo avevo in mente di realizzare qualcosa che rendesse la cosa automatica e ci sono riuscito dopo essermi messo a "studiare" le espressioni regolari. Mi si è aperto un mondo  ;D ! Sono partito proprio da simple wiki linker, modificandolo per farlo lavorare con il motore di ricerca di mediawiki (anch'esso modificato ad hoc). Poi mi è venuta anche l'idea di appunti volanti (http://note.dirittopratico.it) anche questa utilizzabile dal plugin...


Quanto alle prestazioni, entrambi i siti "giarano" sui server Joomlahost (cloud hosting medium) e l'impatto sui tempi di caricamento è trascurabile (merito sicuramente di joomlahost, sarei curioso di provare sul mio vecchio host tiscali!). Per entrambi i siti la cache è disabilitata e ovviamente abilitarla renderebbe pressoché nullo l'impatto sulle prestazioni (io non posso farlo per compatibilità con kunena).


Grazie delle risposte e dei commenti e ti chiedo: perché nel tuo caso parli di "impresa titanica"? Intendi per l'aggiornamento della normativa caricata?

2
Joomsites / Siti giuridici con plugin specifico
« il: 29 Apr 2014, 14:26:51 »

Ecco le mie "creature" che segnalo solo per la presenza di un plugin (sperimentale) per siti a contenuto giuridico...


Il primo: http://www.dirittopratico.it
nulla di particolare, volutamente minimalista, basato addirittura sul semplicissimo atomic!
Davvero efficace il filtro antispam R Antispam 1.30 (www.ratmilwebsolutions.com): i commenti agli articoli ed i post sul forum non hanno bisogno di registrazione né captcha...
Lo scopo del sito lo illustro qui: http://bit.ly/1hNl8EY


Il secondo: http://www.studiodestasio.it
il mio primo sito, iniziato a "costruire" quando un CMS non sapevo neppure cosa fosse (e figuriamoci CSS, PHP e regex: non che ora ne sappia tanto di più ma qualcosa ho imparato ;)). Partito dalla 1.6 è il classico esempio di sito non più sviluppabile se non conservando soltanto i contenuti e ripartendo da zero... Il template è un semplice adattamento del beez20, tanti (troppi) componenti sono stati nel corso del tempo personalizzati anche a livello di codice. Un upgrade alla 3.x è improponibile e tempo proprio non ne ho... mi accontenterei di un restyling, chissà se esiste un template moderno e responsive che derivi comunque dal beez20 così da non impormi di ricollocare ogni modulo e ristudiare da zero gli override...


Il plugin "giuridico" di cui parlavo è questo: http://bit.ly/Pb3HSi
Ho abbreviato i link con bitly per comodità


Attendo consigli e suggerimenti!
Claudio.

3
Sviluppo / Re:XMAP, robots.txt e contenuti duplicati....
« il: 10 Feb 2013, 16:00:19 »
Speravo in qualche suggerimento....
comunque, cercando sul web, ho trovato una funzione che poteva fare al caso mio.
Non è una soluzione elegante perché viene invocata ogni volta che c'è da scrivere un url nella sitemap xml (ed ogni volta carica robots.txt, fa il controllo ecc. ecc. con ovvio spreco di risorse, ma joomlahost è talmente veloce che quasi 400 url li processa istantaneamente!!).
In questo modo per escludere link specifici dalla sitemap generata da XMAP è sufficiente inserirli in robots.txt
Abbiate pazienza se ho scoperto l'acqua calda ma intanto sono contento di vedere google che mi da semaforo verde....


Ecco come ho modificato /components/com_xmap/views/xml/tmpl/default_class.php
(la funzione è l'ultima, robots_allowed, e viene invocata alla riga 96; adesso mi piacerebbe ottimizzarla facendo in modo che robots.txt venga aperto una sola volta, ad esempio, eliminando il controllo dell'user-agent che non serve ecc... sapessi come fare ovviamente ;))


Codice: [Seleziona]

<?php
/**
 * @version         $Id$
 * @copyright        Copyright (C) 2005 - 2009 Joomla! Vargas. All rights reserved.
 * @license        GNU General Public License version 2 or later; see LICENSE.txt
 * @author        Guillermo Vargas (guille@vargas.co.cr)
 */
// No direct access
defined('_JEXEC') or die;


require_once(
JPATH_COMPONENT '/displayer.php');


class 
XmapXmlDisplayer extends XmapDisplayer
{


    
/**
     *
     * @var array  Stores the list of links that have been already included in
     *             the sitemap to avoid duplicated items
     */
    
var $_links;


    
/**
     *
     * @var string
     */
    
var $view 'xml';


    protected 
$showTitle false;
    protected 
$showExcluded false;


    
/**
     *
     * @var int Indicates if this is a google news sitemap or not
     */
    
var $isNews 0;


    function 
__construct($config$sitemap)
    {
        
parent::__construct($config$sitemap);
        
$this->uids = array();


        
$this->defaultLanguage strtolower(JFactory::getLanguage()->getTag());
        if (
preg_match('/^([a-z]+)-.*/',$this->defaultLanguage,$matches) && !in_array($this->defaultLanguage, array(' zh-cn',' zh-tw')) ) {
            
$this->defaultLanguage $matches[1];
        }


        
$this->showTitle JRequest::getBool('filter_showtitle'0);
        
$this->showExcluded JRequest::getBool('filter_showexcluded'0);


        
$db JFactory::getDbo();
        
$this->nullDate $db->getNullDate();
    }


    
/**
     * Prints an XML node for the sitemap
     *
     * @param stdclass $node
     */
    
function printNode($node)
    {
        
$node->isExcluded false;
        if (
$this->isExcluded($node->id,$node->uid)) {
            if (!
$this->showExcluded || !$this->canEdit) {
                return 
false;
            }
            
$node->isExcluded true;
        }


        if (
$this->isNews && (!isset($node->newsItem) || !$node->newsItem)) {
            return 
true;
        }


        
// Get the item's URL
        
$link JRoute::_($node->linktrue, @$node->secure==0? -1$node->secure);


        if (!isset(
$node->browserNav))
            
$node->browserNav 0;


        if (
$node->browserNav != 3   // ignore "no link"
                
&& empty($this->_links[$link])) { // ignore links that have been added already
            
$this->count++;
            
$this->_links[$link] = 1;


            if (!isset(
$node->priority))
                
$node->priority "0.5";


            if (!isset(
$node->changefreq))
                
$node->changefreq 'daily';


            
// Get the chancefrequency and priority for this item
            
$changefreq $this->getProperty('changefreq'$node->changefreq$node->id'xml'$node->uid);
            
$priority $this->getProperty('priority'$node->priority$node->id'xml'$node->uid);
$link=str_replace('/forum/home/','/forum/',$link);


if (
robots_allowed($link,"*")) {
            echo 
'<url>' "\n";
            echo 
'<loc>'$link'</loc>' "\n";
            if (
$this->canEdit) {
                if (
$this->showTitle) {
                    echo 
'<title><![CDATA['.$node->name.']]></title>' "\n";
                }
                if (
$this->showExcluded) {
                    echo 
'<rowclass>',($node->isExcluded'excluded':''),'</rowclass>';
                }
                echo 
'<uid>'$node->uid'</uid>' "\n";
                echo 
'<itemid>'$node->id'</itemid>' "\n";
            }
            
$modified = (isset($node->modified) && $node->modified != FALSE && $node->modified != $this->nullDate && $node->modified != -1) ? $node->modified NULL;
            if (!
$modified && $this->isNews) {
                
$modified time();
            }
            if (
$modified && !is_numeric($modified)){
                
$date =  new JDate($modified);
                
$modified $date->toUnix();
            }
            if (
$modified) {
                
$modified gmdate('Y-m-d\TH:i:s\Z'$modified);
            }


            
// If this is not a news sitemap
            
if (!$this->isNews) {
                if (
$modified){
                    echo 
'<lastmod>'$modified'</lastmod>' "\n";
                }
                echo 
'<changefreq>'$changefreq'</changefreq>' "\n";
                echo 
'<priority>'$priority'</priority>' "\n";
            } else {
                if (isset(
$node->keywords)) {
                    
$keywords htmlspecialchars($node->keywords);
                } else {
                    
$keywords '';
                }


                if (!isset(
$node->language) || $node->language == '*') {
                    
$node->language $this->defaultLanguage;
                }


                echo 
"<news:news>\n";
                echo 
'<news:publication>'."\n";
                echo 
'  <news:name>'.(htmlspecialchars($this->sitemap->params->get('news_publication_name'))).'</news:name>'."\n";
                echo 
'  <news:language>'.$node->language.'</news:language>'."\n";
                echo 
'</news:publication>'."\n";
                echo 
'<news:publication_date>'$modified'</news:publication_date>' "\n";
                echo 
'<news:title><![CDATA['.$node->name.']]></news:title>' "\n";
                if (
$keywords) {
                    echo 
'<news:keywords>'$keywords'</news:keywords>' "\n";
                }
                echo 
"</news:news>\n";
            }
            echo 
'</url>'"\n";
            }
        } else {
            return empty(
$this->_links[$link]);
        }
        return 
true;
        
    }


    
/**
     *
     * @param string $property The property that is needed
     * @param string $value The default value if the property is not found
     * @param int $Itemid   The menu item id
     * @param string $view  (xml / html)
     * @param int $uid      Unique id of the element on the sitemap
     *                      (the id asigned by the extension)
     * @return string
     */
     
     
    
function getProperty($property$value$Itemid$view$uid)
    {
        if (isset(
$this->jview->sitemapItems[$view][$Itemid][$uid][$property])) {
            return 
$this->jview->sitemapItems[$view][$Itemid][$uid][$property];
        }
        return 
$value;
    }


    
/**
     * Called on every level change
     *
     * @param int $level
     * @return boolean
     */
    
function changeLevel($level)
    {
        return 
true;
    }


    
/**
     * Function called before displaying the menu
     *
     * @param stdclass $menu The menu node item
     * @return boolean
     */
    
function startMenu($menu)
    {
        return 
true;
    }


    
/**
     * Function called after displaying the menu
     *
     * @param stdclass $menu The menu node item
     * @return boolean
     */
    
function endMenu($menu)
    {
        return 
true;
    }
    
}


function 
robots_allowed($url$useragent=false)
  {
    
// parse url to retrieve host and path
    
$parsed parse_url($url);
    
$agents = array(preg_quote('*'));
    if(
$useragent$agents[] = preg_quote($useragent);
    
$agents implode('|'$agents);


    
// location of robots.txt file
    
$robotstxt = @file("http://www.studiodestasio.it/robots.txt");


    
// if there isn't a robots, then we're allowed in
    
if(empty($robotstxt)) return true;


    
$rules = array();
    
$ruleApplies false;
    foreach(
$robotstxt as $line) {
       
// skip blank lines
      
if(!$line trim($line)) continue;


      
// following rules only apply if User-agent matches $useragent or '*'
      
if(preg_match('/^\s*User-agent: (.*)/i'$line$match)) {
        
$ruleApplies preg_match("/($agents)/i"$match[1]);
      }
      if(
$ruleApplies && preg_match('/^\s*Disallow:(.*)/i'$line$regs)) {
        
// an empty rule implies full access - no further tests required
        
if(!$regs[1]) return true;
        
// add rules that apply to array for testing
        
$rules[] = preg_quote(trim($regs[1]), '/');
      }
    }


    foreach(
$rules as $rule) {
      
// check if page is disallowed to us
      
if(preg_match("/^$rule/"$parsed['path'])) return false;
    }


    
// page is not disallowed
    
return true;
  }

4
Sviluppo / XMAP, robots.txt e contenuti duplicati....
« il: 03 Feb 2013, 18:55:45 »

Salve a tutti,
da qualche tempo mi sto dedicando all'ottimizzazione del mio sito joomla (www.studiodestasio.it) per la rimozione dei contenuti duplicati cercando di impedire l'indicizzazione degli url non SEF.
Fra le altre cose ho rivisto il file robots.txt inserendo determinate pagine che NON voglio siano indicizzate.
Tutto ok ma gli strumenti webmaster di google mi segnalano che taluni indirizzi della sitemap generata da XMAP sono bloccati da robots.txt. E' solo un warning ma mi piacerebbe risolvere comunque questa anomalia…


In effetti basterebbe che XMAP, al momento di generare la pagina XML, escludesse gli url bloccati da robots.txt
Non conosco praticamente nulla di PHP ma capisco che la cosa sarebbe veramente molto semplice.


Il file che genera la mappa XML è /components/com_xmap/views/xml/tmpl/default_class.php
Immagino che sarebbe sufficiente:
1) aprire robots.txt
2) caricare linea per linea e se questa contiene "Disallow: " prelevare la parte destra e memorizzarla in un array
3) a questo punto prima di "scrivere" ogni url verificare che questo non contenga una delle stringhe memorizzate nell'array del punto 2


Ora, può anche darsi che riesca a farlo da solo ma senza conoscere PHP chissà quando ci potrei impiegare…
C'è qualche anima pia che in 5 minuti mi da qualche dritta?  ;)

5
Davvero nessuno è in grado di aiutarmi??  :'(

6
Salve a tutti, spero di essere nella sezione giusta del forum dove trovare qualcuno esperto di CSS che mi possa aiutare...
Sul mio forum (Kunena 1.7x ma ho provato anche su Kunena2.x con il nuovo template di default 2.0) quando con il mouse passo sui pulsanti kunena tipo "nuovo topic", "rispondi", "quota" ecc. questi spariscono.
So che ci dev'essere qualcosa nel templare joomla (bezz20) che da fastidio ma non sono proprio in grado di capire cosa... sono piuttosto digiuno di CSS e anche con le funzioni "ispeziona elemento" di firefox, safari e chrome confesso che mi perdo (roba ereditata a catena ecc. ecc. ecc. boh!).
Qualche idea? Vi do un link per capire di cosa parlo: http://www.studiodestasio.it/forum/forum-generale-di-diritto-civile.html
Grazie a chiunque potrà aiutarmi!  :P

7
Mi rispondo da solo ma chiedo conferma se la soluzione trovata (in modo molto empirico :P) è esatta:


nel modulo HTML ho inserito, prima del codice esistente:



<style type="text/css">
.moduletable_noHover a:hover
{
   background-color: #903;
   display: none;
 }
</style>


e nel campo suffisso classe CSS modulo delle "opzioni avanzate" _noHover


Per funzionare funziona!
Lascio così?

8
Interessa anche a me!
Ho tolto un plugin per gestire i "pulsanti" sociali sostituendolo con un banale modulo HTML personalizzato dove ho semplicemente inserito le icone dei social network che mi interessano con i relativi link. Quando però mi sposto sopra a un'icona con il mouse compare il fastidioso background blu orizzontale.
Non so niente di CSS, dove dovrei inserire il codice per togliere l'effetto hover?
Non è possibile inserire tutto nel modulo HTML? Possibile che non si possa fare semplicemente da JCE?

9
Buona domenica a tutti,
ormai diversi mesi fa ho installato j4age per le statistiche del sito e per avere un modulo front-end che mi mostrasse qualche dato (tipo i visitatori del giorno, settimana, mese ecc.). Anzi, diciamo pure che mi interessava soprattutto avere i contatori più che le dettagliatissime statistiche del plugin in questione.
Ora le tabelle del database sono diventate piuttosto "pese" e temo che ciò possa influire negativamente sulle prestazioni del sito. Tempo fa ho implementato google analythics cosicché j4age (almento per le mie esigenze) non avrebbe ragione di esistere. Per i contatori sto provando Vinora Visitors Counter.


Vi chiedo:


1. Quanto influisce un plugin tipo j4age sulle prestazioni? Se l'impatto fosse trascurabile lo lascerei...
2. j4age e Google Analytichs insieme hanno poco senso... Anche Google Analytichs rallenta il sito? Quanto?
3. Cosa ne pensate di Vinora Visitors Counter? Ce ne sono altri validi o anche migliori?

10
Joomla! 1.6/1.7/2.5 / Re:PhpSpeedy su joomla 2.5 (error)
« il: 06 Mag 2012, 10:26:47 »
Io mi trovo bene con Jfinalizer....

11
Giusto. Che potesse influire (anche pesantemente) sulle prestazioni del sito me lo sono immaginato... ma caspita è un coltellino svizzero! Ho "scoperto" questo plugin solo oggi e mi sono fatto prendere dall'entusiasmo!!!
Effettivamente ci si può fare veramente di tutto...

12
Ciao a tutti,
premetto che intervengo un po' di getto, scusatemi dovessi scrivere un'amenità....


Io per implementare la stessa funzione sono banalmente ricorso ad un plugin gratuito "rereplacer".
Non fa altro che sostituire parti di codice con altre prima di inviare tutto al browser.


Ho quindi semplicemente fatto sostituire il mio alias che già compariva come plain text in testa degli articoli:
da: "mio alias</dd>"
a: "link google plus?rel=author</dd>"


Poi ovviamente ho fatto il linkback da google+ alle pagine che mi interessano.
Il "rich snippets testing tool" funziona. Ancora non compare la faccia nelle ricerche ma ho fatto tutto 5 minuti fa.
Pagina di esempio qui.


Capisco sia meno elegante ma sicuramente è più semplice per chi magari non se la sente di mettere mano al core di joomla... e poi è facilmente reversibile.

13
Beh, un po' mi conforta, vorrà dire che prima o poi uscirà la soluzione. In ogni caso FJ non è niente male ed è molto più flessibile del modulo di default.

14
Ho provato un modulo gratuito, "FJ Related Plus", che sembra funzionare a dovere. Che dite, risolvo così? Ce ne sono anche di migliori?
Mi dispiace dover bypassare così i problemi però...

15
Già provato, nulla!  :(


16
Come molti, immagino, sto facendo i vari test per l'aggiornamento alla 2.5 (dalla 1.73).
Sarebbe tutto ok ma ho un problema con il modulo "articoli correlati" che non funziona più!
A qualcuno è già capitato? Cosa potrebbe essere?


Immagino potrei risolvere utilizzando analogo modulo di terzi ma quello standard di joomla mi andava benissimo...

17
Hai perfettamente ragione, infatti ho ammesso che è una soluzione certamente "poco ortodossa"... Nel mio caso comunque era proprio quello che cercavo. Il componente mi segnala per email gli errori (che quindi non passano inosservati e posso porvi rimedio) ma l'utente non ha più fastidiosi Error 500 in determinate condizioni (talvolta anche facendo il logout dal forum Kunena). Sono consapevole che la mia configurazione ha forse qualche problema (oppure certi interventi sul file .htaccess come il reindirizzamento con DocumentError non sono consentiti dal server possibile?), però in questo modo ho ottenuto il risultato  ::) .

Grazie mille per i consigli e l'assistenza!  ;D


18
Grazie mille per tutte le "dritte"!
Forse ho risolto con una soluzione, non so quanto ortodossa: ho installato un componente gratuito per il reindirizzamento degli errori 404.
L'ho installato e attivato (per funzionare occorre anche disabilitare il redirect proprietario di Joomla).
Beh, per ora ho fatto un semplice redirect sulla Home e il componente mi gestisce bene sia i 404 sia quelli che prima apparivano come 500 perchè un utente non registrato tentava l'accesso ad una risorsa per utenti registrati.
Ora personalizzerò un msg di errore del tipo "La pagina non esiste o non sei autorizzato ad accedervi" e dovrei essere a posto! Che ne pensi?

19
Purtroppo non riesco ad acccedere proprio al dominio sgaragnao.it (http://vademecum.sgaragnao.it/start/linux/) boh!.
Comunque mi sono messo alla ricerca di una soluzione, il problema è districarsi nel mare magnum di internet...
Volevo approcciare il problema da un punto di vista diverso, ovvero quella della personalizzazione delle pagine di errore tramite la modifica del file error.php nella cartella del template di riferimento.
Vado con i piedi di piombo perchè non ho alcuna conoscenza specifica della programmazione in PHP e quindi devo andare per tentativi.
Dal comportamento del mio server (e della mia installazione joomla) mi pare ormai certo che ci sia qualche problema per quanto riguarda la gestione degli errori (la pagina che ottengo ad esempio seguendo il link www.studiodestasio.it/kljhlkhjlkh perché ha quella formattazione? Tiscali ha una formattazione  diversa per i messaggi standard degli errori, compreso il 500, tipo quella seguendo il link www.studiodestasio.it/kjhkhk.htmlkk.


Ormai approfitto per un'altra domanda.
Attivando la riscrittura degli URL mi è sparito dagli indirizzi "index.php" il chè mi va anche bene. Peraltro ho notato che le pagine sono comunque accessibili anche con i vecchi indirizzi (che includevano nell'url "index.php"). I motori avevano già indirizzato con i vecchi indirizzi, avrò qualche problema per questo? Ho configurato una sitemap nel file robot.txt e negli strumenti per webmaster di google. Per ora sembra tutto ok... Da quello che ho capito è meglio usare l' .htaccess anche per motivi di sicurezza, giusto?

20
Grazie ancora per la risposta lampo!
Allora, ho fatto qualche ricerca e qualche prova.


1. Ho "attivato" .htaccess (fin'ora ne avevo fatto a meno lasciando solo attiva url sef nella configurazione globale ma non il rewrite url).


2. Ho modificato .htaccess disabilitando Options +FollowSymLinks altrimenti avevo sempre il 500


3. ho provato a inserire ErrorDocument 500 URL (indirizzando ad una pagina statica)


Purtroppo il redirect non mi funziona! Premetto che sono assolutamente ignorante sui server apache, files .htaccess ecc.
Ho verificato comunque che adesso (anche togliendo errordocument che tanto non funzionava) nessun errore viene più indirizzato alla corrispondente pagina errore del server ma ottengo sempre il 500. Anzi, qualche esempio:


il sito è www.studiodestasio.it
se punto ad una pagina inesistente, tipo www.studiodestasio.it/ksjdfhkjdhf.htm
ottengo l'errore 500


se punto una pagina inesistente ma con un suffisso che (ritengo) non viene processato dall'url rewrite ottengo la pagina di errore del server, es: www.studiodestasio.it/kjghdkfjgk.htmkk


Immagino che la chiave sia configurare in modo corretto il file .htaccess tenendo conto di quanto riportato nella sezione custom redirects: "redirects use the correct RewriteRule syntax and the [R=301,L] flags." Non ho idea di dove mettere le mani!


Il server è Tiscali, se può servire saperlo.
Quanto al problema iniziale a questo punto non ho idea ma se riuscissi a reindirizzare l'errore 500 ad una pagina statica o a limite alla home page sarei già soddisfatto!


Grazie per l'aiuto, adesso vado a nanna, ci ripenserò domani!!  ;D


Pagine: [1] 2


Web Design Bolzano Kreatif