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

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

[Решено] Ограничение длины короткого описания

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

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« : 06.05.2013, 00:13:05 »

Добрый день! Было такое в Виртуал марте по умолчанию - Ограничение длины короткого описания. На странице списка товаров короткое описание (short_description) каждого товара. Как ограничить его до определенного количества знаков?

Заранее спасибо!
« Последнее редактирование: 07.05.2013, 23:54:26 от dron » Записан
 
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

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


Все начинается с Value


« Ответ #1 : 06.05.2013, 00:17:59 »

Ограничить число слов
« Последнее редактирование: 06.05.2013, 00:27:14 от Fedor Vlasenko » Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #2 : 06.05.2013, 00:23:22 »

благодарю! сорьки, туплю
Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #3 : 06.05.2013, 00:26:51 »

только не ясно, как это именно для короткого описания товаров в JoomShopping сделать.... (
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

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


Все начинается с Value


« Ответ #4 : 06.05.2013, 00:37:36 »

Код
<?php
function cutting_text($text, $length, $word=false){
if ($word)
return preg_match('/((\S+[\s-]+){'.$length.'})/s', $text, $m)? rtrim($m[1]): $text;
else
return preg_replace('/\s[^\s]+$/', '', mb_substr($text, 0, $length, 'UTF-8'));
}
//Максимально 30 символов
echo cutting_text($product->short_description, 30);
//echo cutting_text($this->product->short_description, 30);
//Выводим заданное количество слов - 8
echo cutting_text($product->short_description, 8, true);
//echo cutting_text($this->product->short_description, 8, true);
?>
Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #5 : 07.05.2013, 23:54:07 »

ОООО! То что надо! Огромное спасибо!
Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #6 : 04.09.2015, 12:43:48 »

Вопрос: скрипт ограничивает количество символов и если в последнем слове символов больше, чем ограничение, это слово не выводится вообще! А как можно выводить ровно столько символов, сколько указано? Пусть слово будет выводится не целиков, а в конце будет многотичие.
Записан
error648398
Осваиваюсь на форуме
***

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

Сообщений: 180


« Ответ #7 : 04.09.2015, 13:35:30 »

Вопрос: скрипт ограничивает количество символов и если в последнем слове символов больше, чем ограничение, это слово не выводится вообще! А как можно выводить ровно столько символов, сколько указано? Пусть слово будет выводится не целиков, а в конце будет многотичие.
Есть такая штука mb_substr, ограничивает вывод переменной по количеству символов.
Пример:
Код:
<?php print mb_substr( $product->short_description, 0, 1000).'...';?>
Выведет 1000 знаков короткого описания, после чего будет три точки.
Метод не плохой, если только у тебя короткое описание не оформлено через редакторы Joomla, то есть в коротком описании будут ещё елементы разметки находиться.
Так как в таком случае, оно выведет открывающий тег, но обрежет закрывающий, и у тебя в 99% верстка поползет.


« Последнее редактирование: 04.09.2015, 13:38:48 от error648398 » Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #8 : 04.09.2015, 14:32:08 »

Есть такая штука mb_substr, ограничивает вывод переменной по количеству символов.
Пример:
Код:
<?php print mb_substr( $product->short_description, 0, 1000).'...';?>
Выведет 1000 знаков короткого описания, после чего будет три точки.
Метод не плохой, если только у тебя короткое описание не оформлено через редакторы Joomla, то есть в коротком описании будут ещё елементы разметки находиться.
Так как в таком случае, оно выведет открывающий тег, но обрежет закрывающий, и у тебя в 99% верстка поползет.
Огромное спасибо!
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7739



« Ответ #9 : 04.09.2015, 15:30:08 »

в Joomla есть класс JString специально для мультибайтовых кодировок. будет работать даже если нет mb_string на хостинге
Код:
print JString::substr($product->short_description, 0, 1000)
Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #10 : 04.09.2015, 15:47:36 »

в Joomla есть класс JString специально для мультибайтовых кодировок. будет работать даже если нет mb_string на хостинге
Код:
print JString::substr($product->short_description, 0, 1000)
О! И как я понимаю, именно этот вариант использовать правильнее, верно?
Записан
dmitry_stas
Профи
********

Репутация: +794/-4
Online Online

Сообщений: 7739



« Ответ #11 : 04.09.2015, 15:56:45 »

ну не то чтобы... mb_substr если работает, то и будет работать. JString проверяет, установлен ли mb_substr, и использует именно его, если он установлен. так что вариант с mb_substr в какой то мере даже лучше, потому что нет лишних проверок. но вы должны быть изначально уверены, что он установлен. а JString будет универсальнее в этом плане. в общих случаях, когда вы не знаете заранее на каком хостинге будет выполнятся ваша программа, лучше использовать JString. в одном конкретном случае - проще mb_substr

P.S. а для тегов в описании - можно или strip_tags использовать, или как Fedor Vlasenko предлагал уже preg_replace
« Последнее редактирование: 04.09.2015, 16:04:08 от dmitry_stas » Записан
dron
Живу я здесь
******

Репутация: +11/-9
Offline Offline

Сообщений: 1080


« Ответ #12 : 04.09.2015, 16:45:19 »

Благодарю всех от души!
Записан
Страниц: [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