Guten Tag alle zusammen,
da mir das letzte mal sehr gut geholfen wurde, hoffe ich auch diesmal auf eine schnelle Hilfe, wobei ich vermute, dass ich wieder mal den Wald vor lauter Bäumen nicht mehr sehe.
Ich versuche gerade eine Methode zu schreiben, die mir die Shopversion liefert und gleichzeitig prüft, ob es überhaupt ein OXIDshop ist
Quellcode:
require ("includes/functions.php");
function getShopBasePath()
{
return realpath(dirname(__FILE__).'/../..').'/';
}
class checkShop extends functions
{
private $_shop;
private $_shopVersion;
function checkOxid()
{
if (file_exists("../core/oxfunctions.php"))
{
require_once (parent::getBasePath()."core/oxfunctions.php");
$GLOBALS['myConfig'] = oxConfig::getInstance();
$this->_shop = "OXID eshop";
$this->_shopVersion = oxConfig::getVersion();
echo $this->_shop." ".$this->_shopVersion;
return TRUE;
}
else
{
return FALSE;
}
}
}
Wenn ich das Script aufrufe, dann kommt folgende Fehlermeldung:
Fatal error:
Call to undefined method checkShop::getShopId() in /.../oxid/core/oxconfig.php on line 1771
Weiß jmd. woher der Fehler rührt? Wäre echt super wenn mir da jmd. helfen könnte.
Danke und Gruß
[QUOTE=Amun-Re;56970]
Quellcode:
require (“includes/functions.php”);
function getShopBasePath()
{
return realpath(dirname(FILE).’/…/…’).’/’;
}
class checkShop extends functions
{
private $_shop;
private $_shopVersion;
function checkOxid()
{
if (file_exists("../core/oxfunctions.php"))
{
require_once (parent::getBasePath()."core/oxfunctions.php");
$GLOBALS['myConfig'] = oxConfig::getInstance();
$this->_shop = "OXID eshop";
$this->_shopVersion = oxConfig::getVersion();
echo $this->_shop." ".$this->_shopVersion;
return TRUE;
}
else
{
return FALSE;
}
}
}
Wenn ich das Script aufrufe, dann kommt folgende Fehlermeldung:
Fatal error:
Call to undefined method checkShop::getShopId() in /…/oxid/core/oxconfig.php on line 1771
[/QUOTE]
Hallo Amun-Re,
die Fehlermeldung will dir,ich sag jetzt einfach mal du :-), sagen das in Zeile 1771 der oxconfig.php die Funktion “getShopId()” aus der Klasse “checkshop” aufgerufen wird und diese Funktion dort “undefined” also nicht definiert wurde. Wenn der Quelltext den du gepostet hast alles ist was in der Klasse checkshop steht, dann kann ich die Meldung verstehen denn dort gibt es keine Funktion “getShopId()”…
Freundliche Grüße
Jhonny
Hallo Jhonny2010,
mir war schon klar, dass er mekkert, weil er in der Klasse checkShop die Methode vermisst, bzw. dass diese fehlt.
Ich habe nur nicht verstanden warum diese fehlt, da die aufgerufene Methode in der Klasse oxConfig ist.
Aber wie ich schon sagte, ich habe vor lauter Bäumen den Wald nicht mehr gesehen. Eine Stunde sich mit einem anderen Problem beschäftigen hilft und nun habe ich den Fehler gefunden.
Und zwar in der Klasse oxConfig ist die Methode getVersion folgender Maßen aufgebaut.
/**
* Returns shops version number (eg. '4.4.2')
*
* @return string
*/
public function getVersion()
{
$sVersion = $this->getActiveShop()->oxshops__oxversion->value;
return $sVersion;
}
D.h für mich, dass in meiner Methode folgende Zeile gefehlt hat:
global $myConfig;
=> So sieht dann der Endgültige Code aus:
require ("includes/functions.php");
function getShopBasePath()
{
return realpath(dirname(__FILE__).'/../..').'/';
}
class checkShop extends functions
{
private $_shop;
private $_shopVersion;
function checkOxid()
{
if (file_exists("../core/oxfunctions.php"))
{
require_once (parent::getBasePath()."core/oxfunctions.php");
$GLOBALS['myConfig'] = oxConfig::getInstance();
[B]global $myConfig;[/B]
$this->_shop = "OXID eshop";
$this->_shopVersion = oxConfig::getVersion();
echo $this->_shop." ".$this->_shopVersion;
return TRUE;
}
else
{
return FALSE;
}
}
}
Und schon läuft es ohne Probleme. 
Trotzdem Danke für deine schnelle Hilfe.
Gruß
verwende bitte Codeboxen beim posten von Code - das wird sonst ziemlich unübersichtlich
einfach den Code markieren und dann im Editor eine der 3 rechten Symbole -> # oder <> oder das php klicken
hab Deine Posts editiert
sry 
werde beim nächsten mal versuchen daran zu denken.
Gruß und schönen Abend