Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Modifica a codice SOBI2 Expiration Plugin

    Salve a tutti. E' la prima volta che scrivo qui e mi scuso se sto scrivendo nella sezione sbagliata.

    Avrei bisogno di fare una piccola modifica ad un pezzo di codice di un plugin per Joomla ma non capendoci molto di PHP non so come procedere.

    In un sito che contiene e controlla lo scadenziario di alcuni servizi che offro, è inserito un plugin che si occupa di verificare la data di scadenza di tali servizi e, nel caso li veda in scadenza, invia una mail all'utente proprietario di tale servizio.

    Avrei due esigenze:
    La prima è che questo plugin non dovrebbe inviare una sola mail bensì una al giorno fino al giorno della scadenza effettiva.

    La seconda (ma meno importante) è la possibilità di scegliere l'ora in cui inviare questa mail.

    Il pezzo di codice relativo a questa funzione è:

    Codice PHP:
       /* get the entries where the emails are already send */        $db->setQuery"SELECT itemid FROM #__sobi2_fields_data WHERE fieldid IS NULL" );         $checked $db->loadResultArray();         /* and exlude it  */        if( is_array$checked ) && !empty( $checked ) ) {             $checked implode','$checked );             $checked " AND sobi.itemid NOT IN ( {$checked}) ";         }         else {             $checked null;         } 
    Qualcuno può aiutarmi a capire cosa posso aggiungere/modificare?
    Grazie a tutti.

    Roberto

  2. #2
    Nessuno? Davvero?
    Sarebbe importante in quanto, adesso, quello script invia una mail a me (come amministratore) e al titolare del servizio, x giorni prima della scadenza (x lo decido io dalle impostazioni del plugin ed ora è impostato a 20 giorni) e poi mi ritrovo ad inoltrare a mano la stessa mail tutti i giorni, fino alla scadenza.

    Mi toglierebbe veramente un grande carico di lavoro, se potessi fare in modo che il plugin controllasse le scadenze ogni giorno alla stessa ora (magari alle 9.00 come le invio io a mano!) ed inviasse una mail a tutti quelli in scadenza, anche se già inviata il giorno prima, fino al giorno della scadenza effettiva.

    Grazie per l'aiuto.
    Roberto

  3. #3
    chiedi a chi ha fatto il plugin... o magari chiedi se qualcuno è disposto a pagamento a fare la modifica. Guardando al pezzo di codice che hai postato, purtroppo formattato male, direi che quel punto non c'entri molto con quello che chiedi
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Hai ragione sulla formattazione, scusami.

    codice:
    /* get the entries where the emails are already send */
    $db->setQuery( "SELECT itemid FROM #__sobi2_fields_data WHERE fieldid IS NULL" );
    $checked = $db->loadResultArray();
    /* and exlude it */
    if( is_array( $checked ) && !empty( $checked ) ) {
    $checked = implode( ',', $checked );
    $checked = " AND sobi.itemid NOT IN ( {$checked}) ";
    }
    else {
    $checked = null;
    } 
    In pratica, la prima istruzione va nel Db a controllare quali record sono già stati processati (/* get the entries where the emails are already send */), mentre la seconda li esclude ( /* and exlude it */). Quello di cui ho bisogno è che non vengano esclusi, ma che venga ripetuto l'invio.

    Ho provato a chiedere a chi ha creato il plugin ma non mi hanno neppure risposto. Allora ho cercato di arrangiarmi, ma sono un neofita imbranato del PHP e mi trovo molto in difficoltà a sperimentare alla cieca.

    Spero che possiate aiutarmi.


  5. #5
    quel codice prende e dice alla query che userà quel valore checked di escludere dal check gli items con id in ( elenco degli id già avvisati )... poi come continua sto codice? o meglio, vedi dove viene usato quel valore $checked e toglilo, oppure prova a mettere dopo quell'if/ele $checked = null... anzi meglio, commenta tutto questo pezzo che hai postato e scrivi dopo la parte commentata $checked = null e vedi un pò che succede...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  6. #6
    Ti ringrazio molto per l'aiuto.
    A "naso", lo avevo fatto qualche giorno fa. Il risultato è stato che ha iniziato a mandarmi una montagna di mail (tipo un centinaio).

    In pratica, questo script si attiva alla prima visita al sito dopo la mezzanotte. Commentando tutto quel pezzo, non ho capito perchè mi ha mandato tutte quelle mail, dal momento che è prevista anche una opzione che permette di specificare che la verifica deve avvenire una volta al giorno.

    Però non avevo messo il "$checked = null...". Proverò quanto prima e ti farò sapere.

    Grazie.
    Roberto

    PS. Il forum non mi permetteva di copiare l'intero script, così lo allego in un file di testo.
    File allegati File allegati
    Ultima modifica di Reyking74; 19-11-2013 a 21:51 Motivo: Inserimento allegato

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.