Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как разбить на две колонки, :-)
 
 автор: tetris-x   (21.06.2005 в 13:05)   письмо автору
 
 

Есть код, в нем параметр ({$subcategories_to_be_shown[j][1]}) - это наименования книг они отображаются в строчку (по вертикали) как сделать так чтобы разбивалось в два (три) столбика.


<td width="995" valign=top>{* description
*} {$selected_category.description}
<p> {* show subcategories *} {section name=i loop=$subcategories_to_be_shown}
<a class=standard href="index.php?categoryID={$subcategories_to_be_shown[j][0]}">{$subcategories_to_be_shown[j][1]}</a>
<br>
{/section} </td>

   
 
 автор: ms.Net   (21.06.2005 в 13:16)   письмо автору
 
   для: tetris-x   (21.06.2005 в 13:05)
 

Если на два столбика, то самое простое что приходит на ум это проверка на чёт/нечет. Чётные выводим в правый столбик, нечётные соответственно в левый.

   
 
 автор: cheops   (21.06.2005 в 13:20)   письмо автору
 
   для: tetris-x   (21.06.2005 в 13:05)
 

Можно прибегнуть к следующему приёму
<?php
  
// Начинаем таблицу
  
echo "<table>"
  
// $count число элементов в $subcategories_to_be_shown
  
$final 0
  for(
$i 0$i<$count$i++)
  {
    if(
$final == 0) echo "<tr>"
    echo 
"<td>".$subcategories_to_be_shown[$i][0]."</td>"
    
$final++; 
    if(
$final == 2
    { 
       echo 
"</tr>"
       
$final 0
    }   
  }
  
// Заканчиваем таблицу
  
echo "</table>"
?>


http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=366

   
 
 автор: cheops   (21.06.2005 в 13:21)   письмо автору
 
   для: cheops   (21.06.2005 в 13:20)
 

Изменяя цифру 2 в строке
<?php
    
if($final == 2)
?>

можно разбить массив на произвольное число столбцов.

   
 
 автор: ms.Net   (21.06.2005 в 13:30)   письмо автору
 
   для: cheops   (21.06.2005 в 13:21)
 

Хорош приём.

   
 
 автор: tetris-x   (21.06.2005 в 19:29)   письмо автору
 
   для: cheops   (21.06.2005 в 13:20)
 

Этот код надо вставлять непосредственно в код странички или кидать в папку с плагинами.

   
 
 автор: cheops   (21.06.2005 в 19:35)   письмо автору
 
   для: tetris-x   (21.06.2005 в 19:29)
 

Нужно вставлять в код странички... скорее всего. А что за папка с плагинами, плагины от чего?

   
 
 автор: tetris-x   (21.06.2005 в 19:52)   письмо автору
 
   для: cheops   (21.06.2005 в 19:35)
 

Я просто вставил в код, а мне выводится ошибка:
"; echo "
"; $final++; if($final == 2) { echo "
"; $final = 0; (smarty_compiler.class.php, line 417) in z:\home\localhost\www\shop\smarty\smarty_compiler.class.php on line 2062

Fatal error: Smarty: [in category.tpl.html line 62]: syntax error: unrecognized tag: if($final == 0) echo "

".$subcategories_to_be_shown[$i][0]."

Папка с лагинами вот эта \smarty\plugins

   
 
 автор: tetris-x   (21.06.2005 в 22:08)   письмо автору
 
   для: tetris-x   (21.06.2005 в 19:52)
 

Неужели нет другого способа решения этой проблемы?

   
 
 автор: glsv (Дизайнер)   (22.06.2005 в 05:32)   письмо автору
 
   для: tetris-x   (21.06.2005 в 19:52)
 

Вы вставили этот код в файл с расширением html? category.tpl.html?

   
 
 автор: tetris-x   (22.06.2005 в 09:40)   письмо автору
 
   для: glsv (Дизайнер)   (22.06.2005 в 05:32)
 

Да именно туда.

   
 
 автор: tetris-x   (22.06.2005 в 09:47)   письмо автору
 
   для: tetris-x   (22.06.2005 в 09:40)
 

Мне тут посоветовали плагин php, скажите мне куда всавлять значение чтобы шло разделение на столбики, всего в этом коде три столбика, но можно сделать любое количество.

<table border="1">
{section name=cont loop=$test}
<tr>
<td>{$test[cont]}</td>
{section_next name=cont}
<td>{$test[cont]}</td>
{section_next name=cont}
<td>{$test[cont]}</td>
</tr>
{/section}
</table> (эта таблица вставляется в код странички)

а этот плагин кидается в папку plugin.

<?php
// ./plugin/function.section_next.php
function smarty_function_section_next($params, &$smarty)
{

if (!isset($smarty->_sections[$params["name"]])){
$smarty->trigger_error("section_next: section '".$params["name"]."' not found");
return;
}
$smarty->_sections[$params["name"]]['index'] += $smarty->_sections[$params["name"]]['step'];
$smarty->_sections[$params["name"]]['iteration']++;
$smarty->_sections[$params["name"]]['rownum'] = $smarty->_sections[$params["name"]]['iteration'];
$smarty->_sections[$params["name"]]['index_prev'] = $smarty->_sections[$params["name"]]['index'] - $smarty->_sections[$params["name"]]['step'];
$smarty->_sections[$params["name"]]['index_next'] = $smarty->_sections[$params["name"]]['index'] + $smarty->_sections[$params["name"]]['step'];
$smarty->_sections[$params["name"]]['first'] = ($smarty->_sections[$params["name"]]['iteration'] == 1);
$smarty->_sections[$params["name"]]['last'] = ($smarty->_sections[$params["name"]]['iteration'] == $smarty->_sections[$params["name"]]['total']);
}

?>

   
 
 автор: P@Sol   (22.06.2005 в 09:50)   письмо автору
 
   для: tetris-x   (22.06.2005 в 09:47)
 

видимо завист от этого:


{section_next name=cont} 
<td>{$test[cont]}</td> 

   
 
 автор: glsv (Дизайнер)   (22.06.2005 в 12:43)   письмо автору
 
   для: tetris-x   (22.06.2005 в 09:40)
 

> Да именно туда.
Но ведь вам дали пример php-кода. Он не будет выполнен в файлах с расширением html.

Вы используете шаблоны smarty. Здесь я не смогу вам помочь, т.к. не работал с ними. У них свой внутренний язык и синтаксис.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования