Hoi zusammen, :smile:
bin dabei ein neues Modul einzubinden und habe beim einbinden im Adminbereich noch Probleme.
hier mal den Code für die links.myshop.php
// Modulname ggf. anpassen
$module_name="My_Shop";
if ($radminsuper == 1) {
adminmenu("admin.php?op=My_Shop", $module_name, "myshop.gif", MX_ADMINPANEL_ADDON);
}
und hier der Code für die case.myshop.php
switch ($op) {
case 'My_Shop':
mxSessionSetVar('panel', MX_ADMINPANEL_ADDON);
include('modules/My_Shop/admin/index.php');
}
Wenn ich jetzt einen Link z.B. auf die Datei admin_menu.php oder gutscheine.php setze komme ich immer nur auf die index.php im Adminordner.
Wie kann ich denn das am einfachsten anpassen?
Bist Du da schon weiter?
Ich hänge da auch gerade.
Am liebsten würde ich gerne, wie in der MyGallery, einen zusätzlichen Seperator ($do) per case hinzufügen, so das die Zielurl so ausschaut:
hxxp://meine-domain.xyz/admin?op=osC4PMXAdmin&do="Zieldatei".
Nur mekert das PMX bei der
switch ($do) {
Anweisung. Ich könnte natürlich auch die vorhandene "op" benutzen, wobei diese dann, bei der Funktion "Modules", sich mit dem Modul Modules beist. :gruebel:
die einfachste Lösung ist immer noch, in der moduleigenen Index.php eine Weiche mit den 2. Parameter einzubauen:
Bsp:
admin.php?op=modulename&act=wasauchimmer
in der modul-Admin.php dann
switch ($act) {
case "wasauchimmer":
include ('wasauchimmerinclude.php');
break;
...
}
Vorteil dabei ist auch, das ihr für die einzelnen Möglichkeiten nur die moduleadmin.php anpassen müsst...
Übrigens, als Anmerkung : der Name einer PHP-Datei hat in den Request's nix zu suchen !
Auch im Adminbereich nicht....
Danke für die Antwort,
Ja die Weichen Funktion habe ich ja gemeint.
Wenn ich diese Einbaue kommt es zu Fehlermeldungen (Werde ich gleich mal Reproduzieren):
Beispiel:
switch ($do) {
case "action_recorder":
include ('action_recorder.php');
break;
...
}
Zitat
Übrigens, als Anmerkung : der Name einer PHP-Datei hat in den Request's nix zu suchen !
Auch im Adminbereich nicht....
Ähhm Nicht? Nur funktioniert dann das Modul nicht. Kennst Du den oscommerce? Weist Du wie der gestrickt ist?
Bei einen 4 Seiten Modul ist es einfach, die Seiten als Funtion in einer Datei unterzu bringen,, aber nicht bei diesen ohne alle Funtionen und Classes zu zerlegen.
<Edit>
Dann schau Dir mal genauer die MyGallery an, dort werden auch PHP Seiten per Case und Switch genau benannt
</Edit>
so, wie du das einbinden willst, sollte es gehen, es sei denn, die Variable $do wird vom System anderweitig verwendet...
(Groß/Kleinschreibung evtl beachten...)
ansonsten haben wir uns, glaube ich, falsch verstanden.... :red:
ich meine eine URL, wie : ...admin.php?op=nam&act=zieldatei
bei der die namen der PHP-Dateien in der URL stehen (=REQUEST-Variablen)
und die dann per : include ($act.".php") (oder ähnlich) eingebunden werden....
Großer MIST und Sicherheitslücke !!
so wie es bei der My_gallery gelöst ist, ist es ja ok, da die Includes hardgecoded sind und damit sichergestellt ist, das die richtige Datei eingebunden wird.
Ok mein Problem hat sich erledigt.
Nun funtzt alles ohne fehlermeldungen:
In der case.dein_modules:
switch ($do) {
case 'Dein_Modules':
default:
include ('modules/Dein_Modules/admin/start.php');
break;
case "Seite2":
include ('modules/Dein_Modules/admin/Seite2.php');
break;
}
In der link.dein_modules:
if ($radminsuper==1) {
adminmenu("admin.php?op=Dein_Modules&do=index", _Dein_Modules, "Dein_Modules.gif", MX_ADMINPANEL_ADDON);
}
Im Adminbereich in die Startseite:
CloseTable();
include("footer.php");
switch ($do) {
case "Dein_Modules":
default:
break;
case "Seite2":
include (dirname(__FILE__) . 'Seite2.php');
break;
}
So klappt es bei mir ^^
wozu brauchst du die Weiche in der case.modul.php wenn du die Weiche in der modul-admin.php schon hast ?
Weil es anders im osc nicht realisierbar ist und ich sonst immer auf die index im Adminbereich des Shops zurückgeworfen werde.
<Edit>
Und die Admin Startdatei nicht unter root/admin/modules/ liegt.
</Edit>
nö... definitiv brauchst du nur eine Weiche
z.Bsp. bei ContestMX hab ich u.a. das so gelöst
link.contestmx.php
...
adminmenu("admin.php?op=contest", ("Contest MX2"), "../header/contest.png",MX_ADMINPANEL_CONTENT);
case.contestmx.php
...
switch($op) {
case "contest":
case "Contest":
include(CON_MODULE_PATH."admin/admin.php");
break;
}
die admin.php im Modulordner modules/Contest/admin/admin.php
...
switch ($act) {
case "info":
include ("modules/" . $module_name . "/admin/admin_info.php");
break;
case "install":
install();
break;
...
Funzt problemlos und mach die Pflege einfach, da nur eine Datei gepflegt werden muss, mit den $act's
im Bedarfsfalle in der Admin-Datei im Modulordner nur die Weiche einbauen... alles andere dann in den entsprechenden Includes.
Hallo
Ich würde raden den Admin bereich von PragmaMX und OSC zu trennen.
Ich finde allein aus Sicherheits gründen den Admin bereich für Shop extra zu halten.
oder was sagt ihr?
gruß
DeMa
Zitat von: TerraProject am 31 Juli 2011, 17:47:24
nö... definitiv brauchst du nur eine Weiche
z.Bsp. bei ContestMX hab ich u.a. das so gelöst
link.contestmx.php
...
adminmenu("admin.php?op=contest", ("Contest MX2"), "../header/contest.png",MX_ADMINPANEL_CONTENT);
case.contestmx.php
...
switch($op) {
case "contest":
case "Contest":
include(CON_MODULE_PATH."admin/admin.php");
break;
}
die admin.php im Modulordner modules/Contest/admin/admin.php
...
switch ($act) {
case "info":
include ("modules/" . $module_name . "/admin/admin_info.php");
break;
case "install":
install();
break;
...
Funzt problemlos und mach die Pflege einfach, da nur eine Datei gepflegt werden muss, mit den $act's
im Bedarfsfalle in der Admin-Datei im Modulordner nur die Weiche einbauen... alles andere dann in den entsprechenden Includes.
Dank Dir :pardon:
Ok werde ich, wenn alle Datein angepast sind testen.
Zitat von: dema80 am 31 Juli 2011, 17:48:57
Hallo
Ich würde raden den Admin bereich von PragmaMX und OSC zu trennen.
Ich finde allein aus Sicherheits gründen den Admin bereich für Shop extra zu halten.
oder was sagt ihr?
gruß
DeMa
Nein, da der osc Adminbereich, wenn die Falsche PHP Version auf dem Server ist, sehr heimtückisch sein kann und Dich beim Versuch einzulogen, in eine Endlosschleife wirft. (Hatte ich gestern mit dem Originalshop vorm PHP Update).
Desweiteren kann man so Unbefugtes Zugreifen mit dem CMS Schutz verhindern:
defined('mxMainFileLoaded') or die('access denied');
if (!MX_IS_ADMIN) {
die ("Access Denied");
}
Was das Abgreifen der Session um einiges Erschwert.
Aber was sagt Andi dazu? ^^
Hoi zusammen, :)
@AlternativeComputing
ZitatBist Du da schon weiter?
oh das ist schon lang her, aber dort ist es auch über die admin.php gelöst und alle Dateien werden dort eingebunden, weil der komplette Adminbereich erneuert wurde. Dort wurden die einzelnen Bereiche, nach dem Vorbild vom PMX, über Tabs zugänglich gemacht werden.
Es wird aber noch bestimmt einige Zeit in Anspruch nehmen bis wir soweit sind. ;)
Zitat von: TerraProject am 31 Juli 2011, 17:47:24
nö... definitiv brauchst du nur eine Weiche
z.Bsp. bei ContestMX hab ich u.a. das so gelöst
link.contestmx.php
...
adminmenu("admin.php?op=contest", ("Contest MX2"), "../header/contest.png",MX_ADMINPANEL_CONTENT);
case.contestmx.php
...
switch($op) {
case "contest":
case "Contest":
include(CON_MODULE_PATH."admin/admin.php");
break;
}
die admin.php im Modulordner modules/Contest/admin/admin.php
...
switch ($act) {
case "info":
include ("modules/" . $module_name . "/admin/admin_info.php");
break;
case "install":
install();
break;
...
Funzt problemlos und mach die Pflege einfach, da nur eine Datei gepflegt werden muss, mit den $act's
im Bedarfsfalle in der Admin-Datei im Modulordner nur die Weiche einbauen... alles andere dann in den entsprechenden Includes.
Moin TerraProject,
Habe vorgestern die
switch($op) {
Anweisungen aus der Index im Adminbereiches des Modules wieder entfernt und mußte ;D
Komisch aber nun Funtz es normal über die case File :mad2: :pardon: :thumbup:
Dank Dir mochmals :JC_highfive: