[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод в нужное место шаблона
Jokeryuga
делаю сайт на pyrocms и встречается частенько такая проблема(хотя она не с cms связана...)вообщем у меня есть такой вот плагин,который добавляет последние поступления в таблице(6 последних в 2 столбца и 3 строчки)...как я понял без return мне не обойтись(((а как в него столько всего впихнуть и вывести правильно незнаю(подскажите пожалуйста.
вот собственно весь код(использовал echo для проверки...):
function view_category()
{
$limit = 6;
$qnewproduct = "SELECT name,price FROM shop_items order by date DESC limit $limit";
$result = $this->db->query($qnewproduct);
$row = $result->num_rows;
$newproduct = $result->result_array();
$i=0;
echo '<table>';
foreach($newproduct as $new)
{
if($i!=1)
{
echo '<tr>';
echo '<td>'.$new['name'].'</td>';
$i++;
}
else
{
echo '<td>'.$new['name'].'</td>';
echo '</tr>';
$i=0;
}
}

echo '</table>';
}

при выполнении всё выводится поверх шаблона...т.е. как мне всё что вижу с echo увидеть с return?
извиняюсь заранее за такой вопрос...и прошу не ругаться,а помочь



Спустя 2 минуты, 57 секунд (26.11.2011 - 00:23) TranceIT написал(а):
Переменной или массиву присвоить вывод, потом переменную\массив вернуть из функции и вывести результат ее работы.

Спустя 21 час, 56 минут, 24 секунды (26.11.2011 - 22:20) Jokeryuga написал(а):
Цитата (TranceIT @ 25.11.2011 - 21:23)
Переменной или массиву присвоить вывод, потом переменную\массив вернуть из функции и вывести результат ее работы.

а как эо правильно сделать???пробую вот так:
$perem="
echo '<table>';
foreach(
$newproduct as $new)
{
if(
$i!=1)
{
echo '<tr>';
echo '<td>'.
$new['name'].'</td>';
$i++;
}
else
{
echo '<td>'.
$new['name'].'</td>';
echo '</tr>';

$i=0;
}
}
echo '</table>';"
;
return $perem;

выводит ошибку
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\xampp\htdocs\pyrocms\addons\shared_addons\plugins\new_item.php on line 42

Спустя 4 минуты, 23 секунды (26.11.2011 - 22:24) TMake написал(а):
ob_start();
view_category();
$result = ob_get_contents();

Спустя 7 минут (26.11.2011 - 22:31) Jokeryuga написал(а):
Цитата (stepan @ 26.11.2011 - 19:24)
ob_start();
view_category();
$result = ob_get_contents();

извините пожалуйста,но немогли бы Вы расшифровать...а то с этим туговато...

Спустя 11 минут, 31 секунда (26.11.2011 - 22:43) TMake написал(а):
Jokeryuga почитай мануал для чего нужен ob_start(); ob_get_contents();
во вторых посмотри на подсветку на свою здесь тебе в переменную нужно загонять только html, а ты зафигачил все туда
p.s. вообще посмотри как реализуются другие готовые продукты - т.е. шаблон должен быть шаблоном.

Спустя 20 минут, 43 секунды (26.11.2011 - 23:03) Jokeryuga написал(а):
Цитата (stepan @ 26.11.2011 - 19:43)
Jokeryuga почитай мануал для чего нужен ob_start(); ob_get_contents();
во вторых посмотри на подсветку на свою здесь тебе в переменную нужно загонять только html, а ты зафигачил все туда
p.s. вообще посмотри как реализуются другие готовые продукты - т.е. шаблон должен быть шаблоном.

просто буквально понял совет,шедший перед Вашим...я пробовал загонять в переменную только html, но там же ещё и php присутствует...как потом это всё выводить???(функции которые посоветовали очень интересные,но для такого сайта как у меня это наверно будет очень сложно).может всё таки как то можно это всё запихнуть в return???(опять же как Вы говорите загнать в переменную html и как то захватить ещё и php...)помогите пожалуйста.

Спустя 11 минут, 45 секунд (26.11.2011 - 23:15) TMake написал(а):
function view_category()
{
$limit = 6;
$qnewproduct = "SELECT name,price FROM shop_items order by date DESC limit $limit";
$result = $this->db->query($qnewproduct);
$row = $result->num_rows;
$newproduct = $result->result_array();
$i=0;
$result = '<table>';
foreach($newproduct as $new)
{
if($i!=1)
{
$result .= '<tr>';
$result .= '<td>'.$new['name'].'</td>';
$i++;
}
else
{
$result .= '<td>'.$new['name'].'</td>';
$result .= '</tr>';
$i=0;
}
}

return $result.'</table>';
}


Вариант 2:

function view_category()
{
$limit = 6;
$qnewproduct = "SELECT name,price FROM shop_items order by date DESC limit $limit";
$result = $this->db->query($qnewproduct);
$row = $result->num_rows;
$newproduct = $result->result_array();
$i=0;
echo '<table>';
foreach($newproduct as $new)
{
if($i!=1)
{
echo '<tr>';
echo '<td>'.$new['name'].'</td>';
$i++;
}
else
{
echo '<td>'.$new['name'].'</td>';
echo '</tr>';
$i=0;
}
}

echo '</table>';
}

function qwe()
{
ob_start();
view_category();
return ob_get_contents();
}

Спустя 34 минуты, 1 секунда (26.11.2011 - 23:49) hookman написал(а):
stepan, зачем во втором варианте в foreach четыре echo? Считается дурным тоном. Всё в строку а после цикла echo wink.gif

Спустя 3 часа, 48 минут, 48 секунд (27.11.2011 - 03:38) vital написал(а):
2stepan
Ты бы человеку лучше про шаблонизатор рассказал - он в цмс-то точно есть,
а ты ему говнокод плодить помогаешь.

Спустя 17 часов, 36 минут, 35 секунд (27.11.2011 - 21:15) Jokeryuga написал(а):
Цитата (stepan @ 26.11.2011 - 20:15)
function view_category()
{
$limit = 6;
$qnewproduct = "SELECT name,price FROM shop_items order by date DESC limit $limit";
$result = $this->db->query($qnewproduct);
$row = $result->num_rows;
$newproduct = $result->result_array();
$i=0;
$result = '<table>';
foreach($newproduct as $new)
{
if($i!=1)
{
$result .= '<tr>';
$result .= '<td>'.$new['name'].'</td>';
$i++;
}
else
{
$result .= '<td>'.$new['name'].'</td>';
$result .= '</tr>';
$i=0;
}
}

return $result.'</table>';
}


Вариант 2:

function view_category()
{
$limit = 6;
$qnewproduct = "SELECT name,price FROM shop_items order by date DESC limit $limit";
$result = $this->db->query($qnewproduct);
$row = $result->num_rows;
$newproduct = $result->result_array();
$i=0;
echo '<table>';
foreach($newproduct as $new)
{
if($i!=1)
{
echo '<tr>';
echo '<td>'.$new['name'].'</td>';
$i++;
}
else
{
echo '<td>'.$new['name'].'</td>';
echo '</tr>';
$i=0;
}
}

echo '</table>';
}

function qwe()
{
ob_start();
view_category();
return ob_get_contents();
}

огромное спасибо!!!всё как надо)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.