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 - j3n4

Pagine: [1] 2 3 4
1
Vero,
molto più elegante come dici tu, ma ormai l'ho postato così... lo terrò presente per la prossima release.
Cioè... se qualcuno lo usa, allora aggiungo il file della lingua, aggiungo il tuo suggerimento e magari faccio anche un sistema con javascript per animare un pò la finestra... in questo momento è molto spartana.


Per rispondere invece alla tua domanda, non si tratta di ping back, ma di ping update.
Si tratta infatti di mandare i ping agli spider addetti al network discovery, specializzati per i Blog.
Google ne ha veramente tanti, ad esempio blogsearch.google.com.
In sostanza tu gli stai dicendo di venire a vedere l'articolo pubblicato o l'articolo modificato e tempo 24 ore lo spider passa a scandagliare.
E' un servizio di indicizzazione diverso  dallo spider del motore classico oppure lo scan tramite sitemap, ma comunque aiuta parecchio ad incrementare il traffico verso il sito e ne migliora anche l'indicizzazione.
 
Io lo sto testando con successo da qualche mese ed effettivamente utilizzandolo insieme ad altri accorgimenti, come ad esempio l'uso di canonical link, il seo etc etc... le visite si sono triplicate.

2
Come da allegato... detto fatto! :)

[allegato eliminato automaticamente dopo un anno]

3
Ho finito.
Credo che lo posterò anche sul JED, poichè lo ritengo abbastanza maturo per poterlo divulgare... sebbene gli manca ancora la gestione della lingua... ma credo che non la aggiungerò mai poichè fa giusto due cose.
Cosa ho fatto?
Ho spostato la mia progettazione verso il gruppo editors-xtd e ho creato un bottone che estende l'editor.
Ho aggiunto alcuni controlli per evitare che:
  • venga utilizzato da backend
  • vengano pingati articoli riservati (ACL-REGISTERED)
  • ping ad articoli sospesi o non acora pubblicati.
Semplicemente se l'articolo ricade in una delle voci sopra citate il bottone non comparirà.

Inoltre ho protetto la pagina del motore con questo codice:

Codice: [Seleziona]
define( '_JEXEC', 1 );
define( 'DS', DIRECTORY_SEPARATOR );
define( 'JPATH_BASE', realpath( '..'.DS.'..'.DS.'..'.DS ) );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$user =& JFactory::getUser();
if($user->username == "") die ("Login please.");
JSession::checkToken( 'get' ) or die( 'Invalid Token' );

Ci ho messo davvero molto più tempo del previsto ma sono molto soddisfatto.
Grazie a mmleoni per i suoi preziosi consigli.

Alla prossima follia ;)

4
Se non ricordo male ho letto che c'è una scala gerarchica di esecuzione dell'override.
  • Root/Override
  • Plugin/Override
  • Template/html/Override
Nell'ordine che ti ho riportato il template è l'ultimo che esegue l'override, se non viene eseguito prima da qualcosa che si trova sopra di lui.


A questo punto si dipanano due strade, la facile è creare un bottone che lancia il ping senza nemmeno entrare in editing. La difficile è continuare su questa strada... ma anche se mi stuzzica parecchio mi vedo costretto a darti ragione. Correrei il rischio di sviluppare qualcosa di sgradevole ai webmaster e purtroppo poi non si può fare l'override di un plugin che già di suo fa un override... verrebbe fuori una porcata pazzesca.
 
Ok, mi hai convinto, torno all'idea principale e cambio il percorso verso il bottone.... però devi ammettere che la sfida del plugin che fa l'override era allettante eh? ;)


Grazie per i tuoi consigli, ti farò sapere come è andata.
 

5
Modificare un template per fare un override è una cosa alquanto banale, quindi concordo con quello che hai proposto tu.
Tuttavia fornire una estensione per joomla che fornisca una soluzione plug&play la reputo, oltre che una cosa molto bella e raffinata, qualcosa che ci lascia sfruttare a pieno questo framework.
Sostanzialmente punto a soddisfare la mia necessità ad esplorare le varie possibilità che offre joomla e questo è prima di tutto una curiosità personale, da cui ne nasce poi qualche prodotto interessante.
Questo è fisiologico.

Il mio approccio è quello di partire da una idea abbozzata, raffinarla, estenderla e infine portarla in astrazione.

La risposta dunque l'ho trovata:
Qui parlano del problema e c'è codice di riferimento fornito da Amy Stephen:
https://groups.google.com/forum/#!topic/joomla-dev-general/OREGHw6YpzQ

Il codice in questione l'ho installato e da backend mi fornisce l'override:
https://github.com/AmyStephen/Layout-Override-Plugin

Trattasi di modificarlo per farlo funzionare da frontend e incorporare il mio codice, non credo a questo punto che ci siano grandi incognite, ci proverò in questi giorni.

Se ci riesco, il risultato sarà un plugin che si installa e funziona normalmente senza dover modificare nulla.


6
Con la documentazione che ha joomla sei costretto a smanettare per forza di cose... gli esempi che trovi sul sito sono spesso sbagliati o deprecati.
Direi che è frustrante.

Tornando in TOPIC, a quanto ho capito si può fare un override del template anche da dentro un plugin. Sto gironzolando, ma di esempi concretri per adesso non ne ho trovati.
Continuo a curiosare in giro.

7
Stavo pensando la stessa cosa... mi sa che è un vicolo cieco... credo che dovrò cambiare strada e fare un mero bottone che da frontend lancia il ping e buonanotte.

Anche perchè l'idea di base è scegliere quando usarlo e quando no, ma soprattutto, usarlo da frontend, altrimenti non riuscirebbe mai a prendere il canonical link che esponiamo... uffff... tempo sprecato.

Grazie comunque dell'aiuto.

 

8
Ragazzi vi chiedo un ultimo aiutino.

Ho avuto modo di notare che questo sistema funziona solo dal backend, mentre nel frontend non funziona.

Qualcuno sa come posso risolvere?
In pratica mi manca solo questo e ho finito.


9
Ho risolto.

Ho tolto la dicitura:
Codice: [Seleziona]
jimport('joomla.form.form');

Ma sostanzialmente l'errore risedeva qui:
Codice: [Seleziona]
<fields name="pingservices">
Bastava rinominare il nome dei fields in:
Codice: [Seleziona]
<fields name="attribs">

Mah... vabè...

10
Altro indizio,
aggiungendo questa importazione l'errore scompare:
Codice: [Seleziona]
jimport('joomla.form.form');
Sfortunatamente però il form non viene mostrato... credo di essermi avvicinato parecchio alla soluzione ma ho esaurito le idee.

Heeelp! :S

11
Sono un attimo spaesato.
Alla fine dell'articolo che ho linkato leggo che c'è una patch da installare.
La mia versione di joomla è molto più recente, contavo sul fatto che avessero risolto questo discorso e non fosse necessaria.
In pratica ecco cosa ho fatto, giusto per vedere se funzionava:

Ho creato una directory e l'ho chiamata pingservices all'interno del plugin.
All'interno ho creato un file che si chiama pingservices.xml, ecco il codice:
Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
   <form>
      <fields name="pingservices">
         <fieldset name="pingservices" label="Ping Services">
            <field
                name="ping_or_not"
                type="checkbox"
                label="Ping this article"
                description="Set ping services on for ping this article to spieders."
                class="inputbox"
                value="1"
                default="0"
            />
         </fieldset>
      </fields>
   </form>

Poi ho modificato l'installer in questo aggiungendo questa dicitura:

Codice: [Seleziona]
<folder>pingservices</folder>
Ho controllato che il file, dopo l'installazione, fosse presente e infatti c'è.
 
Infine ho aggiunto questa funzione al codice del plugin:
Codice: [Seleziona]
    function onContentPrepareForm($form, $data){
        if (!($form instanceof JForm))
        {
            $this->_subject->setError('JERROR_NOT_A_FORM');
            return false;
        }
        // Add the extra fields to the form.
        // need a seperate directory for the installer not to consider the XML a package when "discovering"
        JForm::addFormPath(dirname(__FILE__) . '/pingservices');
        $form->loadFile('pingservices', false);
        return true;   
    }

Sia come upgrade che come installazione ex-novo il plugin non da alcun problema, tuttavia se entro nella schermata di configurazione plugin o nell'editor di articoli ecco l'errore che ottengo:

XML: XML declaration allowed only at the start of the document

Così a naso mi viene da pensare che dovrei usare la patch proposta sul sito, ma oggettivamente non mi piace come idea andare a modificare il core di joomla per fare questa cosa.

Vi viene qualche idea? Suggerimenti?
Grazie anticipatamente.



12
Grazie Marco.
Mi hai messo sulla strada buona, googlando in giro ho trovato questo:
http://docs.joomla.org/Adding_custom_fields_to_the_article_component
Che ne dici? Secondo me si può fare.

Vi faccio sapere come è andata.


13
ok,
cerco di spiegarmi meglio.
In pratica ho scritto un plugin che fa un ping ai server quando viene inserito un nuovo articolo e questo diciamo che serve a migliorare l'indicizzazione in generale.
Il problema però è che questo plugin tende a pingare anche quando viene fatta una modifica.
Premesso che ciò possa tornare utile per notificare le modifiche, diventa deletereo se lo si esegue troppe volte e questo può succedere se interveniamo a fare due o tre modifiche dopo aver pubblicato un articolo (ad esempio se notiamo qualche errore di ortografia).
Allora l'idea è di far comparire una checkbox quando entriamo ad editare un articolo.
Questa checkbox non è mai spuntata, in modo che il pinger non esegue i ping quando salviamo l'articolo.
Mettendo la spunta alla checkbox invece lo forzeremo a fare il suo dovere.
In parole povere vorrei lasciare all'editor/publisher la facoltà di utilizzare o meno questo plugin.


14
Salve a tutti,
in questo ultimo periodo ho intenzione di migliorare il plugin che ho proposto tempo fa anche su questo forum.
Quindi sto cercando di capire come forzare il plugin a far comparire una checkbox quando voglio editare un articolo.
Sono indeciso se usare:
Codice: [Seleziona]
function onDisplay($name)
oppure:
Codice: [Seleziona]
public function onContentPrepare($context, &$article, &$params, $page = 0)

Mi sarebbe davvero di grandissimo aiuto un piccolo esempio, visto che ho davvero poco tempo da dedicare al mio progetto ma vorrei al tempo stesso proporlo il più completo possibile.

Grazie in anticipo a chi vorrà aiutarmi.


15
@Carlo: L'admin tool da solo non fa miracoli, c'è da leggere il manuale e farlo lavorare secondo quello che viene consigliato o che reputi giusto tu.
Onestamente te l'ho solo installato insieme alle altre estensioni che reputo un MUST su ogni sito, se ti va ci mettiamo le mani insieme domani sera.
Non credo che hai subito attacchi, il tuo sito è tutto aggiornato e senza estensioni strane... penso che forse li hai cambiati tu inavvertitamente.
Comunque prossimamente mettiamo anche un IDS così c'è proprio tutto.

16
@tomtomeight: Credo che Carlo si riferisse ad un altro problema, perchè parla di un template, il problema a cui hai attinto tu riguardava una semplice pagina HTML che per qualche strano motivo non visualizzava il file, alla fine dopo vari consigli che abbiamo tentato di dargli ha comunque risolto da solo. Ma in quel caso ci ha comunque rigraziato perchè grazie ai nostri consigli ha potuto eliminare le varie possibilità che forse stava trascurando.

@Carlo: Quando chiedi qualcosa su un forum non è detto che ottieni sempre la risposta che speri. Purtroppo funziona così in praticamente tutti i forum. Alla fine della fiera, ogni lavoro che esegui è sempre farina del tuo sacco, perchè se così non fosse vorrebbe dire che qualcuno ti ha passato la pappa pronta e... non credo che funzioni così da nessuna parte.

17
@Carlo: Per come la vedo io, se utilizzi un prodotto standard, i tipi di attacchi sono giustamente "standard", ossia sono attacchi che se vanno bene per il tuo sito, potrebbero andare bene per molti altri simili al tuo.
Non è che joomla è stato preso di mira, semplicemente, essendo un prodotto molto diffuso vi è una certa convenienza a scrivere dei bot che gironzolando sulla rete provano attacchi a caso su tutti i siti che incontrano. Ma questo tipo di attacchi li subiscono tutti i cms fatti in php.
Tant'è vero che wordpress e prestashop passano gli stessi guai.
Avendo chiarito con MWC l'importanza di affiancare un IDS ai siti fatti in php, resta valido quanto detto al primo post di questo thread, quindi per stare abbastanza sicuri devi: Fare gli aggiornamenti, backup, affiancare un IDS e (questo lo aggiungo io), utilizzare anche "admin tools", in modo da far sparire ai bot le cose che solitamente sono fatte alla stessa maniera.


18
Sviluppo / Re:Joomla e Mobile
« il: 08 Ott 2013, 18:08:49 »
Elegante non saprei, ma i news feed in teoria li hanno inventati proprio per quello.
Per questo ti ho detto che il tuo sistema è ruspante.

19
Sviluppo / Re:Joomla e Mobile
« il: 08 Ott 2013, 17:37:30 »
Un metodo un pò ruspante, ma se ti funziona, tanto meglio!  ;D

20
Sviluppo / Re:Joomla e Mobile
« il: 08 Ott 2013, 16:15:45 »
La butto là... prova ad usare un feed rss e un feed reader da android... ci sono anche i sorgenti in giro... forse ho capito male, ma credo che a te serva solo questo.

Ciao

Pagine: [1] 2 3 4


Web Design Bolzano Kreatif