2013-10-22 5 views
0

Я настроил «paginating» для сайта, над которым я работаю, на котором 4 страницы отображаются на странице. Работает отлично. Теперь я хотел бы настроить ссылки в верхней части страницы, чтобы, в зависимости от количества сообщений на странице, ссылки менялись.Как обрабатывать увеличивающиеся значения из нижней части страницы для операций в верхней части той же страницы

1) Если вы находитесь на первой странице, а их менее 4 сообщений, ссылки «предыдущий» и «следующий» выделены серым цветом.

2) Если вы на первой странице и есть 4 сообщения, но есть ТОЛЬКО четыре сообщения, чтобы отобразить общее количество, тогда ссылки «предыдущий» и «следующий» выделены серым цветом.

3) Если вы находитесь на первой странице и есть 4 сообщений, но больше сообщений для рендеринга, «предыдущего» неактивна, «ряд» является активной ссылкой переносит Вас на следующую страницу

Типичная логика. Фокус в том, что если вы на последней странице результатов, и там есть больше сообщений, обе ссылки должны быть доступны для кликов. Если нет, то «следующий» должен быть выделен серым цветом. Кроме того, если на странице меньше 4 сообщений, но вы не на странице 1, чем «предыдущий» должен быть доступен кликабельно, но «следующий» должен быть выделен серым цветом.

Итак, я пытаюсь найти лучший способ справиться с этим. На моей странице обработанных сообщений есть функция увеличения, которая подсчитывает сообщения ($ countposts), но она находится внизу страницы, а значение нужно в верхней части страницы, чтобы определить условие для применения. Думаю ли я об этом правильно, или я могу сделать что-то гораздо проще?

+1

_ "Хитрость заключается в том, что если вы на последней странице результатов поиска, и есть больше сообщений, обе ссылка должна быть clickable. "_ Если есть больше сообщений, значит, вы не на последней странице. Попробуйте класс разбиения на страницы в Google. Есть миллион, чтобы выбрать. – j08691

ответ

1

Один (часто используется) решение буферизация вывода (http://php.net/manual/en/book.outcontrol.php):

<?php 
ob_start(); 
// All output will be buffered 

$count = 0; 
while($post = get_post()) { // or something lik that 
    $count++; 
    ?> 
    <h2><?= $post->title ?></h2> 
    <? 
} 

$content = ob_get_clean(); // Turn off buffering and store output in $content 

// Generate navigation here 
if ($count < 4) { 
    echo "No navigation"; 
} 

// Echo the content from the buffer 
echo $content 
+0

Это полностью трюк, но я добавил и другие предложения. Спасибо, Питер. – Kimomaru

Смежные вопросы