php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 19-09-2004, 13:08
manuelakersten
 Member
Links : Onlinestatus : manuelakersten ist offline
Registriert seit: Apr 2002
Beiträge: 379
manuelakersten ist zur Zeit noch ein unbeschriebenes Blatt
Standard Templatezuordnung

Hallo Leute,

ich möchte mich gerne etwas mehr mit ->Templates<- beschäftigen
und habe nur eine kurze Frage.

Ich möchte gerne der Variabel {rightnav} eine Templatedatei zuordnen
und habe es wie folgt ausprobiert :
PHP-Code:
58 $rightnav->set_file("rightnav""mainlayout/right_navigation.tpl.html");
59 $tpl->Insert("{rightnav}"$rightnav); 
Hier sollte eigentlich der Variabel {rightnav} die Templatedatei
-> right_navigation.tpl.html <- zugeordnet werden, jedoch scheint
es nicht zu klappen denn ich bekomme folgende Fehlermeldung :
Zitat:
Fatal error: Call to a member function on a non-object in /index.php on line 58
Was habe ich falsch gemacht ?

Gruss und Danke Ela
Mit Zitat antworten
  #2 (permalink)  
Alt 19-09-2004, 13:33
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Templatezuordnung

Zitat:
Original geschrieben von manuelakersten

Was habe ich falsch gemacht ?
du hast die Fehlermeldung nicht gelesen, bevor du hier postet
Mit Zitat antworten
  #3 (permalink)  
Alt 19-09-2004, 13:38
manuelakersten
 Member
Links : Onlinestatus : manuelakersten ist offline
Registriert seit: Apr 2002
Beiträge: 379
manuelakersten ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Klar habe ich SIe gelesen aber nicht verstanden - Sorry.
Ich dachte zuerst das der Pfad nicht stimmt und er die Datei
nicht findet, aber er findet Sie.
Mit Zitat antworten
  #4 (permalink)  
Alt 19-09-2004, 13:46
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die Fehlermeldung besagt, dass du Methodenfuntion von nicht existierenden Objekt anwendest. D.h. im Klartext: du hast das Objekt noch garnicht instanziiert.
Mit Zitat antworten
  #5 (permalink)  
Alt 19-09-2004, 13:54
manuelakersten
 Member
Links : Onlinestatus : manuelakersten ist offline
Registriert seit: Apr 2002
Beiträge: 379
manuelakersten ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ahhhh, verstehe ich nicht !
Wie gesagt mein erster Versuch, kannst Du mir da nicht ein bisschen helfen,
habe auch schon das Forum durchsucht und nicht wirklich was gefunden.

Und im PHP-Handbuch habe ich unter set_file() nicht gefunden,
jedenfalls nichts was mit Template zu tun hat.
Mit Zitat antworten
  #6 (permalink)  
Alt 19-09-2004, 14:10
NielsRunge
 Member
Links : Onlinestatus : NielsRunge ist offline
Registriert seit: Sep 2004
Ort: Gremmerup
Beiträge: 339
NielsRunge ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aber dann benutzt Du jetzt eine fremde Klasse oder wie?
Weil PHP hat von hausaus keine Templatefunktionen oder Klassen...

wie kommst Du auf:

PHP-Code:
58 $rightnav->set_file("rightnav""mainlayout/right_navigation.tpl.html");
59 $tpl->Insert("{rightnav}"$rightnav); 
das hast Du Dir ja nicht aus der Nase gesogen, weil dann wüßtest Du was zu tun ist.
Also wo hast Du es kopiert?

Dann könnte man eher herrausfinden wo das ganze herkommt und welche Klasse es ist. Aufjedenfall fehlt Sie bei Dir im Script
__________________
[Test] MySQL cli Emulator
Mit Zitat antworten
  #7 (permalink)  
Alt 19-09-2004, 15:28
manuelakersten
 Member
Links : Onlinestatus : manuelakersten ist offline
Registriert seit: Apr 2002
Beiträge: 379
manuelakersten ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe mir ein CMS-Script gekauft was auf Templates aufgebaut ist,
jedoch gibt es bei diesem nur ein Template das wie folgt aufgebaut ist.

template.htm :

Head, Linke Navigation, Content, Rechte Navigation, Food

Es wird nur das Content ersetzt durch neu Inhalte und der rest bleibt immer gleich, nun möchte ich gerne eigene Sachen im Content anzeigen
lassen ( z.B. externe Scripte ) und muss dafür die Rechte Navigation ausbelden um mehr Platz im Mittleren ( Content )-Bereich zu bekommen.

In PHP wäre das überhaupt kein Problem, das kann ich inzwischen alles
jedoch handelt es sich ja hier um eine HTML-Datei in der ich kein PHP einbinden kann wegen der Endung *.htm .

Also habe ich mir gedacht, dass ich das rechte Menü als Template in eine externe Datei schaffe, in der Steuerdatei des Templates kann ich ja dann z.B. -> rechtsnavi = 0 // bei 0 ausblenden bei 1 einblenden
angeben da ja PHP und in der Index-Datei in der die Templates definiert werden 'ne Schleife einfügen, dass wenn rechtsnavi = 0, dann soll die definition nicht erfolgen und auch keine rechte Navi angezeigt werden.

Ich denke dieses ist einfacher als das ganze Script um zu bauen.

Den geposteten Ausdruck habe ich aus dem Script 'apportal' in dem diese Funktion funktioniert, jedoch habe ich halt nicht so viel Ahnung von Templates und bin ein bisschen nach Logig vorgegangen.

$rightnav->set_file("rightnav", "mainlayout/right_navigation.tpl.html");
// hier dachte ich wird die externe Datei der Variabel 'rightnav' zugewiesen

$tpl->Insert("{rightnav}", $rightnav);
// und hier wird der Inhalt der Externen Datei dem {rightnav} zugewiesen.

Was ich hier nicht verstehe ist im ersten Syntax das markierte rightnav !
Mit Zitat antworten
  #8 (permalink)  
Alt 19-09-2004, 15:38
NielsRunge
 Member
Links : Onlinestatus : NielsRunge ist offline
Registriert seit: Sep 2004
Ort: Gremmerup
Beiträge: 339
NielsRunge ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ja ich gehe gerne auch nach Logig, wo liegt das nochmal?

SCNR


Ok, sorry, also weiter:
im ersten Beitrag hattest Du folgende Fehlermeldung:
PHP-Code:
Fatal errorCall to a member function on a non-object in /index.php on line 58 
hast Du mittlerweile eine Idee was das bedeuten könnte?
Das nötige Objekt fehlt bzw. ist noch nicht instanziiert wie asp2php Dir schon sagte.
Informier Dich erstmal ein wenig über Objekte in PHP, z.B. hier:
http://de3.php.net/manual/de/language.oop.php
http://cgi.tu-harburg.de/~rztmbr/Kur...p_objects.php3
http://www.usegroup.de/software/phpt...d_objekte.html
http://www.devmag.net/webprog/php_oop_1.htm

und hier gibts noch viel viel mehr
http://www.google.com/search?hl=de&i...&q=php+objekte

Ich weiß dass Dir das direkt nicht weiterhilft aber eigentlich schon, denn wenn ich das hier lese :
Zitat:
In PHP wäre das überhaupt kein Problem, das kann ich inzwischen alles
und dann die Frage ... ähhm gut, lassen wir das
__________________
[Test] MySQL cli Emulator
Mit Zitat antworten
  #9 (permalink)  
Alt 19-09-2004, 15:58
manuelakersten
 Member
Links : Onlinestatus : manuelakersten ist offline
Registriert seit: Apr 2002
Beiträge: 379
manuelakersten ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ohh tschuldigung mit der Aussage
Zitat:
In PHP wäre das überhaupt kein Problem, das kann ich inzwischen alles
Meinte ich natürlich nicht, dass ich PHP perfekt kann sondern
dass ich mit PHP Menüs ein und Ausblenden kann, was ich selber
schon in einigen Scripte benutzte.

Leider habe ich auch keinerlei Erfahrungen mit Klassen in PHP
daher helfen mir die Links nicht wirklich weiter - aber danke !

Ich werde mich auch damit noch beschäftigen müssen,
aber ich muss irgendwie diese Webseite ins Netz stellen können
und dazu benötige ich halt diese Funktion.

Könnt Ihr mir nicht ein bisschen mehr auf die Sprünge helfen
denn ich weis nicht einmal was -> instanziiert <- bedeutet.

Ich verspreche dann auch dass ich mich mit diesem Thema
mehr beschäftigen werde.
Mit Zitat antworten
  #10 (permalink)  
Alt 19-09-2004, 16:21
NielsRunge
 Member
Links : Onlinestatus : NielsRunge ist offline
Registriert seit: Sep 2004
Ort: Gremmerup
Beiträge: 339
NielsRunge ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat:
In PHP wäre das überhaupt kein Problem, das kann ich inzwischen alles
Meinte ich natürlich nicht, dass ich PHP perfekt kann sondern
dass ich mit PHP Menüs ein und Ausblenden kann, was ich selber
schon in einigen Scripte benutzte.
achso, aber Du meinst schon PHP. Nicht dass Du es vielleicht mit JavaScript verwechselst? Also dynamisch Menüs ein und ausblenden hört sich eher wie Clientseitig an, also dass es beim Benutzer passiert und nicht auf dem Server.

Zitat:
Leider habe ich auch keinerlei Erfahrungen mit Klassen in PHP
daher helfen mir die Links nicht wirklich weiter - aber danke !
deswegen habe ich Dir eigentlich die Links gegeben, dachte eigentlich dass das alles totale Anfänger Tutorials waren?! Naja kann mich auch täuschen.
ok, dann das hier -> http://tut.php-q.net/klassen.html (hatte es irgendwann mal überflogen aber ich meine schon dass alles sehr simpel und gut erklärt ist)
Da brauchst Du natürlich schon PHP Grundlagen bzw. vielleicht auch ein wenig mehr. Und wenn ich z.B. diesen Beitrag oder hier lese habe ich so meine Zweifel.
Ist nicht bös gemeint nimm Dir lieber ein wenig Zeit und büffel nochmal die Grundlagen durch bevor Du "auf die schnelle" eine Seite ins Netz stellst. Im Endeffekt hast Du doch mehr davon
__________________
[Test] MySQL cli Emulator
Mit Zitat antworten
  #11 (permalink)  
Alt 19-09-2004, 16:25
derHund
 PHP Master
Links : Onlinestatus : derHund ist offline
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
derHund ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
denn ich weis nicht einmal was -> instanziiert <- bedeutet.
bedeutet: eine instanz erzeugen

also ... eine instanz der tpl-klasse, so daß du mit ihr arbeiten kannst .. (wie erklärt man das bitte?)
PHP-Code:
$tpl = &new $deinTPL(...); 
ähm, wenn du
Zitat:
die Rechte Navigation ausbelden
willst, hast du mal versucht, im template (html mit platzhaltern) einfach den block zu entfernen? wie reagiert das tpl-system?

Zitat:
in der Steuerdatei des Templates kann ich ja dann z.B. -> rechtsnavi = 0 // bei 0 ausblenden


ähm, wie lautet das aktuelle problem?

[ ] call to a member-function on an unknown ...
[ ] was anderes
__________________
Die Zeit hat ihre Kinder längst gefressen
Mit Zitat antworten
  #12 (permalink)  
Alt 19-09-2004, 16:27
NielsRunge
 Member
Links : Onlinestatus : NielsRunge ist offline
Registriert seit: Sep 2004
Ort: Gremmerup
Beiträge: 339
NielsRunge ist zur Zeit noch ein unbeschriebenes Blatt
Standard

[X] ist nicht bekannt
__________________
[Test] MySQL cli Emulator
Mit Zitat antworten
  #13 (permalink)  
Alt 19-09-2004, 17:43
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

[x] $rightnav ist falsch, das ding gibt's nicht, schätzungsweise noch nichtmal als "normale" variable
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #14 (permalink)  
Alt 19-09-2004, 18:36
manuelakersten
 Member
Links : Onlinestatus : manuelakersten ist offline
Registriert seit: Apr 2002
Beiträge: 379
manuelakersten ist zur Zeit noch ein unbeschriebenes Blatt
Standard

zu NielsRunge :
1.) selbstverständlich meine ich PHP
2.) zu diesem Beitrag habe ich leider keine wirkliche Antwort erhalten, daher habe ich aufgegeben und werde es wohl in der DB oder Textdatei zwischenspeichern.
3.) und bei dem anderen Post, ok war mein versehen habe es aber dann geschaft.
4.) Klar büffel ich gerne habe ich mir vorgenommen um die Seite anders zu gestalten, jedoch muss ich diese wenigstens so ins Netz stellen, dass diese funktioniert und wenn auch nur auf 'NOTSTROHM' da viel davon abhängt :-)

zu derHund :
danke dass Du dich der Sache angenommen hast und mir wenigstens ein paar Fragen stellst.

ich habe die Datei 'template.htm' in der die ganze Seite gespeichert ist
und ich habe diese nun mal auseinandergefummelt.

Nun habe ich den Quelltext der für die rechte Menüseite zuständig ist isoliert und aus der Datei template.htm entfernt. Dann wird die Seite ganz normal aufgerufen jedoch ohne die besagte rechte Navigation das bedeutet das hier eigntlich nichts im Wege steht diese Funktion die ich haben möchte dort ein zu fügen.

hier habe ich mal einen Ausschnitt aus der index.php in der die
Templates zugewiesen werden.

PHP-Code:
(...)
$tpl =& new Template("mainlayout/".$template."");

$rightnav->set_file("rightnav""mainlayout/right_navigation.tpl.html");
$tpl->Insert("{rightnav}"$rightnav);

$tpl->Insert("{pversion}"$prover);
$tpl->Insert("{usergesamt}"$userges); 
$tpl->Insert("{threads}"$themeges); 
$tpl->Insert("{posts}"$posts);
(...) 
Nochmal ich dachte mit
PHP-Code:
$rightnav->set_file("rightnav""mainlayout/right_navigation.tpl.html"); 
weise ich den HTML-Inhalt der Variabel '$rightnav' zu
und bei
PHP-Code:
$tpl->Insert("{rightnav}"$rightnav); 
füge ich den Inhalt von $rightnav über die Variabel {rightnav}
in die Templatedatei -> $tpl =& new Template("mainlayout/".$template."");
ein aber scheinbar habe ich mich geiirt.

Die Steuerdateien für die externen Programme im Content sehen wie folgt aus ( habe ich ja auch hinbekommen )

z.B. html_editor.php
PHP-Code:
<?php 
 ob_start
();
  
$seite 'http://www.xyz.de/htmleditor';
  
$hight '800';
  
$width '100%';
  
$scroll 'auto';
  
  
$SHOWRIGHTNAVIGATION 0;

  
$tpl =& new Template("modul.htm");
  
$tpl->Insert("{text}"'<iframe src="'.$seite.'" frameborder="0" height="'.$hight.'" width="'.$width.'" name="name" scrolling="'.$scroll.'">');

  
$tpl->POut();

 
ob_end_clean();
?>
Mit dem Syntax -> $SHOWRIGHTNAVIGATION = 0; <- möchte ich dann steuern ob die rechte Seite angezeigt werden soll oder nicht.

Die template.htm sieht in dem besagten Abschnitt dann folgendermassen aus :
PHP-Code:
(...)
  </
td>
 </
tr>
</
table>
<!--  
Linke Menüseite Ende -->
</
td>
 <
td border="1" valign="top" bgcolor="#FFFFFF" width="100%" height="718"><!-- BANNERCODE -->
 {
banner}
<!--  
Content Anzeige Anfang -->

<
table width="100%" border="0" align="center" cellpadding="10" cellspacing="0">
 <
tr>
   <
td valign="top">
    {
CONTENT}
   </
td>
 </
tr>
</
table>

<!--  
Content Anzeige Ende -->
</
td>

<!--  
rechtes Menü Anfang -->
 {
rightnav}
<!--  
rechtes Menü Ende -->
 </
tr>
</
table>
(...) 
Mit dem Aufruf der Seite mit meiner o.g. Änderung in der index.php
bekomme ich diesen Fehler :
Zitat:
call to a member-function on an unknown ...
Zu den letzten beiden Posts :
Ich bin Abteilungsleiterin im Einzelhandel beim grössten
Elektronikfachmarkt im Bereich GSM/Bürocom.

Viele Kunden kommen und haben irgendwelche Probleme mit Ihrem
ISDN-Anschluss, Telefon, Telefonanlage, MMS Versenden oder
einfach nur keine Change das Handy an zu schalten, da Sie nicht
die Anleitung der Geräte lesen. Bei den ISDN-Anlagen und Telefonen
gehen die Kunden davon aus, dass ich genau weis wie es bei diesen zu hause aussieht, denn Sie verstehen nicht das es für eine fremde person manchmal sehr schwer ist nach zu vollziehen was Sie mir sagen möchten oder gar was für Probleme Sie haben. Ich unterhalte mich sehr lange mit den Kunden um genau rauszufinden wo wirklich das Problem liegt, auch wenn Sie bei mir nichts kaufen wird jeder Kunde bedient, selbst wenn es ein Tevion Handy ist und die Kassiererinnen bei Aldi keine Bedienungshilfen für dieses Gerät geben können :-)

Aber kein Kunde geht bei mir oder bei meinen Mitarbeitern raus ohne dass Sie ein Erfolgserlebnis hatten.

Was ich damit sagen möchte ist eigentlich Ihr wisst wie es geht und einige verstehen nicht warum es ein aussenstehender nicht versteht, da es ja so einfach ist, das sprechen ist auch sehr einfach aber es dauert teilweise Jahre es zu erlernen, aber deswegen sage ich meiner Tochter ( z.Zt 10 Monate ) nicht Du lernst es ja sowieso nicht also warum soll ich Dir helfen.

Ich hoffe das ich es nun einigermassen erklärt habe.
Mit Zitat antworten
  #15 (permalink)  
Alt 19-09-2004, 18:48
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

und nochmals: du hast ein Objekt vor dem Gebrauch nicht instanziiert, und das meckert PHP. Du hast:
PHP-Code:
$tpl =& new Template("mainlayout/".$template.""); 
$tpl damit instanziiert. Wo hast du für $rightnav gemacht, denn ohne das kannst du nicht einfach:
PHP-Code:
$rightnav->set_file("rightnav""mainlayout/right_navigation.tpl.html"); 
verwenden.

Ich hoffe, dass es nun klar ist
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

jqPlot jQuery Plotting Plugin ansehen jqPlot jQuery Plotting Plugin

jqPlot ist ein plotting und charting plugin für das jQuery Javascript framework

06.11.2019 Berni | Kategorie: AJAX/ Framework
WYSIWYG Editor

WYSIWYG Editor zum Einbinden in PHP Scripte.

21.10.2019 Stephan_1972 | Kategorie: PHP/ WYSIWYG
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

10.10.2019 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:29 Uhr.