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

Таблица для характеристик

  • 23 марта 2015 г.
  • Делаю отображение характеристик в таблице.
    Беда в том, что характеристики вызываются обработкой и я могу прописать ячейки только одного ряда таблицы.
    Таблица, конечно выходит, но последующие ряды таблицы клонируются из первого, при таком раскладе нет возможности оформить таблицу скажем зеброй.
    Может есть какой хитрый алгоритм?

    shop.view.param.php

    Код
    if (!defined('DIAFAN'))
    {
    include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
    }

    foreach ($result["rows"] as $param)
    {
    echo '<table class=table>

    <tr>

    <th>';

    echo '<strong class="'.($param["type"] == 'title' ? 'shop_param_title' : '').'">'.$param["name"] . '</strong>';

    if ($param["value"])
    {
    echo ': ';
    echo '</th>';
    if($param["type"] == "attachments")
    {


    foreach ($param["value"] as $a)


    {
    if ($a["is_image"])
    {
    if($param["use_animation"])
    {
    echo ' <a href="'.$a["link"].'" rel="prettyPhoto[gallery'.$result["id"].'shop]"><img src="'.$a["link_preview"].'"></a> <a href="'.$a["link"].'" rel="prettyPhoto[gallery'.$result["id"].'shop_link]">'.$a["name"].'</a>';
    }
    else
    {
    echo ' <a href="'.$a["link"].'"><img src="'.$a["link_preview"].'"></a> <a href="'.$a["link"].'">'.$a["name"].'</a>';
    }
    }

    else
    {
    echo ' <a href="'.$a["link"].'">'.$a["name"].'</a>';
    }
    }
    }
    elseif($param["type"] == "images")
    {

    foreach ($param["value"] as $img)

    {

    echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'">';

    }
    }
    elseif (!empty($param["link"]))
    {

    echo '<a href="'.BASE_PATH_HREF.$param["link"].'">'.$param["value"].'</a>';
    }

    elseif (is_array($param["value"]))

    {

    echo '<td>';
    foreach ($param["value"] as $p)

    {
    if ($param["value"][0] != $p)

    {
    echo ', ';

    }
    if (is_array($p))

    {
    if ($p["link"])

    {

    echo '<a href="'.BASE_PATH_HREF.$p["link"].'">'.$p["name"].'</a>';

    }
    else
    {
    echo $p["name"];

    }
    }
    else
    {

    echo $p;


    }

    }

    echo '</td>';
    }

    else
    {

    echo '<td>';
    echo $param["value"];


    echo '</td>

    </tr>


    </table>';

    }
    //единицы измерения
    if(! empty($param["measure_unit"]) && $param["type"] == 'numtext')
    {
    echo ' '.$param["measure_unit"];
    }
    }

    if($param["text"])
    {
    echo '<div class="shop_param_text">'.$param["text"].'</div>';
    }


    }
  • 23 марта 2015 г.
  • echo '<table class=table>

    надо вынести за пределы foreach ($result["rows"] as $param)

    а то много таблиц будет
  • 23 марта 2015 г.
  • Задать переменную.
    В цикле увеличивать.
    Четные значения одним стилем.
    Нечетные другим.
    • 23 марта 2015 г.
    • Поподробней пожалуйста.
      Пытаюсь вообразить и вот, что на воображал
      Получается, что будет добавятся индекс к каждому последующему классу генерированной (клонированной) строки таблицы?
      • 23 марта 2015 г. , редакция: 23 марта 2015 г.
      • Если просто надо разукрасить таблицу в полоску, то используйте псевдоклассы http://htmlbook.ru/css/nth-child

        если к каждой строке свой класс, то можно перебором id

        если надо класс перебрать, то можно чуть поправить код выше

        Код

        echo '<table class="table">';

        $tr = 0;

        foreach ($result["rows"] as $param)
        {
        $tr = $tr+1;
        if($tr == "1") {
        echo '<tr class="style_1">';
        } else {
        echo '<tr class="style_2">';
        $tr = 0;
        }

        //далее все остальное
  • 23 марта 2015 г.
  • Тогда рушится структура таблицы.
    Переместил класс выше, если я Вас правильно понял.
  • 23 марта 2015 г.
  • Почему то при переносе класса "table" пропадает footer
    Код
    echo '<table class="table">';
    $tr = 0;



    foreach ($result["rows"] as $param)
    {


    Возможно из за бардака в shop.view.id.php
    Буду разбираться.
    • 23 марта 2015 г.
    • можно скачать firebug для мозиллы (он там лучше работает) и посмотреть или через мозиллу открыть и нажать crtl+U и он покажет красным тег, который не закрыт или закрыт неверно
    • 23 марта 2015 г.
    • Код что я привел, работает с файлом что я прикрепил выше, а не с тем, что было у вас
      • 23 марта 2015 г.
      • Я работал именно с указанным Вами файлом, попробую с firebug, он у меня установлен.
        • 23 марта 2015 г.
        • может еще если в админке авторизован, то там вставляется <span></span> может он и рушит структуру, можно без авторизации глянуть
          • 23 марта 2015 г.
          • Без авторизации так же.
            Буду в четверг разбираться, много уж событий за неделю, нет концентрации :)
            Смотрел, через firebug, много красного кода (наверное это и есть ошибки в алгоритме?), начинается с блока "комментарии", несколько раз безосновательных закрытий блока, хотя в файлах я такого не обнаружил, вроде все нормально. Но может суетная неделя, невнимательность.
  • 24 марта 2015 г.
  • Виной оказался тег "table", заменил на "id", перекосы стабилизировались

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум