Jump to content

[Gelöst] Eigenes Modul $this->name Problem mit PHP 5.2


Recommended Posts

Hallo Miteinander

 

PS 1.4.9.0

PHP 5.2.17

 

Nach dem PHP downgrade von 5.3 auf 5.2 (wegen Prestashop Search issue) wird die Modules Seite im Adminbereich nur halb angezeigt. Also ab der Auflistung der Module geht nichts mehr. Dasselbe bei Modules->Positionen.

Wenn ich $this->name = 'basicslider'; in meinem basicslider.php File auskommentiere, wird die Liste wieder angezeigt, das Modul wird dann komischerweise als nicht installiert angezeigt. Obwohl er schon vorhin installiert wurde.

 

Wenn ich installieren klicke, wirds aber nicht installliert. Im Frontend funktioniert das Modul schon, es wird sowieso nur eine FTP Abfrage gemacht und HTML/JS ausgegeben.

 

Was ist falsch in diesem File?

 

<?php
if (!defined('_PS_VERSION_'))
exit;

class BasicSlider extends Module {
public function __construct()   {
 $this->name = 'basicslider';
 // $this->tab = 'Test';
 $this->version = 0.1;
 $this->author = 'Fabian Picone - Toweb GmbH';
 $this->need_instance = 0;
 parent::__construct();
 $this->displayName = $this->l('Basic slider');
 $this->description = $this->l('Show Basic slider to your header');
}
public function install() {
 if (parent::install() == false OR !$this->registerHook('top'))
  return false;
 return true;
}

public function uninstall() {
 if (!parent::uninstall())
  parent::uninstall();
}
public function hookTop($params) {

 $a_nlist_images = array('hey');
 $s_images_html  = '';

 require 'config.php';
 include 'classes/ftp.php';

 global $smarty;
 global $css_files;
 $css_files[__PS_BASE_URI__ . 'modules/basicslider/basicslider.css'] = 'all';

 $o_ftp	= new ftp();
 $o_basic_slider  = new BasicSlider();
 $a_nlist_images  = $o_ftp->getFtpNList(_FTP_DIR_IMAGES_HTTPDOCS);
 $o_ftp->disconnect();

 foreach($a_nlist_images as $i_key => $s_image_path) {
  $s_image_name = str_replace(_FTP_DIR_IMAGES_HTTPDOCS, '', $s_image_path);
  if(($s_image_name != '.' ) AND
  ($s_image_name != '..')) {
$s_images_html .= '<img src="' . _FTP_DIR_IMAGES_ . $s_image_name . '" alt="" />';
  }
 }

 $smarty->assign(array('s_images_html' => $s_images_html));

 return $this->display(__FILE__, 'basicslider.tpl');
}
}

 

Danke schon im Voraus für die Antworten!

 

Edit: Ich korrigiere, das ganze Frontend wird mit Fehlermeldung 500 angezeigt wenn $this->name = 'basicslider'; drin bleibt.

Edited by Publisher (see edit history)
Link to comment
Share on other sites

Hallo Publisher,

 

Ich sehe so atoc keinen Fehler.

Habe das spasseshalber jetzt mal in einen 1.4.1er einen 1.4.11 und einen 1.5.4.1er Shop eingebaut. Also schnell ein Verzeichnis in Modules erstellt eine php darein und in die den Inhalt aus dem Posting oben.

In allen Drei Shops wird das Modul angezeigt und lässt sich sogar installieren.

Im Front-Office ist dann allerdings Schluss, weil die in Zeile 31 geforderte Datei config.php natürlich in keinem Shop anwesend ist.

Das wiederum wird aber bei in der /config/config.inc.php eingeschalteten Fehlermeldungen auch berichtet. Ohne gibt es nur einen leeren Screen

 

In diesem Sinne

 

LG Klaus / Lockesoft

Link to comment
Share on other sites

Hallo Lockesoft

 

Vielen herzlichen Dank für deine Tests. Dies hat mich dazu geführt knall hart alles auszukommentieren dafür $this->name drin z belassen (was ich eigentlich von Anfang an schon hätte testen sollen). Dies hatte dann funktioniert. Habe dann alle andern code Zeilen schrittweise wieder dekommentiert, schlussendlich crashte es nur hier:

$this->displayName = $this->l('Basic slider');
$this->description = $this->l('Show Basic slider to your header');

 

Dann habe ich in meinen Language Files nachgeschaut obs so aussieht wie bei anderen Modulen, da habe ich entdeckt das ich dazumals alle Translations auskommentiert hatte. PHP Block kommentar was ich am schluss nicht schloss. Hab das korrigiert, nun sind die anfänglichen Probleme verschwnden!

:-)

 

Ursache war schlussendlich: Fehlerhafte Translation files, bei Verwendung von $this->l()

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...