Перейти к содержимому


как "укоротить" наименование товара


  • Вы не можете ответить в тему
Сообщений в теме: 16

#1 renatko

    Пользователь

  • Пользователи
  • PipPip
  • 29 сообщений
Репутация: -2
Начинающий

Отправлено 30 April 2012 - 08:00 PM

Подскажите как "укоротить" название товара чтобы оно допустим было в два слова и затем автоматом ставилось многоточие
  • 0

#2 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 30 April 2012 - 08:39 PM

man truncate

  • 0
502 Bad Gateway

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2012 - 09:10 PM

Например, так:

$a='название укорачиваемого товара';
$b=explode(" ",$a);
$c=$b[0].(isset($b[1])?" ".$b[1]:"").(isset($b[2])?" ...":"");

в $c будет либо одно слово, если товар однословный, либо два слова (двухсловный), либо два слова и многоточие (трехсловный и более).
Если слов надо не два, а больше либо задаваемо, тогда универсальнее оформить это дело по другому:

$a = 'название товара, который мы хотим укоротить до четырех слов';
$n = 4;
$b = explode(" ",$a,$n+1);
for ($c="",$i=0;$i<$n;$i++) $c .= " ".$b[$i];
if (isset($b[$n])) $c .= "...";

Только обычно ведь не до конкретного количества слов укорачивают, а так, чтобы в конкретную длину строки вмещалось максимальное количество целых слов.

man truncate

И что это даст?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 30 April 2012 - 09:58 PM

И что это даст?

это даст все, и без гемороя, так как название товара не имеет форматного вывода, а просто текст, в данном случае smarty truncate будет идеальным вариантом, так умеет и отделить слова, и ставить ...
  • 0
Изображение Изображение Изображение

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2012 - 10:14 PM

в данном случае smarty truncate будет идеальным вариантом

Торможу. Не сообразил, что речь про функцию смарти :).

PS. Хмм... man truncate показал, что ЗАДАННУЮ задачу так решить не получится. truncate как раз и обрезает по длине строки (что обычно требуется), а не по количеству слов.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 30 April 2012 - 10:18 PM

http://www.smarty.ne...er.truncate.tpl

".... Определяет, обрезать ли строку в промежутке между словами (false) или строго на указаной длинне (true)."
  • 0
Изображение Изображение Изображение

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 30 April 2012 - 10:41 PM

Это совсем не о том. При заданной длине в 30 символов оно обрежет либо четко по 30-ти символам, либо по ближайшей границе слова. Второго, пятого, десятого - как получится. Приведенные мной примеры обрезают именно по количеству слов, а не символов, чего truncate делать не умеет. Но я согласен, что это нафиг не надо, т.к. "обрезание" обычно делается для того, чтобы попасть в длину строки, а не в количество слов :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 30 April 2012 - 11:06 PM

согласен, зачастую по длине строки, но решение по количеству слов, вполне имеет место быть (главное чтобы слова были не длинные :) )
  • 0
Изображение Изображение Изображение

#9 renatko

    Пользователь

  • Пользователи
  • PipPip
  • 29 сообщений
Репутация: -2
Начинающий

Отправлено 01 May 2012 - 08:41 AM

Подскажите в каком файле прописывать
  • 0

#10 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 01 May 2012 - 10:16 AM

во всех где выводится название товара (product_detailed, product_brief, home, в блоках ....)
  • 0
Изображение Изображение Изображение

#11 renatko

    Пользователь

  • Пользователи
  • PipPip
  • 29 сообщений
Репутация: -2
Начинающий

Отправлено 01 May 2012 - 11:41 AM

Хотя бы один пример покажите
  • 0

#12 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 01 May 2012 - 11:51 AM

Хотя бы один пример покажите

Ээээ.... Т.е. Вы совсем ничего не смыслите в теме, которой пытаетесь заниматься?
Все же разжевано так, что пора уже денег брать :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#13 renatko

    Пользователь

  • Пользователи
  • PipPip
  • 29 сообщений
Репутация: -2
Начинающий

Отправлено 08 May 2012 - 12:48 PM

Ну объясните чайнику
  • 1

#14 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 08 May 2012 - 01:07 PM

Ну объясните чайнику


уже обьяснили, в посте #6 ссылка на функцию смарти, и там соответственно пример

P.S. если все таки вопрос имеет подтекст "сделайте за меня, и напишите пару символов", то увы
  • 0
Изображение Изображение Изображение

#15 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 May 2012 - 08:33 PM

Ребята, а кто так старательно понижает репутацию "начинающим чайникам"? Человек спросил достаточно, чтобы мы поняли, что наши объяснения "не в коня корм". Зря объясняли. Бывает. Никто не заставлял бросаться на амбраз отвечать, тратить время. На мой взгляд, он не совершил ничего такого, что стоило бы нажатия красной кнопки. И уж тем более не знал, что ему ответят не пара человек его же уровня, которые сами только что решили подобную проблему и рады поделиться решением, а люди, для которых эта проблема не является даже проблемкой :(.

Другими словами: Ну сказали вежливо (или не вежливо), что при таких знаниях не стот браться за решение такого вопроса, лучше денег отдать, но красную кнопку-то жать зачем? Оно во вред человеку, во вред форуму и ничего, кроме сиюминутного удовлетворения не приносит. Т.е. вред налицо, а польза сомнительна. Сам иногда ее жму, но всегда потом об этом жалею.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#16 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 08 May 2012 - 08:57 PM

Ребята, а кто так старательно понижает репутацию "начинающим чайникам"?


Если конкретно по последнему пациенту - 8 сообщений, в кабинете 5, предполагаю что был флуд, который вырезан. за что и минус, наверное.

А в общем - бывает, конечно. лично меня иногда не оставляет равнодушным флуд, лень и нежелание пользоваться поиском перед тем, как постить. Хотя последнее уже меньше ввиду корявости поиска после апгрейда движка.
  • 0
502 Bad Gateway

#17 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 08 May 2012 - 09:07 PM

Я сравнительно часто понижаю и не жалею. А понижаю только за дело и не за глупые вопросы......... а за умышленный флуд или спам. Чайник или не чайник не имеет значения - всем мы были чайниками, а в некоторых вопросах и сейчас чайники, за это не наказывают, а вот за дибилизм, которым эти чайники занимаются не жалко и минус влепить, ведь это в частности мне лишняя трата времени, сиди чисти темы от одних и тех же вопросов по сто раз........... или какойто левотни типа 123, мой первый пост, вот завтра поставлю и проверю.......... или еще более того - пишут. модуль не работает. - хотя даже скачать его прав нету.
Все посты с флудом и нарушениями разумеется я удаляю, поэтому и не видно за что минус, но у меня в админке все движения репутации записываются. так что я могу отследить кто кому и за что повышал или понижал.

Цель чтобы когда человек зашел в тему почитать, ему не нужно было перелистывать 200 страниц всякой лажи, а все было только по делу.
  • 0