|
|

10.12.2006, 17:24
|
|
Wie Templates cachen? - Wunsch nach Shell Template
Ich habe den Hack Top Posters von vba, dank an buzel für die Idee, eingebunden gekriegt und dabei sind mir 2 Dinge aufgefallen.
1.
Ich kriege die 2 Templates nicht zwischen gespeichert:
Momentan sieht die PHP Datei so aus:
PHP Code:
<?php
$specialtemplates = array(
'adv_portal_topposters',
'adv_portal_topposters_bit',
);
$globaltemplates = array();
$actiontemplates = array();
$limit = 20;
// ### TOP STATS ########################################
$top_stats = array();
// TOP POSTERS
$top_posters = $db->query("SELECT * FROM ".TABLE_PREFIX."user ORDER BY posts DESC LIMIT $limit");
while($top_poster = $db->fetch_array($top_posters))
{
eval('$top_stats[\'adv_portal_topposters_bit\'] .= "' . fetch_template('adv_portal_topposters_bit') . '";');
}
unset($top_poster);
$db->free_result($top_posters);
//eval('$home[$mods[\'modid\']][\'content\'] = "' . fetch_template('adv_portal_topposters') . '";');
eval('$this->portal_array["$module_row[id]"]["$module_row[colum]"] = "' . fetch_template('adv_portal_topposters') . '";');
?>
Ich hab es auch mit $globaltemplates probiert, leider ohne Erfolg.
Was mache ich da falsch?
2.
Ein Wunsch wäre, ein vordefiniertes Shell Template, ähnlich vba, anzubieten.
Hier mein Vorschlag:
HTML Code:
<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<thead>
<tr>
<td class="tcat">
<a href="#top" onclick="return toggle_collapse('module_$module_row[id]')" style="float:right"><img alt="" border="0" id="collapseimg_module_$module_row[id]" src="$stylevar[imgdir_button]/collapse_tcat$collapseimg.gif" /></a>
Hier die Variable $vbcms_title
</td>
</tr>
</thead>
<tbody id="collapseobj_module_$module_row[id]" style="$collapse">
<tr>
<td class="alt1">
<div class="smallfont">
Hier die Variable $vbcms_output
</div>
</td>
</tr>
</tbody>
</table>
<br />
Gruß Stöbi
|

10.12.2006, 17:26
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
Nimm doch den Hook vbcms_init_start
PS. Das Template Portal_module_bbcode ist übrigends so ähnlich.
Hook vbcms_init_start
Code:
$globaltemplates = array(
'adv_portal_topposters',
'adv_portal_topposters_bit',
);
|

10.12.2006, 17:29

10.12.2006, 17:31
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
|
Hab mein Beitrag editiert.
|

10.12.2006, 17:34

10.12.2006, 17:36
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
Steht in meinem editierten Beitrag. 
|

10.12.2006, 17:51
|
|
 |
Quote: |
 |
|
|
 |
Originally Posted by Christian
|
 |
|
|
|
|
|
|
|
|
Steht in meinem editierten Beitrag.
|
|
 |
|
 |
|
Für Top Posters meiner Meinung nach nicht zu gebrauchen. Da das Template
ja noch ein weiteres Templates aufruft, oder ich sehe das zu kompliziert.
In meiner Vorstellung wäre das so:
PHP Datei angeben.
Wunsch nach Shell Template mit Ja bestätigen
Titel des Shell Templates: Top Posters
Shell Template Name: Portal_top_posters (Portal_ vorgegeben)
Inhalt: $top_stats
In $top_stats ist der output, der aus der PHP Datei entnommen wird, wo ein
weiteres Template zum tragen kommt:
PHP Code:
$top_posters = $db->query("SELECT * FROM ".TABLE_PREFIX."user ORDER BY posts DESC LIMIT $limit");
while($top_poster = $db->fetch_array($top_posters))
{
eval('$top_stats[\'adv_portal_topposters_bit\'] .= "' . fetch_template('adv_portal_topposters_bit') . '";');
}
Gruß Stöbi
|

10.12.2006, 17:51
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
Mach es so.
PHP Code:
// ### TOP STATS ########################################
$limit = 20;
// Title
$module_row['name'] = 'My Title';
$top_posters = $db->query_read_slave("
SELECT *
FROM ".TABLE_PREFIX."user
ORDER BY posts
DESC LIMIT $limit
");
while($top_poster = $db->fetch_array($top_posters))
{
$module_row['modulebbcode'] .= '<div>' . $top_poster['userid'] . ' etc. ...</div>';
}
$db->free_result($top_posters);
eval('$this->portal_array["$module_row[id]"]["$module_row[colum]"] = "' . fetch_template('Portal_module_bbcode') . '";');
unset($top_poster);
|

10.12.2006, 17:53
|
|
Du bist zu schnell, das mache ich ja momentan so. Deswegen ja auch mein Vorschlag.
Gruß Stöbi
|

10.12.2006, 17:56
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
Beitrag editiert. 
|

10.12.2006, 18:12
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
Nochmal was anderes, wenn du die Templates im Modul einträgst sind sie automatisch im Cache, hatte ich ganz vergessen zu erwähnen. 
|

10.12.2006, 18:36
|
|
 |
Quote: |
 |
|
|
 |
Originally Posted by Christian
|
 |
|
|
|
|
|
|
|
|
Nochmal was anderes, wenn du die Templates im Modul einträgst sind sie automatisch im Cache, hatte ich ganz vergessen zu erwähnen.
|
|
 |
|
 |
|
Könntest du mir bitte vielleicht noch einmal helfen?
Ich habe immer noch meine Probleme mit der richtigen Setzung von ' oder ", und bekomme die Variablen nicht ausgegeben.
Code:
<?php
// ### TOP STATS ########################################
$limit = 20;
// Title
$module_row['name'] = 'Top Posters';
$top_posters = $db->query_read_slave("
SELECT *
FROM ".TABLE_PREFIX."user
ORDER BY posts
DESC LIMIT $limit
");
while($top_poster = $db->fetch_array($top_posters))
{
$module_row['modulebbcode'] .= '<div style="padding-top: 1px; padding-bottom: 1px" class="smallfont">• <a href="$vboptions[bburl]/member.php?u=$top_poster[userid]">$top_poster[username]</a> ($top_poster[posts])</div>';
}
$db->free_result($top_posters);
eval('$this->portal_array["$module_row[id]"]["$module_row[colum]"] = "' . fetch_template('Portal_module_bbcode') . '";');
unset($top_poster);
?>
Die rot markierte Zeile kriege ich nicht im Griff, so das mir der Username und die Anzahl Posts ausgegeben werden.
Momentan schauts so aus:
$top_poster[username] ($top_poster[posts])
Gruß Stöbi
|

10.12.2006, 18:44
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
Aber gelesen, dass die Templates automatisch im Cache sind sobald du sie im AdminCP beim Modul einträgst haste oder?
PHP Code:
$module_row['modulebbcode'] .= '<div style="padding-top: 1px; padding-bottom: 1px" class="smallfont">• <a href="' . $vboptions['bburl']. '/member.php?u=' . $top_poster['userid'] . '">' . $top_poster['username'] . '</a> (' . $top_poster['posts'] . ')</div>';
|

10.12.2006, 18:50
|
|
Auch backe, habe ich das kompliziert gemacht, schau mal:
PHP Code:
//$module_row['modulebbcode'] .= '<div style="padding-top: 1px; padding-bottom: 1px" class="smallfont">' . '• ' . '<a href=" . $vboptions[bburl]/member.php?u=$top_poster[userid] . ">' . $top_poster[username]. '</a>' . ' (' . $top_poster[posts] . ')' . '</div>';
Das mit dem Cache ist eine saubere Sache, konnte ich das Plug-in dank deinem Hinweis wieder killen.
So, nun werde ich mich ans exportieren, löschen und wieder importieren machen und wenn alles klappt, hätte wir schon einmal das erste Modul mit deiner Hilfe
Danke
Gruß Stöbi
|

10.12.2006, 18:58
 |
Web Design
|
|
Join Date: 12.2003
Location: In Spocks Quartier
Age: 34
Posts: 16,869
Rep Power: 10
|
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
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.
HTML code is Off
|
|
|
|