Ascend
Threadersteller
Dabei seit: 04.09.2008
Ort: Bayern
Alter: 55
Geschlecht:
|
Verfasst Mo 07.03.2011 14:12
Titel Problem mit Pagebrowser |
|
|
servus miteinander.
ich habe ein problem mit dem pagebrowser auf meiner seite.
ich betreibe einen webkatalog (ja ich weiß ^^).
das war mal 2007 eine test. da habe ich mir von data becker portal2date gekauft. nun ist er aber mit einigen links bestückt und ich möchte ihn auch nicht mehr einfach so löschen.
jetzt habe ich ihn erstmal aus dem alten tabellenlayout in ein valides xhtml umgetüftelt (anders kann man es nicht sagen, da das ganze teil sehr kompliziert geschrieben ist - fertig bin ich auch noch nicht ganz. die unterseiten müssen noch validiert werden).
dabei ist mir jetzt aufgefallen, das beim pagebrowser die einträge falsch berechnet werden.
zb hat eine kategorie 800 einträge. stelle ich auf "20 einträge pro seite anzeigen", werden 2 seiten gefüllt und alle anderen laufen ins nirvana. werden nicht angelegt. jetzt habe ich auf 90 einträge pro kategorie gesetzt, damit wenigstens die ersten beiden seiten paar links haben. die 3. seite wird nicht mehr angelegt.
da ich nicht so der crack in sachen php bin, wollte ich hier mal fragen, ob mir jemand helfen kann.
ich habe die php dateien durchsucht und bin auf folgende funktion gestoßen wo ich meine, die hat was damit zu tun. vor allem ab der foreach schleife (denke ich mal )
Code: |
<?php
function update_cats($cat_id = 'all', $start = 0) {
global $db, $tpl, $cat_row_cache, $prefix, $options, $page_id, $page, $tr, $new, $content, $this_cat, $output, $show_cat_cats, $show_cat_links, $show_cat_sponsors, $row, $catnav, $show_cat_pagelink, $update_cats_output, $cat_count, $static_max_update, $safe_mode, $lang;
static $static_error = false;
if (!$safe_mode) {
$cache_cats = array();
$cat_row_cache = array();
if ($cat_id == 'all') {
$cat_result = $db->query("SELECT cat_id FROM ".$prefix."cats LIMIT $start, $static_max_update");
while ($cat_row_cache[] = $db->fetch_array($cat_result));
} else {
$cat_row_cache[] = array('cat_id' => $cat_id);
}
foreach ($cat_row_cache as $cat_row) {
$saved = true;
$count = $db->query_fetch("SELECT count(*) as links FROM ".$prefix."links WHERE parent_cat_id = '".$cat_row['cat_id']."' AND (link_type = 1 OR link_type = 2 OR link_type = 4) AND activated = 1 AND deactivated = 0");
if ($count['links'] > $options['pagelink']) {
$pages = $count['links'] / $options['pagelink'];
if ($pages != floor($pages)) {
$pages = floor($pages) + 1;
}
} else {
$pages = 1;
}
$catname = convert_catname($cat_row['cat_id']);
for ($i = 1; $i <= $pages; $i++) {
$fp = @fopen($options['path'].'/'.$cat_row['cat_id'].'-'.$i.'-'.$catname.'.php', 'w');
$data = "<?php\n";
$data .= "\$cat_id = ".$cat_row['cat_id'].";\n";
$data .= "\$page = ".$i.";\n";
$data .= "require './show_cat.php';\n";
$data .= "?>";
if ($fp) {
fwrite($fp, $data, strlen($data));
fclose($fp);
} else {
$saved = false;
$static_error = true;
}
}
if ($cat_row['cat_id']/* && isset($_REQUEST['acp'])*/) {
if ($saved == false) {
$update_cats_output .= sprintf($lang->get('Kategorie Nr. %s <b>nicht</b> gespeichert...').'<br />', $cat_row['cat_id']);
} else {
$update_cats_output .= sprintf($lang->get('Kategorie Nr. %s erfolgreich gespeichert...').'<br />', $cat_row['cat_id']);
}
}
}
if ($cat_count > $start+$static_max_update) {
if ($static_error == false) {
$update_cats_output .= '<META HTTP-EQUIV=Refresh CONTENT="0; URL=./static.php?solo='.$_GET['solo'].'&cat_count='.$cat_count.'&start='.($start+$static_max_update).(isset($_REQUEST['acp']) ? '&acp' : '').'">';
} else {
$update_cats_output .= '<br /><br /><b>'.$lang->get('Es sind Fehler aufgetreten!').'</b>';
}
}
$content = "";
$output = "";
// Security
if (file_exists($options['path'].'/-1-.php')) {
@unlink($options['path'].'/-1-.php');
}
}
}
?>
|
vielleicht wolt ihr euch das selber mal anschauen: [url="http://www.weblinksportal.de/297-1-firmen.php"]hier liegt der hund begraben[/url] (unten der pagebrowser) seite 3 läuft ins leere.
das läuft so mit den seiten:
seite eins ist 297-1-firmen.php
seite zwei 297-2-firmen.php
und seite 3 sollte dann 297-3-firmen.php heißen. diese wird aber nicht angelegt.
was müsste ich ändern, damit alles ordentlich berechnet wird?
|
|