Admin einbinden

Begonnen von comedi, 20 Dezember 2010, 13:29:58

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

comedi

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?
LG Michael


Kein Support über PN, Mail oder ICQ!

CMS-Version: pragmaMx 1.12.3 --- PHP-Version: 5.3.5
MySQL-Version: 5.1.63 --- Server-Version: Apache 2.2.4

Wer den Weg zum Ziel kennt - dann aber Umwege nimmt - muss sich nicht wundern wenn er sein Ziel nicht findet!


Gemeinschaftseite: www.pragmamx-erweiterungen.de

AlternativeComputing

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:

[url="hxxp://meine-domain.xyz/admin?op=osC4PMXAdmin&do="Zieldatei"."]hxxp://meine-domain.xyz/admin?op=osC4PMXAdmin&do="Zieldatei".[/url]

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:
MfG

Peter

Olaf

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....

g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

AlternativeComputing

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>
MfG

Peter

Olaf

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.
g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

AlternativeComputing

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 ^^
MfG

Peter

Olaf

wozu brauchst du die Weiche in der case.modul.php wenn du die Weiche in der modul-admin.php schon hast ?
g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

AlternativeComputing

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>
MfG

Peter

Olaf

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.
g

Olaf

Kein Support über PN, Mail etc.!
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

dema80

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
Es gibt keinen zweiten Sieger --- du bist eine 1 oder ne 0, lebendig oder tot

AlternativeComputing

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? ^^
MfG

Peter

comedi

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.  ;)
LG Michael


Kein Support über PN, Mail oder ICQ!

CMS-Version: pragmaMx 1.12.3 --- PHP-Version: 5.3.5
MySQL-Version: 5.1.63 --- Server-Version: Apache 2.2.4

Wer den Weg zum Ziel kennt - dann aber Umwege nimmt - muss sich nicht wundern wenn er sein Ziel nicht findet!


Gemeinschaftseite: www.pragmamx-erweiterungen.de

AlternativeComputing

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:
MfG

Peter