Новости Joomla

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

dron

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

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

dron

  • Завсегдатай
  • 1581
  • 16 / 10
благодарю! сорьки, туплю
*

dron

  • Завсегдатай
  • 1581
  • 16 / 10
только не ясно, как это именно для короткого описания товаров в JoomShopping сделать.... (
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Код: 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

  • Завсегдатай
  • 1581
  • 16 / 10
ОООО! То что надо! Огромное спасибо!
*

dron

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

error648398

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


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

dron

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

dmitry_stas

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

dron

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

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну не то чтобы... 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

  • Завсегдатай
  • 1581
  • 16 / 10
Благодарю всех от души!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Адрес e-mail как логин при регистрации

Автор orexov_m

Ответов: 51
Просмотров: 13048
Последний ответ 28.02.2024, 18:34:01
от nevigen
[Решено] - Заказ на одной странице

Автор shurakana

Ответов: 58
Просмотров: 16603
Последний ответ 16.03.2023, 09:53:16
от kit2m2
[Решено] Товар на замену в блоке с ценой

Автор dron

Ответов: 2
Просмотров: 1321
Последний ответ 13.04.2022, 16:09:53
от dron
[Решено] Разные шаблоны для разных статусов заказов

Автор nevigen

Ответов: 4
Просмотров: 3481
Последний ответ 04.04.2022, 19:45:58
от nevigen
(РЕШЕНО) Как в модуле фильтров вывести логотипы производителей?

Автор denxio

Ответов: 9
Просмотров: 2496
Последний ответ 24.05.2020, 19:22:12
от vitalicc