Сокращение обрезка символов в операторах

голоса: 0
Короче нужно сделать такую штуку как сокращение символов    Сейчас у меня один элемент уже таким образом сокращается но нужно сделать так что бы сразу два элемента это делали...    А конкретнее Название категории и раздела включая 2 пробела которые между ними стоят  $('.newsCategory').filter(function(){return $(this).text().length>48}).each(function(){$(this).text($(this).text().substring(0,48)+' ...')})    Скрипт который сокращает <span class="newsCategory">$CATEGORY_NAME$</span>    А нужно что бы сокращало $SECTION_NAME$ &raquo; $CATEGORY_NAME$
Закрыто с пометкой: Обращайтесь к фрилансерам на https://upartner.pro/
| Автор: | Категория: Вопросы новичков
Закрыт | | Автор: Yuri_Geruk

Ответов: 1

голоса: 0
 
Лучший ответ

Можно обойтись без js сделав условием:

<?if(len($SECTION_NAME$)>160)?><?substr($SECTION_NAME$,0,159)?>...<?else?>$SECTION_NAME$<?endif?> 

пропишите нужное количество символов для обрезки вместо 160-159.

В скрипте выше замените $CATEGORY_NAME$ на $SECTION_NAME$ используя тот же скрипт для разделов.

| Автор:
Выбор ответа лучшим | | Автор: Yuri_Geruk

Спасибо но названия же и категории разные по длине а у меня получается в строку в виде материала вмещается 24 символов включая 2 пробела между разделом категорией и  »  таким вот значком 


P.S полный код у меня вот такой

<a title="Раздел $SECTION_NAME$" href="$SECTION_URL$">$SECTION_NAME$</a> &raquo; <a title="Категория $CATEGORY_NAME$" href="$CATEGORY_URL$" >CATEGORY_NAME$</a>

Defoz,
Код вставлять в скрипт не советую, завертывайте оператор в него и не более иначе скрипт будет резать код и в результате будете иметь побочный эффекты в виде некорректного отображения дизайна сайта.
Yuri_Geruk,
так что и как сделать ?
Defoz,

Например вот так:

<a title="Раздел $SECTION_NAME$" href="$SECTION_URL$"><?if(len($SECTION_NAME$)>25)?><?substr($SECTION_NAME$,0,24)?>...<?else?>$SECTION_NAME$<?endif?></a> &raquo; <a title="Категория $CATEGORY_NAME$" href="$CATEGORY_URL$" ><?if(len($CATEGORY_NAME$)>25)?><?substr($CATEGORY_NAME$,0,24)?>...<?else?>$CATEGORY_NAME$<?endif?></a>

Yuri_Geruk,
Вы уже выше про это писали но я сказал что это не то так как, 1 категория может состоять из 4 букв и раздел с 10 а во втором случае может быть так что категория состоит из 13 символов и раздел с 9, и при этом суммарная сумма символов там и там будет разная а в поле в виде материала вмещается допустим всего лишь 12 символов
Defoz,

Пропишите в условии выше предел в кол символов который нужно обрезать, минимальный таким и останется, вроде ничего сложного или вы хотите исключительно на js и условия вам в любом виде не подходят. В таком случае используйте:

<script>
$('.newsSection').filter(function(){return $(this).text().length>48}).each(function(){$(this).text($(this).text().substring(0,48)+' ...')})
</script>

<span class="newsSection">$SECTION_NAME$ </span> 

количество символов для обрезки регулируйте как вам нужно.

Yuri_Geruk,
вы не понимаете о чем я говорю? вы мне даете условие для одного из операторов для раздела или категории а мне нужно условие для раздела и категории вместе, в ваших же скриптах и условиях регулируется только одно
Defoz,
Понял вас! Ждите скриптеров, ближе к вечеру кто-то появится и поможет вам.
Yuri_Geruk,
Спасибо буду очень благодарен
...