Simple Machines Community Forum

SMF Support => Hilfe zu SMF (German) => Language Specific Support => Grafiken & Templates => Topic started by: spaceone on February 10, 2011, 04:18:48 PM

Title: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 10, 2011, 04:18:48 PM
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...
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: feline on February 11, 2011, 09:29:58 AM
hast du am anfang der dateien eine <?php und am ende ein ?> ?

Fel
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 11, 2011, 10:14:38 AM
natürlich :D:D:D:D
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: feline on February 11, 2011, 02:38:58 PM
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  ;)
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 12, 2011, 05:02:27 PM
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???
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: ThorstenE on February 13, 2011, 03:46:34 AM
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.
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 13, 2011, 08:12:01 AM
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...
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: feline on February 13, 2011, 08:35:58 AM
wie sieht es mit den datei rechten aus?
Setz die mal auf 644 oder 755 ...
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 13, 2011, 08:50:57 AM
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?
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: ThorstenE on February 13, 2011, 10:31:18 AM
Themes/default/
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 13, 2011, 01:02:04 PM
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...
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: ThorstenE on February 13, 2011, 01:19:36 PM
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] : ''
Title: Re: Eigenes Action array: Fehlermeldung - Kann das * Template nicht laden
Post by: spaceone on February 13, 2011, 02:02:50 PM
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!