Форум русской поддержки Joomla!® CMS
10.12.2016, 11:02:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 365 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« : 14.05.2015, 13:02:40 »

Как ограничить название товара до определённого числа символов.
Вот сайт http://lik-astana.kz/index.php/ru/ в низу есть Последние поступления
и они выводят полное название товара.

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

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

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

допустим так чтоб весе товары отображались в две строки    
Записан
neogeek
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #1 : 14.05.2015, 14:07:45 »

Вот - http://yandex.ru/yandsearch?text=%D0%BE%D0%B1%D1%80%D0%B5%D0%B7%D0%B0%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20php&clid=1923020
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #2 : 14.05.2015, 15:42:12 »

 А какой файл отвечает за вывод.
Ковырял /html/com_virtuemart/categories/default.php но там не нашел не чего
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #3 : 14.05.2015, 16:09:35 »

если ограничивать одной строкой то можно и средствами CSS
Записан
neogeek
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #4 : 14.05.2015, 16:27:08 »

Stasweb, вы напишите версию VM
Записан
neogeek
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #5 : 14.05.2015, 16:31:36 »

В дефолтном шаблоне должна быть такая строка - <h2><?php echo JHTML::link ($product->link, $product->product_name); ?></h2>
тут и надо обрабатывать - $product->product_name
Записан
Stasweb
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #6 : 14.05.2015, 16:33:21 »

Версия VirtueMart 2.6.16
Записан
neogeek
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #7 : 14.05.2015, 16: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
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #8 : 14.05.2015, 16: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
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #9 : 14.05.2015, 17: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, 17:39:27 от Stasweb » Записан
neogeek
Давно я тут
****

Репутация: +18/-2
Offline Offline

Сообщений: 212


« Ответ #10 : 14.05.2015, 18: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
Живу я здесь
******

Репутация: +15/-0
Offline Offline

Пол: Мужской
Сообщений: 951



« Ответ #11 : 15.05.2015, 08:51:11 »

Реализовал тут http://lik-astana.kz/index.php/ru/ все отлично
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet