X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Вывести результат функции в шаблон
zanner
zanner
Topic Starter сообщение 29.1.2014, 12:11; Ответить: zanner
Сообщение #1


Скажите пожалуйста, как мне вывести результат функции viewPagging() в шаблон после foreach. Сейчас оно мне выводит перед всем шаблоном, прям перед хтмл. А мне нада его как то в шаблон posts закинуть. Сама функция содержит только вывод пагинации.

шаблон posts.php
[PHP]<?
foreach ($this->posts['posts'] as $post) {
?>

<div class="post">
<h2><?=$post['title']?></h2>
<div class="post_image"><img src="http://www.cyberforum.ru/images/blog/<?=$post['avatar']; ?>" alt="Image 01" /><span class="date"><?=$post['date']; ?></span></div>
<p><?=$post['m_desc']; ?></p>
<a href="/posts/view/<?=$post['url'];?>">Читать дальше</a>
</div>


<?
}
//сюда вывести
?>[/PHP]

Саму ф-ю вызываю так:
[PHP]function index() {
$post= new Application_Models_Posts;
$post->page->viewPagging();
$this->show('posts');
[/PHP]

сама функция:
[PHP]
public function viewPagging() {

printf('<div class="pagging">
<ul>');
if (empty($page_next) && empty($page_prev) &&
empty($page_first) && empty($page2left) &&
empty($page1left) && empty($page1right) &&
empty($page2right)) {
$page_next = '';
$page_prev = '';
$page2left = '';
$page1left = '';
$page1right = '';
$page2right = '';
$page_first = '';
}


if ($this->page >3 )
$page_first = '<li><a href="?page=1" target="_parent">First</a></li>';
if ($this->page != 1)
$page_prev = '<li><a href="?page=' . ($this->page - 1) . '" target="_parent">Previous</a></li>';
if ($this->page != $this->num_pages)
$page_next = '<li><a href="?page=' . ($this->page + 1) . ' " target="_parent">Next</a></li>';
if ($this->page - 2 > 0)
$page2left = '<li><a href="?page=' . ($this->page - 2) . '"target="_parent">' . ($this->page - 2) . '</a></li>';
if ($this->page- 1 > 0)
$page1left = '<li><a href="?page=' . ($this->page - 1) . '" target="_parent">' . ($this->page - 1) . '</a></li>';
if ($this->page + 2 <= $this->num_pages)
$page2right = '<li><a href="?page=' . ($this->page + 2) . '" target="_parent">' . ($this->page + 2) . '</a></li>';
if ($this->page+ 1 <= $this->num_pages)
$page1right = '<li><a href="?page=' . ($this->page + 1) . '" target="_parent">' . ($this->page + 1) . '</a></li>';

echo $page_first. $page_prev . $page2left . $page1left . '<li><a class="checked"><b>' . $this->page . '</a></b></li>' . $page1right . $page2right . $page_next;
printf('
</ul>
</div> ');


}

[/PHP]
Помогите пожалуйста. Спасибо.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Degradator
Degradator
сообщение 29.1.2014, 14:30; Ответить: Degradator
Сообщение #2


<div class="post">
<h2><?=$post['title']?></h2>
<div class="post_image"><img src="http://www.cyberforum.ru/images/blog/<?=$post['avatar']; ?>" alt="Image 01" /><span class="date"><?=$post['date']; ?></span></div>
<p><?=$post['m_desc']; ?></p>
<a href="/posts/view/<?=$post['url'];?>">Читать дальше</a>
</div>


Вот это все надо сохранить в переменную. Есть два варианта - сделать все это как текст, или использовать ob_start() как в тут http://www.html.by/threads/32926-Poisk-fatal-error
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 29.1.2014, 14:48; Ответить: alexdrob
Сообщение #3


функции должны возвращать текст в первую очередь. Вы можете добавить параметр, который сделает сразу вывод текста при вызове функции, по желанию, но функции нужно делать так, что бы они возвращали текст.

Если функция вренёт текст
[PHP]function foo()
{
return 'bar';
}[/PHP]
тогда вы можете его обработать как то, получив в переменную или вывести без проблем.
Но если функция сразу выводит текст, вам придётся применять остыли типа ob_start для вылавливания текста.
имхо, гораздо правильней писать функции так, что бы они возвращали значение а не выводили его сразу.

ещё такой момент, помещать хтмл код внутрь функций, тоже считается дурным тоном. что если вам нужно изменить шаблон? дизайн сайта? или каую то часть?
Вам придётся править пхп код!
а это должно решаться правками шаблона.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
zanner
zanner
Topic Starter сообщение 29.1.2014, 15:28; Ответить: zanner
Сообщение #4


(Degradator @ 29.1.2014, 17:30) *
Вот это все надо сохранить в переменную. Есть два варианта - сделать все это как текст, или использовать ob_start() как в тут http://www.html.by/threads/32926-Poisk-fatal-error


Нет, то не нужно в переменную, потому что то и есть шаблон.
(alexdrob @ 1.1.1970, 07:00)
За совет спасибо, знал что так нельзя, и на счет переменной. будем переписывать.


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
29 freeax 4811 17.4.2024, 1:19
автор: sergio11
Открытая тема (нет новых ответов) Накрутка ПФ для любых сайтов. Быстрый результат
14 creatos 6514 10.3.2024, 18:06
автор: creatos
Открытая тема (нет новых ответов) Нужно отрисовать шаблон сайта
2 karambas 3665 6.7.2022, 20:27
автор: Freedo
Открытая тема (нет новых ответов) Сколько стоит сделать шаблон для WP?
изучаю цены
3 Palundra 2402 2.4.2022, 3:06
автор: WebSuccessful
Открытая тема (нет новых ответов) Установить Wordpress + iBid шаблон
0 wep 4295 23.11.2021, 13:54
автор: wep


 



RSS Текстовая версия Сейчас: 19.4.2024, 19:22
Дизайн