News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden

Started by spaceone, February 10, 2011, 04:18:48 PM

Previous topic - Next topic

spaceone

Ich brauche Hilfe beim einbinden einer neuen action array und einem neuem template:

index.php

// Here's the monstrous $_REQUEST['action'] array - $_REQUEST['action'] => array($file, $function).
$actionArray = array(
...
'Stundenplan' => array('Stundenplan.php', 'Stundenplan'),
...


Sources/Subs.php

$buttons = array(
...
'Stundenplan' => array(
'title' => "Stundenplan",
'href' => $scripturl . '?action=Stundenplan',
'show' => !$user_info['is_guest'],
'sub_buttons' => array(
),
'is_last' => !$context['right_to_left'],
),
...


Sorces/Stundenplan.php


#if (!defined('SMF'))
# die('Hacking attempt...');

# This file has only one real task... showing the timetable.

function Stundenplan()
{
global $txt, $context, $modSettings, $scripturl, $options, $sourcedir;

loadTemplate('Stundenplan');

}


Stundenplan.template.php in Themes/ default, core und mein aktuellem Template... -rwxrwxrwx


function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;

echo '
<table id="left" class="splan">
<thead><tr><td colspan="6">Stundenplan (gerade Woche)</td></tr></thead>
<tbody>
<tr>
<td class="zeit">Zeit:</td>
<td class="mon">Montag</td>
<td class="die">Dienstag</td>
<td class="mit">Mittwoch</td>
<td class="don">Donnerstag</td>
<td class="fre">Freitag</td>
</tr>
<tr>
<td class="zeit">8:00 bis 9:30</td>
<td class="mon">'.$Stunde['inv'][0].'</td>
<td class="die">'.$Stunde['mat'][0].'</td>
<td class="mit">'.$Stunde['ges'][0].'</td>
<td class="don">'.$Stunde['deu'][0].'</td>
<td class="fre">'.$Stunde['inf'][0].'</td>
</tr>
<tr>
<td class="zeit">9:50 bis 11:20</td>
<td class="mon">'.$Stunde['esp'][0].'</td>
<td class="die">'.$Stunde['buv'][0].'</td>
<td class="mit">'.$Stunde['che'][0].'</td>
<td class="don">'.$Stunde['mat'][0].'</td>
<td class="fre">'.$Stunde['inf'][0].'</td>
</tr>
<tr>
<td class="zeit">11:40 bis 13:10</td>
<td class="mon">'.$Stunde['deu'][0].'</td>
<td class="die">'.$Stunde['eng'][0].'</td>
<td class="mit">'.$Stunde['esp'][0].'</td>
<td class="don">'.$Stunde['rel'][0].'</td>
<td class="fre">'.$Stunde['buv'][0].'</td>
</tr>
<tr>
<td class="zeit">13:30 bis 15:00</td>
<td class="mon">'.$Stunde['blank'][0].'</td>
<td class="die">'.$Stunde['spo'][0].'</td>
<td class="mit">'.$Stunde['blank'][0].'</td>
<td class="don">'.$Stunde['blank'][0].'</td>
<td class="fre">'.$Stunde['blank'][0].'</td>
</tr>
</tbody>
</table>

</div>

</div>
</body>
</html>
';

}


Dies alles erzeugt folgende Fehlermeldung:

Kann das "Stundenplan" Template nicht laden

Ich sitze da seit 2 Monaten dran und bekomme keine Lösung...

feline

hast du am anfang der dateien eine <?php und am ende ein ?> ?

Fel


feline

Ich denke hier ist der fehler ..
Am ende der template datei (nach </table>) hast du noch was drin, was da nicht hingehört:

</div>

</div>
</body>
</html>

Entferne das mal, denke dann klapps  ;)

spaceone

nein, hab das mal rausgelöscht, aber das kann nicht der fehler sein... das ist nur html, würde also gar nicht von php überprüft werden...

das zeug war nur von einem voherig getestetem layout noch drin...

gibt es eventuell noch etwas, was eingetragen werden muss, oder müssen irgendwelche funktionen einen anderen namen haben oder muss Stundenplan.template.php vielleicht in einen anderen Ordner???

ThorstenE

hab das grad mal getestet und hier funktioniert es (unter Windows)..  Wenn du die Seite auf Linux hostest ist es wichtig die Groß- und KleinSchreibung bei den Dateinamen zu berücksichtigen, sprich die Datei muss "Stundenplan.template.php" heissen.

eventuell auch ein Problem mit dem Cache? schalte mal das Caching des SMF ab.

spaceone

mit groß und kleinschreibung ist mir bewusst...
mit caching hatte ich schon oft probleme, hab im moment noch nen scheiß hoster, ich kann nichtmal pakete installieren und so.. ich denke daran könnte es liegen...

ich habe caching jetzt deaktiviert (Administration -> Server Settings -> caching -> no caching)

aber es ist immer noch dasselbe...

feline

wie sieht es mit den datei rechten aus?
Setz die mal auf 644 oder 755 ...

spaceone

die sind alle auf 777, dass muss auch bei meinem hoster so sein, weils sonst probleme gibt...

in welchem ordner muss die Stundenplan.template.php sein?


spaceone

ok da ist es ja drin...
hab das aus den anderen ordnern jetzt mal da rausgelöscht
das error log gibt auch keine sinnvollen infos...

ThorstenE

probier mal bitte die beiden Dateien aus der Anlage, funktionieren hier ohne Probs..
ein paar Tipps:
1) für bessere Lesbarkeit solltest du den Code einrücken (auch HTML) und Leerzeichen nutzen, wenn php-variablen angesprochen werden
2) die meisten globals sind in deinem Script überflüssig, z.b. $txt kannst du problemlos löschen wenn du die Daten nicht in eine eigene Stundenplan.language.php legen willst
3) $Stunde['inv'][0] und die anderen werden dir haufenweise undefined index errors erzeugen, solange das $Stunde array nicht gefüllt ist. Hier solltest du überprüfen, ob der Wert des Arrays vorhanden ist und ggf. einfach nichts ausgeben:
isset($Stunde['inv'][0]) ? $Stunde['inv'][0] : ''

spaceone

hmm, ok jetzt funzt es...

$Stunden hatte ich auch defined...
ich hatte vor Stundenplan() noch eine andere Funktion, als ich die weggenommen habe, ging es...

also flexibel ist das nicht... ich hab die funktion jetzt in die index.php reingepackt...

und einrücken tu ich auch ;), war ne testdatei
Dankesehr!

Advertisement: