Как ограничить высоту ячейки в таблице?

Тема в разделе "Shop-script", создана пользователем WWWolf, 24 апр 2008.

Статус темы:
Закрыта.
Модераторы: kadurinho
  1. WWWolf

    WWWolf Писатель

    Регистр.:
    18 мар 2008
    Сообщения:
    5
    Симпатии:
    1
    В Shop-Script у меня описание для некоторых товаров очень длинное, а оно у меня отображается в списке товаров. Таким образом, некоторые товары занимают слишком много места. Как ограничить высоту ячейки таблицы, чтобы текст, который превышает максимальную высоту, обрезался. Даже лучше - ограничить число символов в ячейке.
     
  2. denis-z

    denis-z Создатель

    Регистр.:
    21 апр 2007
    Сообщения:
    25
    Симпатии:
    8
    Меня тоже интересует как ограничить вывод по кол-ву символов, т.к. описания длинные.
     
  3. Caurus

    Caurus

    Регистр.:
    21 фев 2008
    Сообщения:
    348
    Симпатии:
    285
    Очень легко!

    надо добавить |truncate:50 где 50 это количество символов, вот пример:
    PHP:
    <tr>
                <
    td colspan=2 bgcolor="#FFFFFF">
                    <
    div align="justify">{$product_info.brief_description|truncate:50}
                </
    div></td>
            </
    tr>
    это кусок файла product_brief.tpl.html, а именно часть, в которой выводится описание товара так вот там стоит ограничение на 50 символов т.е. 47 символов и затем ... (три точки) и так вставляем в любое место, куда хотите, что б обрезалось. Количество символов неограниченно хоть 50 хоть 150. Успехов!
     
    SSSonar, kibi, Shuriken555 и 4 другим нравится это.
  4. fominsa

    fominsa

    Регистр.:
    12 фев 2008
    Сообщения:
    234
    Симпатии:
    229
    прикольно а я в php сделал тоже самое через substr
     
  5. tolik3

    tolik3 Постоялец

    Регистр.:
    10 июн 2007
    Сообщения:
    85
    Симпатии:
    4
    Можно ограничить TEXTAREA для вывода нужной длиной!
     
  6. kibi

    kibi Создатель

    Регистр.:
    27 авг 2007
    Сообщения:
    33
    Симпатии:
    4
    После использования "truncate" в коде файла "home.tpl.html" шаблон разъехался :nezn:
    PHP:
       <tr>
         <
    td colspan="2"><div align="left">{$special_offers[i][5]|truncate:150}</div></td>     
       </
    tr>
    Подскажите плиз, как сделать чтобы шаблон не разлезался.:thenks:
    Скрины:
    До
    [​IMG]

    После
    [​IMG]
     
  7. Caurus

    Caurus

    Регистр.:
    21 фев 2008
    Сообщения:
    348
    Симпатии:
    285
    Не мог он от этого так разъехаться... Может дело в другом? если убрать truncate:150 то все норм становится? Скажи номер шаблона или прикрепи свой home.tpl.html
     
  8. kibi

    kibi Создатель

    Регистр.:
    27 авг 2007
    Сообщения:
    33
    Симпатии:
    4
    Вот мой home.tpl.html из шаблона tmpl0
    без truncate:150 все норм
    PHP:
    {* front-end homepage*}

    {
    $smarty.const.STRING_GREETINGS}

    <
    p>
    <
    table width="100%" border="0" cellpadding="5">
    {
    section name=i loop=$root_categories}
    {if 
    $smarty.section.i.index is div by 2}<tr>{/if}
    <
    td width="1%" align="center" valign="top">
        {if 
    $root_categories[i][3ne ""}<a href="index.php?categoryID={$root_categories[i][0]}"><img border=0 src="products_pictures/{$root_categories[i][3]}alt="{$root_categories[i][1]|replace:'"':'&quot;'}">{/if}
    </
    td>
    <
    td width="49%" valign="top">
            <
    a href="index.php?categoryID={$root_categories[i][0]}class="cat">{$root_categories[i][1]}</a> <font class="olive">({$root_categories[i][2]})</font><br>

            {* 
    show sub categories *}
            {
    assign var="tmp" value=0}
            {
    section name=j loop=$root_categories_subs}
              {if 
    $root_categories_subs[j][3] == $root_categories[i][0]}
                
                {if 
    $tmp == 1}<font class="olive">|</font>
                {else}
                    {
    assign var="tmp" value=1}
                {/if}
                
                <
    a href="index.php?categoryID={$root_categories_subs[j][0]}class=standard>{$root_categories_subs[j][1]}</a>
              {/if}
            {/
    section}
    </
    td>

    {if (
    $smarty.section.i.index+1is div by 2}</tr>{/if}
    {/
    section}
    </
    table>
    <
    p>
    {* 
    now show special offers *}
    <
    center>
      <
    table width="100%" border=0 cellpadding=5 cellspacing=1>
    {
    section name=i loop=$special_offers}
    {if 
    $smarty.section.i.index is div by 2}
      <
    tr>{/if}
    <
    td valign=top>

     <
    table width="250" height="120" border=0 align="center" cellpadding=0 cellspacing=1 bordercolor="#0066CC" bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR}>
     
    <tr><td>

      <
    table border=0 align="center" bgcolor=white>
          <
    tr>     </tr>
       <
    tr>
       <
    td colspan=5><div align="center"><a href="index.php?productID={$special_offers[i][0]}"><img src="products_pictures/{$special_offers[i][2]}border=0 align="bottom"></a></div></td>
       </
    tr>
       <
    tr>
       <
    td colspan="2" align=center><a href="index.php?productID={$special_offers[i][0]}">{$special_offers[i][1]}</a></div>   </td>
       </
    tr>
       <
    tr>
         <
    td colspan="2"><div align="left">{$special_offers[i][5]}</div></td>     
       </
    tr>
       <
    tr>
         <
    td align=right><div align="center"><font color=red><b>{$special_offers[i][3]}</b></font></div></td>
         <
    td align=right>
         <
    form action="index.php?productID={$special_offers[i][0]}method=post name="HiddenFieldsForm">
    <
    input name='cart' type=image src="images/tmpl12_sale.gif" alt="{$smarty.const.ADD_TO_CART_STRING}">
    </
    form>
         </
    td>
       </
    tr>
      </
    table>
      <
    hr /></td>
     </
    tr>
     </
    table>
    </
    td>
    {if (
    $smarty.section.i.index+1is div by 2}</tr>{/if}
    {/
    section}
    </
    table>
    </
    center>
     

    Вложения:

    • home.tpl.zip
      Размер файла:
      1 КБ
      Просмотров:
      3
  9. Caurus

    Caurus

    Регистр.:
    21 фев 2008
    Сообщения:
    348
    Симпатии:
    285
    А скинь еще includes\home.php а то у меня не выводит описание так как у меня нет $special_offers[5] в home.php
     
  10. kibi

    kibi Создатель

    Регистр.:
    27 авг 2007
    Сообщения:
    33
    Симпатии:
    4


    Вот код home.php
    PHP:
    <?php
        
    // front-end homepage
        //get root categories to be shown in the front-end homepage
        
    $q db_query("SELECT categoryID, name, products_count, picture FROM ".
            
    CATEGORIES_TABLE." WHERE categoryID<>0 and parent=1 ORDER BY sort_order, name") or die (db_error());
        
    $root = array();
        while (
    $row db_fetch_row($q))
        {
            if (!
    file_exists("./products_pictures/$row[3]")) 
                
    $row[3] = "";
            
    $root[] = $row;
        }

        
    //get subcategories of root categories
        
    $query "SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 ";
        
    $result = array();
        for (
    $i=0$i<count($root); $i++)
        {
            
    $q db_query("SELECT categoryID, name, products_count, parent FROM ".CATEGORIES_TABLE.
                
    " WHERE categoryID<>0 and parent=".$root[$i][0].
                
    " ORDER BY sort_order, name " ) or die (db_error());
            while (
    $row db_fetch_row($q))
                
    $result[] = $row;
        }
        
    $smarty->assign("root_categories",$root);
        
    $smarty->assign("root_categories_subs",$result);

        
    //special offers
        
    $result = array();
        
    $q db_query("SELECT productID FROM ".SPECIAL_OFFERS_TABLE." order by sort_order") or die (db_error());
        while (
    $row db_fetch_row($q))
        {
            
    $q1 db_query("SELECT productID, name, default_picture, Price, categoryID, brief_description FROM ".
                        
    PRODUCTS_TABLE.
                        
    " where productID=$row[0]") or die (db_error());
            if (
    $row1 db_fetch_row($q1))
            {
                if ( 
    is_null($row1[2]) )
                    continue;
                
    $picture db_query"select filename, thumbnail, enlarged from ".
                    
    PRODUCT_PICTURES." where photoID=".$row1[2] );
                
    $picture_row db_fetch_row$picture );
                if ( 
    $picture_row )
                {
                     if ( 
    file_exists"./products_pictures/".$picture_row[0] ) )
                    {
                        
    $row1[2] = $picture_row[0];
                        
    $row1[3] = show_price($row1[3]);
                        
    $result[] = $row1;
                    }
                }
            }
        }

        
    $smarty->assign("special_offers",$result);
        
    ?>
     
Статус темы:
Закрыта.