php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.07.2008, 11:01  
Neuer Benutzer
 
Registriert seit: 16.06.2008
Beiträge: 15
goofreezer befindet sich auf einem aufstrebenden Ast
Standard Module in PHP Anwendung optional anbieten

Hallo,

wieder mal ein kleines Problem von mir, bei dem ich nur einen theoretischen Ansatz habe und gerne einen Erfahrungsautausch mit Euch hätte:

Ich würde gern zu einigen Anwendungen in PHP+SQL zusätzliche Module optional anbieten. In der Praxis stelle ich mir das so vor, dass ich einen extra ordner module (oder plugin) habe. Nun wird als erstes mal dieser Ordner ausgelesen und jeder unterordner in diesem modul-Ordner wird aufgelistet.
(Dies ist ja eigentlich nicht so das Thema z.B.hiermit:
http://www.coder-wiki.de/HowTos/PHP-Ordner-auslesen)

Nun hätte ich das ganze aber gerne so, dass diese Ordner zwar angezeigt werden, aber zuerstnoch aktiviert werden müssen damit die Module wirklich integriert werden. Der Hintergrund ist der, dass ja bei den meisten Modulen auch noch DB-Anpassungen vorgenommen werden müssen und diese dann im Idealfall nicht manuell über PHP-Myadmin oder sonstige-Tools vorgenommen werden sollen sondern per Knopfdruck hinter einem Link zu einem Modul (bzw. angezeigtem Ordner aus dem Modul-Ordner).

Per Link Daten in eine DB- zu schreiben sollte eigentlich auch nicht so das Problem sein. Was mir noch wirklich Ansatz-Probleme bereitet ist, dass Anzeigen der Links hinter den jeweiligen Ordner und der Aufruf spezieller Funktionalität wenn ich hinter den Link eines Moduls klicke.

Das ganze könnte dann in der Praxis so aussehen:

Modul | Aktion

Kommentar | Modul aktivieren(Link zum schreibend er DB EInträge...)
Bewerungen | Modul aktivieren
Galerie | Modul aktivieren

Nachdem nun ein Modul aktiviert wurde soll dann natürlich als Link hinter diesem Modul sowas wie Modul deaktivieren mit entsprechender Funktionalität erscheinen.

Habt Ihr eine Idee wie ich an dieser Stelle weiterkomme.

Danke
goodfreezer
goofreezer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.07.2008, 12:41  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Du könntest eine Datenbanktabelle anlegen "module" und für jedes aktivierte Modul machst du in der Datenbank einen Eintrag. Wenn jetzt der Ordner mit den Modulen ausgelesen wird kannst du überprüfen ob das Modul schon in der DB steht oder nicht. Und je nach dem könntest du dann einen "aktivieren" oder "deaktivieren" Button anzeigen.
Flor1an ist offline  
Alt 07.07.2008, 20:25  
Neuer Benutzer
 
Registriert seit: 16.06.2008
Beiträge: 15
goofreezer befindet sich auf einem aufstrebenden Ast
Standard

Hallo RaZoR und danke für Deinen Tip.

So ähnlich habe ich mir das auch vorgestellt.

Meine Umsetzung zu dieser Modulintegration habe ich nun mal so angefasst.

Ich habe mir (mit xamp) einen Hauptordner angelegt indem ich einen unterordner "goodies", [ wollt mal kreativ sein, module und plugins ist schon so weit verbreitet;-] eine Datei goodies.php [zum Anzeigen der aktivierten/ Deaktivierten goodies] und eine Datei conf.php [ Allgemeine Datenbankverbindungsdaten] angelegt habe.
Zusätzlich habe ich mir eine DB goodies mit einer Tabelle goodies angelegt.

In diesen goodies Ordner werden nun verschiedene Ordner, also die goodies gelegt welche dann ausgelesen werden und wenn Sie in der goodies-Tabelle stehen als Aktiviert (mit einem deativierungslink) und wenn Sie nicht in der goodies-Tabelle stehen als deaktiviert ( mit einem aktivierungslink ) angezeigt.


Es funktioniert alles auch schon ganz gut:
Ich kann goodies Aktivieren die dann im goodie-Index angezeigt werden und aus dem goodie-Index auch wieder goodies deaktivieren die dann aus der Tabelle gelöscht werden und nicht mehr im good-Index als Aktiviert angezeigt werden.

Allerdings gibts noch 2 Schönheitsfehler bei der Ansicht des goodie_indexes:

1) es werden vorm ersten goodie (der deaktivierten goodies, also bis jetzt des auslesens aller Ordner) zweimal der Link Aktivieren generiert welchen ich nicht entfernt bekomme

2) Es sollen natürlich nur goodies zum Aktivieren angezeigt werden, welche nicht schon aktiviert wurden. Bis jetzt werden ja alle Aktivierten und darunter nochmal alle goodie-Ordner angezeigt und nicht alle aktivierten und darunter nur alle Deaktivierten. Heißt hier fehlt wohl noch die richtige Überpüfung um an dieser Stelle nur die Deaktivierten goodies anzuzigen.

Könntet Ihr mir bei diesen beiden Sachen nochmal den richtigen weg weisen.
Zum besseren Verständnis auch nochmal 2 Screenshots wenn kein goodie bzw. ein goodie aktiviert ist:



Besten Dank
goodfreezer
goofreezer ist offline  
Alt 07.07.2008, 21:23  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Naja um die ganzen aktivierten "Googies" nicht mehr anzuzeigen musst du diese eben beim auslesen in ein Array speichern. Wenn du jetzt die Ordner durchgehst und anzeigen lässt musst du halt prüfen ob dieser Ordner als Goodie gespeichert ist. Dann nicht anzeigen!

Übrigens ist der Name modul oder plugin schon praktisch. Denn jeder der mit deinem System arbeitet kann sich under modul oder plugin etwas vorstellen. Aber Goodie .. das sagt einem jetzt nicht so viel. Unter Goodie versteh ich sowas wie ein kleiner Zusatz in etwa eine kleine Uhr in der Ecke oder so eine Kleinigkeit.
Flor1an ist offline  
Alt 08.07.2008, 06:35  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
zunaechst mal ist das Tutorial "Ordner auslesen" veraltet, schau dir mal die Funktion glob() an:
http://php.net/glob

Dadurch fallen fuer dich auch die laesstigen Punkte ".", ".." weg.

Gruss, c
Zergling-new ist offline  
Alt 08.07.2008, 16:45  
Neuer Benutzer
 
Registriert seit: 16.06.2008
Beiträge: 15
goofreezer befindet sich auf einem aufstrebenden Ast
Standard

Hallo Zergling, auch Dir Danke für Deinen tip.

Hab jetzt die Sache mit dem "." und ".." durch die integration dieses Quelltext

PHP-Code:
if( $file !== "." && $file !== ".."
fixen können.
Aber wenn Du meinst das dieser Quelltext (bzw. dieses Tutorial) eher veraltet ist, werd ich mir die glob()-Funktion auch mal reinziehen.

_________________________

Habe jetzt noch eine letzte Sache die mir ein wenig Kopfschmerzen bereitet.

Das anlegen neuer Tabellen (Dateien) und auch das updaten von bestehenden Tabellen wenn ein Modul [@RaZor hast mich mit der goodie-Argumentation überzeugt;-] aufgerufen wird, sollte kein Problem sein.

In der Regel greift aber ein Modul auch an eine (bzw. mehrere) Stelle einer bestehenden Datei zu.
Nehmen wir als praktisches Beispiel mal ein Bewertungsmodul das in eine Linkliste integriert wird.

Bis jetzt rufen wir den Link und Benutzer durch ähnlichen Quelltext in der Linkübersicht auf:

PHP-Code:
<a target="_blank" href="http://<?php echo $myrow['lhttp']; ?>">
<?php echo $myrow['lname']; ?></a>

<h1 style="font-size:8pt">eingestellt am 
<?php echo $myrow['ldat']; ?> von <?php echo $myrow['luser']; ?>
Wenn nun hinter dem Linkamen (also dem </a>) das Bewertungsmodul erscheinen soll, müsste mal also diese Stelle auslesen und dann genau hier integrieren.

Ein theoretischer Ansatz bei dem ich mir aber nicht ganz sicher bin ob dieser so intelligent ist und wie ich Ihn genau umsetzen soll, ist, dass ich hinter dem </a> eine Art Erkennungsplatzhalter in ein Kommentar einbette

Code:
 
und wenn das Bewertungsmodul nun aktiviert wird, soll mir die Textstelle rausgesucht werden und dahinter die Bewertungsmodulfunktionalität integriert werden.
Im Hinblick auf mehrere (vielleicht auch noch bis jetzt unbekannte) Module müsste ich dann auf vorrat mehrere Platzhalter integrieren.

Vielleicht hat einer von Euch ja schon eine ähnliche Sache angepackt oder eine Idee (bzw. Linktip) wie ich hier weiter vorgehen kann

Goodfreezer
goofreezer ist offline  
Alt 08.07.2008, 18:14  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Naja da wäre es wohl besser wenn du mit dem Modul ein neues Template zur Verfügung stellst. Denn angenommen es soll etwas komplett neues eingebaut werden durch ein Modul kannst du das nicht bewerkstelligen wenn du nur ein paar Platzhalter an vordefinierten Stellen hast!
Flor1an ist offline  
Alt 08.07.2008, 19:30  
Neuer Benutzer
 
Registriert seit: 16.06.2008
Beiträge: 15
goofreezer befindet sich auf einem aufstrebenden Ast
Standard

Das wäre sicherlich eine Möglichkeit.

Aber wenn ich nun mehrere Module integriere bräuchte ich doch auch wieder Templates die alle Funktionalität der verschiedenen module integrieren.

Ist sowas denn möglich? Dann müsste ja bei jedem Modul ausgelesen werden welche Module schon integriert sind und ein passendes Template integriert werden welches auch alle Funktionalität (anderer Module) anzeigen kann. Dies würde ja auch vorraussetzen, dass immer alle Module schon vorher bekannt sein müssten.

Oder habe ich hier einen Denkfehler?
goofreezer ist offline  
Alt 08.07.2008, 19:41  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Das ist eben das Problem bei Modulen. Wenn zwei Module den selben Bereich überschneiden gibt es natürlich Probleme. Und diese sind teilweise so komplex dass man nicht automatisch diese Probleme lösen kann. Im Normalfall ist es so dass man Module installiert indem man die entsprechenden Files in bestimmte Ordner kopiert und dann per Hand die Templates anpassen muss!

Wenn die Module natürlich so eigenständig sind dass sie auf nichts anderes zugreifen dann kann man sie natürlich recht einfach realisieren. Dann könnte zum Beispiel das einzigste das vom Grundsystem auf die Module zugreift die Navigation sein! Diese liest z.b. alle Module ein und listet sie auf. Dann müsstest du per Hand nichts ändern.

Aber wenn es kompliziertere Module werden wirst du nicht drum rum kommen per Hand Änderungen durchzuführen.
Flor1an ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Freeware zum download anbieten ??? seppel15 Off-Topic Diskussionen 6 04.12.2006 12:58
Zugriffsrechte fuer externe Module Lumio PHP-Fortgeschrittene 4 05.09.2006 22:32
PHP Anwendung auf CD ... andrew22 PHP Tipps 2006 22 03.08.2006 17:07
diverse Design-Fragen eines Frameworks mepeisen PHP-Fortgeschrittene 10 26.04.2006 01:57
Module im Eigenbau (Problem mit includes) ChewyF5 PHP-Fortgeschrittene 3 27.07.2005 09:35
[Erledigt] PHP Anwendung im Browser PHP-Fortgeschrittene 13 30.05.2005 19:32
Funktionsparameter optional Orolhawion PHP-Fortgeschrittene 6 10.05.2005 14:08
[Erledigt] phpMyAdmin Fehler Datenbanken 1 24.04.2005 11:33
Fragen bzgl. einer Anwendung die PHP-Code veröffentlicht PHP-Fortgeschrittene 8 17.01.2005 13:21
[Erledigt] Anwendung per PHP steuern PHP-Fortgeschrittene 1 26.09.2004 18:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2008/46127-module-php-anwendung-optional-anbieten.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.