Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu]Ligne de commande Jelix 1.4 ne fonctionne plus correctement ?

Posted by dantahoua on 10/27/2012 06:38

Bonjour!

C'est moi où les cripts en ligne de commande ne fonctionnent plus avec 1.4.

Je viens de passer une application en 1.4 et mon script appelé par un cron ne fonctionne plus!!! Il fonctionnait super avec Jelix 1.3... Le reste du site (cms et client) fonctionne super.

Voici les erreurs que j'ai:

Sur la ligne de commande:

Fatal error: Call to a member function isAllowedResponse() on a non-object in /Volumes/Dev/www/svn/Jelix/app_ejCryo_gmo/dev/trunk/lib/jelix/plugins/coord/auth/auth.coord.php on line 111

Dans les logs:

2012-10-27 00:31:14	127.0.0.1	notice	2012-10-27 00:31:14	sending.php
	[8]	Trying to get property of non-object	/Volumes/Dev/www/svn/Jelix/app_ejCryo_gmo/dev/trunk/lib/jelix/core/jSession.class.php	32

2012-10-27 00:31:14	127.0.0.1	notice	2012-10-27 00:31:14	sending.php
	[8]	Trying to get property of non-object	/Volumes/Dev/www/svn/Jelix/app_ejCryo_gmo/dev/trunk/lib/jelix/core/selector/jSelectorAct.class.php	61

2012-10-27 00:31:14	127.0.0.1	notice	2012-10-27 00:31:14	sending.php
	[8]	Trying to get property of non-object	/Volumes/Dev/www/svn/Jelix/app_ejCryo_gmo/dev/trunk/lib/jelix/core/selector/jSelectorAct.class.php	61

2012-10-27 00:31:14	127.0.0.1	notice	2012-10-27 00:31:14	sending.php
	[8]	Trying to get property of non-object	/Volumes/Dev/www/svn/Jelix/app_ejCryo_gmo/dev/trunk/lib/jelix/plugins/coord/auth/auth.coord.php	111

Si je désactive "auth" dans le fichier de config, je n'ai plus de fatale error en ligne de commande mais le script ne fonctionne pas plus et j'obtient les même notices dans le log... Bizzarement il me crée aussi un nouveau fichier de log "errors.log" (avec un s...) qui contient ceci:

2012-10-27 00:33:38	127.0.0.1	strict	2012-10-27 00:33:38	sending.php
	[2048]	Creating default object from empty value	/Volumes/Dev/www/svn/Jelix/app_ejCryo_gmo/dev/trunk/lib/jelix/core/jRequest.class.php	201

Le contenu de mon fichier dans "scripts", "sending.php":

require_once (dirname(__FILE__).'/../application.init.php');

checkAppOpened();

require_once (JELIX_LIB_CORE_PATH.'jCmdlineCoordinator.class.php');

require_once (JELIX_LIB_CORE_PATH.'request/jCmdLineRequest.class.php');

$config_file = 'cmdline/sending.ini.php';

$jelix = new jCmdlineCoordinator($config_file);
$jelix->process(new jCmdLineRequest());

Et mon controlleur si ça peut vou aider:

class defaultCtrl extends jControllerCmdLine {

    protected $allowed_options = array(
            'index' => array('-option_name' => false));

    protected $allowed_parameters = array(
            'index' => array());
   
    function index() {
        $rep = $this->getResponse(); // cmdline response by default
        $sendingFactory = jDao::get('gst_sending','gmoclient');

        $conditions = jDao::createConditions();

        $date = new DateTime('now');
        $now = $date->format('Y-m-d H:i:s');

        $conditions->addCondition('sending_datetime','<=',$now);
        $conditions->addCondition('is_finished','=',0);
		$conditions->addCondition('no_auto_sending','=',0);
        $resultset = $sendingFactory->findBy($conditions);

        //Path des fichiers dans le fichier ini
        $monfichier = jApp::configPath('upload.ini.php');
        $ini = new jIniFileModifier ($monfichier);
        $path = $ini->getValue('uploadProtectedPath');
        $pathGmoClient = $ini->getValue('uploadRelativePathGmoClient');//Déjà inclus dans la bd

        foreach($resultset as $result){
            //Fichiers liés
            $fichiertemp = '';
            $sql = "Select * FROM gst_file, gst_sending_file, gst_sending WHERE gst_file.id = gst_sending_file.fk_file_id AND gst_sending_file.fk_sending_id = $result->id;";
            $cx = jDb::getConnection('gmoclient');
            $arFile = $cx->query($sql);

            //Création du mail
            $mail = new jMailer();
            $mail->isHTML(true);
            $mail->SetFrom('test@test.com','Global MeteOcean');
            $mail->Subject = $result->sending_label;
            $mail->Body = '<br/>'.$result->html_content;

            //$mail->Body .= "Fichiers liés: ".$fichiertemp;

            foreach($arFile as $file){
                //$fichiertemp .= $path.$file->path_file."<br/>";
                $mail->AddAttachment($path.$file->path_file);
            }

            //$mail->AddAddress('vmorel@eticweb.ca');

            $armailto = explode(',',$result->mail_to);
            foreach($armailto as $mailto){
                $mail->AddCC($mailto);
            }

            $mail->Send();

            //Mettre l'envoi à terminé
            $result->is_finished = 1;
            //Log
            $result->log = "Envoyé automatiquement le: ".$now;
            $sendingFactory->update($result);
        }

        return $rep;
    }
}

Le fichier sending.ini.php:

;<?php die(''); ?>
;for security reasons , don't remove or modify the first line
startModule=jelix
startAction="default:index"
[responses]
[modules]
gmosending.access=2
jauth.access=2
jacl2db.access=2
jauthdb.access=2
[coordplugins]
auth="cmdline/auth.coord.ini.php"

J'appel avec php sending.php gmosending~default:index La seule différence entre "Ça marche" et "ça marche pô" c'est le passage à Jelix 1.4...

Une idée?

  [Opened] Ligne de commande Jelix 1.4 ne fonctionne plus correctement ?

Reply #1 Posted by laurentj on 10/29/2012 12:15

Bonjour,

tu as oublié de migré ton point d'entrée sending.php... lire la doc de migration.

  [Opened] Ligne de commande Jelix 1.4 ne fonctionne plus correctement ?

Reply #2 Posted by dantahoua on 10/29/2012 14:27

Oups oui j'ai comparé avec un nouveau point d'entré créé et effectivement le code est différent... J'avais lu la doc mais j'ai oublié ce point d'entré...

 
Page
  1. [Résolu]Ligne de commande Jelix 1.4 ne fonctionne plus correctement ?