problema script per visualizzare report tradedoubler

  • Creatore Discussione Creatore Discussione darz91
  • Data di inizio Data di inizio

darz91

Nuovo Utente
22 Nov 2012
3
0
0
Salve, ho creato uno script che mi permette di estrarre i dati dal report tradedoubler per approvare le offerte fatte sul mio sito di cashback
dopo il passaggio all'ora legale il report invece di apparire nel formato giorno/mese/anno mi viene visualizzato mese/giorno/anno
di conseguenza dove controllare migliaia di offerte manualmente O.o
Vi posto il codice nella speranza che qualcuno riesca ad aiutarmi

PHP:
<?php

class TradedoublerJob extends Job
{
    public function prepare()
    {
        $mapper = new SimpleLeadMapper(2, 1, 1, 0);

        foreach ($this->accounts as $account)
        {
            try
            {
                $auth['j_username'] = $account->getUsername();
                $auth['j_password'] = $account->getPassword();

                $report = new Report($account);

                Browser::go('http://login.tradedoubler.com/pan/login', http_build_query($auth, '', '&'));

                $end = new DateTime();
                $start = clone $end;
                DateExtra::sub($start, DateExtra::DAY * $this->cron->getOptions()->days);

                $form['reportName'] = 'aAffiliateEventBreakdownReport';
                $form['showAdvanced'] = true;
                $form['showFavorite'] = false;
                $form['minRelativeIntervalStartTime'] = 0;
                $form['maxIntervalSize'] = 0;
                $form['reportTitleTextKey'] = 'REPORT3_SERVICE_REPORTS_AAFFILIATEEVENTBREAKDOWNREPORT_TITLE';
                $form['setColumns'] = true;
                $form['pending_status'] = 1;
                $form['sortBy'] = 'timeOfEvent';
                $form['breakdownOption'] = 2;
                $form['startDate'] = $start->format('d/m/Y');
                $form['endDate'] = $end->format('d/m/Y');
                $form['event_id'] = 0;
                $form['filterOnTimeHrsInterval'] = false;
                $form['dateSelectionType'] = 1;
                $form['columns'] = 'timeOfEvent';
                $form['format'] = 'CSV';
                $form['separator'] = ';';
                $form['dateType'] = 1;

                $text = Browser::go('http://login.tradedoubler.com/pan/aReport3Internal.action', $form);
                $report->setText($text);

                $data = CsvParser::parse($report->getText(), ';');
                array_walk_recursive($data, array($this, 'adjustData'));

                $set = $mapper->mapSet($data);
                $account->addSet($set);
            }
            catch (Exception $e)
            {
            }
        }
    }

    public function adjustData(&$item, $key)
    {
        if (false !== strpos($item, 'CEST'))
        {
            $parts = explode(' ', $item);
            $date = explode('/', $parts[0]);
            $time = explode('.', $parts[1]);
            $item = sprintf('%04d-%02d-%02d %02d:%02d:%02d', $date[2] + 2000, $date[1], $date[0], $time[0], $time[1], $time[2]);
        }
    }
}
 
Gentile Affiliato,

ti informiamo che esistono API che permettono di richiamare i report nei fomati XML, CSV, EXCEL, HTML senza doversi loggare.
Per maggiori informazioni e richiederne l'utilizzo consigliamo di scrivere a publisher.it@tradedoubler.com

Grazie
Francesco
 

Discussioni simili