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

dron

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

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

dron

  • Живу я здесь
  • 1130
  • 2
благодарю! сорьки, туплю
*

dron

  • Живу я здесь
  • 1130
  • 2
только не ясно, как это именно для короткого описания товаров в JoomShopping сделать.... (
*

Fedor Vlasenko

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Код: php-brief
<?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

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

dron

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

error648398

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


« Последнее редактирование: 04.09.2015, 12:38:48 от error648398 »
*

dron

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

dmitry_stas

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

dron

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

dmitry_stas

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

P.S. а для тегов в описании - можно или strip_tags использовать, или как Fedor Vlasenko предлагал уже preg_replace
« Последнее редактирование: 04.09.2015, 15:04:08 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

dron

  • Живу я здесь
  • 1130
  • 2
Благодарю всех от души!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] - Заказ на одной странице

Автор shurakana

Ответов: 47
Просмотров: 6883
Последний ответ 21.08.2017, 16:46:47
от dmitry_stas
[Решено] Пунк меню для товаров с опр. характеристикой

Автор kontrast

Ответов: 136
Просмотров: 10835
Последний ответ 16.03.2017, 10:23:32
от antom
[Решено] Выбор всех фотографий для загрузки в карточку товара при его добавлении на сайт

Автор CCTRRoman

Ответов: 14
Просмотров: 375
Последний ответ 29.10.2016, 16:44:41
от kit2m2
[Решено] Как выести количество оставленных отзывов о товаре?

Автор sifoz

Ответов: 7
Просмотров: 725
Последний ответ 18.10.2016, 22:57:54
от lev731
[Решено] Разные шаблоны для разных статусов заказов

Автор nevigen

Ответов: 2
Просмотров: 1108
Последний ответ 24.09.2016, 17:26:27
от dmitry_stas