Sign in to follow this  
Followers 0
siriosca

ограничение символов в тексте

14 posts in this topic

Нужен код который сумеет ограничить количество символов в тексте до 520 символов. 

 

Не предлагать 

<?substr($MESSAGE$,0,520)?>…

Share this post


Link to post
Share on other sites

 

Нужен код который сумеет ограничить количество символов в тексте до 520 символов. 

 

Не предлагать 

<?substr($MESSAGE$,0,520)?>…

 

Собственно почему не подходит именно данный вариант? Если это в кратком виде, то можете настроить в панели управления ( у каждого модуля есть функция в настройках).

Share this post


Link to post
Share on other sites

@siriosca, что с этим кодом не так? Где именно нужно ограничить?

Простой вариант(в html-форме):

<textarea name="message" maxlength="520">Чёткий поц</textarea>
или
<input type="text" name="message" maxlength="520" value="Чёткий поц" /> 

php (если проблема с выше описанным методом в ломе кодировки):

<?php echo mb_substr($MESSAGE, 0, 520, 'UTF-8'); ?> 

Можно еще JS по onkeyup или блуру или фокусу, но зачем? )

Share this post


Link to post
Share on other sites

Собственно почему не подходит именно данный вариант? Если это в кратком виде, то можете настроить в панели управления ( у каждого модуля есть функция в настройках).

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

Share this post


Link to post
Share on other sites

В Dle например в короткой новости есть такое:

{short-story limit="400"}

Share this post


Link to post
Share on other sites

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

См. мое сообщение выше плюс если $MESSAGE содержит html синтаксис, можно его опустить:

<?php echo mb_substr(strip_tags($MESSAGE), 0, 520, 'UTF-8'); ?>

Share this post


Link to post
Share on other sites

мне нужно хтмл, не пхп. 

 

оба варианта

Vi6HyPv.png

Share this post


Link to post
Share on other sites

мне нужно хтмл, не пхп.

<div id="target">
    Sed porttitor lectus nibh. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Sed porttitor lectus nibh. Cras ultricies ligula sed magna dictum porta. Donec rutrum congue leo eget malesuada. Cras ultricies ligula sed magna dictum porta. Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Vivamus suscipit tortor eget felis porttitor volutpat.
</div>
<script>
    var substrbox = document.getElementById('target');
    substrbox.innerHTML = substrbox.innerHTML.substring(0, 520);
</script>

Share this post


Link to post
Share on other sites
<div id="target">
    Sed porttitor lectus nibh. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Sed porttitor lectus nibh. Cras ultricies ligula sed magna dictum porta. Donec rutrum congue leo eget malesuada. Cras ultricies ligula sed magna dictum porta. Curabitur aliquet quam id dui posuere blandit. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Vivamus suscipit tortor eget felis porttitor volutpat.
</div>
<script>
    var substrbox = document.getElementById('target');
    substrbox.innerHTML = substrbox.innerHTML.substring(0, 520);
</script>

попробовал, но проблема в том что только последний материал ограничивается в символах

Share this post


Link to post
Share on other sites

Других кодов-то и нет, может стоит поменять шаблон?

есть еще много кодов, я знаю. Шаблон не поменяю, я его купил

Share this post


Link to post
Share on other sites

Вариант на базе JQuery (проверено). Надеюсь, логика работы будет понятна, и вы без труда сможете внедрить сие решение к себе в код. Если с программированием у вас не очень, то придётся обращаться к программерам.





<div class="myDescriptionValue">
  По рзелульаттам <strong>илссеовадний одонго анлигйсого унвиертисета</strong>, не иеемт занчнеия, в кокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом.
</div>
<div class="myDescriptionValue">
  По рзелульаттам илссеовадний <font color="#0000ff">одонго анлигйсого унвиертисета</font>, не иеемт занчнеия, в кокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете.
</div>
<div class="myDescriptionValue">2 блок ...</div>
<div class="myDescriptionValue">3 блок ...</div>
<div class="myDescriptionValue">4 блок и т.д.</div>




<script>
// Логика работы. Если длина текста в каком-либо блоке с классом «myDescriptionValue» превышает заданное значение, то подрезаем такой текст и добавляем в конец многоточие. При этом из подрезаемого текста будут удалены все HTML-теги (если таковы в нём присутствовали).
jQuery(document).ready(function(){
  var stringLimit = 520, myDescriptionObj, myDescriptionValue;
  jQuery('div.myDescriptionValue').each(function(){ // Перебираем все имеющиеся блоки с нужным классом.
    myDescriptionObj = jQuery(this); myDescriptionValue = myDescriptionObj.text();
    if(myDescriptionValue.length > stringLimit){ // Проверяем длину текста в блоке.
      myDescriptionValue = myDescriptionValue.substr(0, stringLimit)+'…'; // Подрезаем текст и добавляем многоточие.
      myDescriptionObj.html(myDescriptionValue); // Возвращаем подрезанный текст обратно.
    };
  });
});
</script>

Такие вещи лучше выполнять на стороне сервера, к примеру, на PHP  будет более грамотно.

Share this post


Link to post
Share on other sites

В Dle например в короткой новости есть такое:

{short-story limit="400"}

Такие коды использует смарти, или, если мне не изменяет память, специфический для ДЛЕ язык смартиподобного шаблонизатора. А в самом плагине, описывающем функцию, может быть тот же пхп-код substr

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.