Как ограничить название?

  • 11 Ответов
  • 466 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Stasweb

  • ******
  • 1058
  • 17
Как ограничить название?
« : 14.05.2015, 14:02:40 »
Как ограничить название товара до определённого числа символов.
Вот сайт http://lik-astana.kz/index.php/ru/ в низу есть Последние поступления
и они выводят полное название товара.

Цитировать
Плакаты "1 декабря - День
Первого Президента",
изготовление
   

и поэтому неразбериха где 2 строки где 3 строки.
Возможно сделать

Цитировать
Плакаты "1 декабря - День
Первого Президента...

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


*

Stasweb

  • ******
  • 1058
  • 17
Re: Как ограничить название?
« Ответ #2 : 14.05.2015, 16:42:12 »
 А какой файл отвечает за вывод.
Ковырял /html/com_virtuemart/categories/default.php но там не нашел не чего

*

Ilhom666

  • ******
  • 1295
  • 166
Re: Как ограничить название?
« Ответ #3 : 14.05.2015, 17:09:35 »
если ограничивать одной строкой то можно и средствами CSS

*

neogeek

  • ****
  • 203
  • 18
Re: Как ограничить название?
« Ответ #4 : 14.05.2015, 17:27:08 »
Stasweb, вы напишите версию VM

*

neogeek

  • ****
  • 203
  • 18
Re: Как ограничить название?
« Ответ #5 : 14.05.2015, 17:31:36 »
В дефолтном шаблоне должна быть такая строка - <h2><?php echo JHTML::link ($product->link, $product->product_name); ?></h2>
тут и надо обрабатывать - $product->product_name

*

Stasweb

  • ******
  • 1058
  • 17
Re: Как ограничить название?
« Ответ #6 : 14.05.2015, 17:33:21 »
Версия VirtueMart 2.6.16

*

neogeek

  • ****
  • 203
  • 18
Re: Как ограничить название?
« Ответ #7 : 14.05.2015, 17:38:17 »
Дошло, вы не тот шаблон смотрите, это главная страница VirtueMart и шаблон находится - components\com_virtuemart\views\virtuemart\tmpl\default_products.php
если шаблон не правленный, по дефолту должно быть такое
Код
					<h3>
<?php // Product Name
echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ), $product->product_name, array ('title' => $product->product_name ) ); ?>
</h3>
вместо этого - , $product->product_name, вот с этой частью надо работать

*

neogeek

  • ****
  • 203
  • 18
Re: Как ограничить название?
« Ответ #8 : 14.05.2015, 17:42:52 »
если по простому делать, то так

Код
$cut_prodname = mb_substr($product->product_name,0,30,'UTF-8');

<h3><?php echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ), $cut_prodname, array ('title' => $product->product_name ) ); ?></h3>

30 - это кол-во отображаемых символов.

*

Stasweb

  • ******
  • 1058
  • 17
Re: Как ограничить название?
« Ответ #9 : 14.05.2015, 18:22:31 »
отлично спасибо то что надо.
Сделал так
Код
            <h3> <?php
                    $cut_prodname = mb_substr($product->product_name,0,20,'UTF-8');
                    $end_name = '...';
                    echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' .
                    $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ),
                    $cut_prodname, array ('title' => $product->product_name ) );
                    echo $end_name;
                    ?>
            </h3>
http://card.lik-material.kz/index.php/ru/ все работает
вот только вопрос как сделать чтоб если количество символов не превышает 20-ти то $end_name не показывать
« Последнее редактирование: 14.05.2015, 18:39:27 от Stasweb »

*

neogeek

  • ****
  • 203
  • 18
Re: Как ограничить название?
« Ответ #10 : 14.05.2015, 19:15:12 »
вместо
Код
<h3> 
<?php
$cut_prodname = mb_substr($product->product_name,0,20,'UTF-8');
$end_name = '...';
echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' .
$product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ),
$cut_prodname, array ('title' => $product->product_name ) );
echo $end_name;
?>
</h3>
надо так
Код
<h3> 
<?php
$cut_prodname = mb_substr($product->product_name,0,20,'UTF-8');

if (strlen($product->product_name) > 20) {
$cut_prodname .= '...';
}

echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' .
$product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id, FALSE ),
$cut_prodname, array ('title' => $product->product_name ) );
?>
</h3>


*

Stasweb

  • ******
  • 1058
  • 17
Re: Как ограничить название?
« Ответ #11 : 15.05.2015, 09:51:11 »
Реализовал тут http://lik-astana.kz/index.php/ru/ все отлично