Mam sobie funkcję:
Kod
function nowe_pliki($ilosc_plikow)
{
$path = "/var/www/html/pafiledb";
$template = "{INFO} - <a title=\"{FULLFILENAME}\" class=\"link\" href=\"{FILELINK}\">{SHORTFILENAME}</a><br />";
require $path. "/includes/mysql.php";
$pafiledb_sql->connect($db);
$config = $pafiledb_sql->query($db,"SELECT * FROM $db[prefix]_settings",1);
{
$result = $pafiledb_sql->query($db, "SELECT * FROM $db[prefix]_files ORDER BY file_time DESC LIMIT 0, $ilosc_plikow", 0);
$info = "{DATE}";
$text = "{NAME}";
}
$i = 1;
while ($file = mysql_fetch_object($result))
{
$line = str_replace("{NUMBER}", $i, $template);
$line = str_replace("{FILELINK}", "$config[3]/pafiledb.php?action=file&id=$file->file_id", $line);
$fileline = str_replace("{NAME}", skracaj($file->file_name), $text);
$infoline = str_replace("{DATE}", date("j.m.Y", $file->file_time), $info);
$line = str_replace("{FULLFILENAME}", $file->file_name, $line);
$line = str_replace("{SHORTFILENAME}", $fileline, $line);
$line = str_replace("{INFO}", $infoline, $line);
echo $line;
$i++;
}
}
{
$path = "/var/www/html/pafiledb";
$template = "{INFO} - <a title=\"{FULLFILENAME}\" class=\"link\" href=\"{FILELINK}\">{SHORTFILENAME}</a><br />";
require $path. "/includes/mysql.php";
$pafiledb_sql->connect($db);
$config = $pafiledb_sql->query($db,"SELECT * FROM $db[prefix]_settings",1);
{
$result = $pafiledb_sql->query($db, "SELECT * FROM $db[prefix]_files ORDER BY file_time DESC LIMIT 0, $ilosc_plikow", 0);
$info = "{DATE}";
$text = "{NAME}";
}
$i = 1;
while ($file = mysql_fetch_object($result))
{
$line = str_replace("{NUMBER}", $i, $template);
$line = str_replace("{FILELINK}", "$config[3]/pafiledb.php?action=file&id=$file->file_id", $line);
$fileline = str_replace("{NAME}", skracaj($file->file_name), $text);
$infoline = str_replace("{DATE}", date("j.m.Y", $file->file_time), $info);
$line = str_replace("{FULLFILENAME}", $file->file_name, $line);
$line = str_replace("{SHORTFILENAME}", $fileline, $line);
$line = str_replace("{INFO}", $infoline, $line);
echo $line;
$i++;
}
}
Oraz deklaruję sposób odwołania do funkcji w szablonie (w szablonie [bok.tpl] wpisuję tylko {OSTATNIE_PLIKI}):
Kod
[...]
$ilosc_plikow = "10";
$template->set_file('bok', 'bok.tpl');
$template->set_var(array(
'OSTATNIE_PLIKI' => nowe_pliki($ilosc_plikow)));
$ilosc_plikow = "10";
$template->set_file('bok', 'bok.tpl');
$template->set_var(array(
'OSTATNIE_PLIKI' => nowe_pliki($ilosc_plikow)));
I teraz efekty- kod (funkcja newfiles($show)) działa, ale wynik pojawia się w najmniej oczekiwanym miejscu strony, nie tam gdzie to wstawiłem w szablonie (czyli w akapicie, boczej częsci strony).
Użyłem więc return $line, zamiast echo $line i efektem było wyświetlanie wyniku funkcji w prawidłowym miescu, ale samo zadziałanie funkcji było nieprawidłowe, ponieważ wyświetlało tylko 1 najnowszy plik z pafiledb, a nie tyle ile zadeklarowałem w zmiennej $ilosc_plikow (czyli 10). Natomiast gdy wyrzuciłem return $line poza pętle while efektem było wyświetlanie w pożądanym miejscu 1 najstarszego pliku.
Ja oczywiście chciałbym (najprawdopodobniej z użyciem return, nie echo i możliwe, że z użyciem pętli for zamiast while [nie wiem jak- zgaduję i przypuszczam]) uzyskać efekt wyświetlania tylu plików ile zadeklaruję w tej zmiennej $ilosc_plikow i w miejscu takim, jakim już sobie wybiorę wstawienie tego {OSTATNIE_PLIKI} w szablonie bok.tpl.
Proszę o pomoc, bo sam sobie z tym nie radzę!
P.S wiem, że ten temat razi brakiem kompletnych podstaw i nie potrafię dobrze opisać problemu... nie wiem, czy ktoś go zrozumie i mi pomoże, ale mam nadzieję, że tak, bo męczę się z tym i googluję ponad 3 dni.