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

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
 ! ! Ребята! Подскажите! Как в К2 для блога категории или в обычном материале К2 ОГРАНИЧИТЬ! количество символов в заглавии материала. то же самое и если заголовок материала как ссылка (вот как здесь http://mannvillage.com/index.php/download-movies-online/popular-categories-films/kinofantastika-fentezi ) символы в заголовке тоже нужно ограничить и при наведении на эту ссылку во всплывающей подсказке писать полное название материала. 

Конкретно - я хочу уменьшить количество символов в заголовках блога категории как эта
http://mannvillage.com/index.php/download-movies-online/popular-categories-films/kinofantastika-fentezi или
http://mannvillage.com/index.php/download-movies-online/popular-categories-films/comedy или
http://mannvillage.com/index.php/download-movies-online/popular-categories-films/action-ekshenfilm

и писать там

Пример
НЕ Битва Титанов / Clash of the Titans 2010 HD смотреть онлайн
А Битва Титанов / Clash of ...

этот заголовок как ссылка. А при наведении на эту ссылку в подсказке чтобы высвечивалось полное название материала т.е. ссылка Битва Титанов / Clash of ...  а подсказка  Битва Титанов / Clash of the Titans 2010 HD смотреть онлайн

ПОЖАЛУЙСТА! ПОМОГИТЕ! ОЧЕНЬ НУЖНО. А то эти длинные заглавия портят весь дизайн моего сайта http://mannvillage.com  !
« Последнее редактирование: 02.10.2011, 18:39:48 от SDKiller »
*

HYBRID

  • Давно я тут
  • 236
  • 46
  • Они захватят мир
Re: Ограничить длину заголовков К2
« Ответ #1 : 02.10.2011, 06:53:05 »
файл: /components/com_k2/templates/default/category_item.php
или: /templates/ИСПОЛЬЗУЕМЫЙ_ШАБЛОН/html/com_k2/templates/default/category_item.php

найти строки примерно следующего содержания:

<h3 class="catItemTitle">
    <?php if ($this->item->params->get('catItemTitleLinked')): ?>
        <a href="<?php echo $this->item->link; ?>">
            <?php echo $this->item->title; ?>
        </a>
        <?php else: ?>
            <?php echo $this->item->title; ?>
        <?php endif; ?>

поменять на:

<h3 class="catItemTitle">
    <?php if ($this->item->params->get('catItemTitleLinked')): ?>
        <a href="<?php echo $this->item->link; ?>" title="<?php echo $this->item->title; ?>">
            <?php echo mb_substr($this->item->title, 0, 25).'...'; ?>
        </a>
        <?php else: ?>
            <?php echo $this->item->title; ?>
        <?php endif; ?>

функция mb_substr() возвращает строку заданной длинны, в данном случае передается заголовок и задается стартовая позиция 0 (отсчет с первого символа), и до 25го, последнее значение нужно изменить на подходящее

есть второй метод через CSS и свойство text-overflow:ellipsis, но оно пока не поддерживается в полной мере всеми браузерами, и особенно ослом

ЗЫ, поменьше красок в тексте, а красный вообще нельзя использовать, он только для модераторов
http://hybrid-lab.com - лаборатория
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
Re: Ограничить длину заголовков К2
« Ответ #2 : 02.10.2011, 09:21:08 »
Сейчас попробую! Спасибо!

Ура!   <?php echo mb_substr($this->item->title, 0, 25).'...'; ?>  Сработало отлично! То, что мне и нужно. Большое вам спасибо за оперативное решение.

Еще хочу узнать, правда это не совсем по теме..     
« Последнее редактирование: 02.10.2011, 19:05:14 от SDKiller »
*

staticlight

  • Moderator
  • 1090
  • 65
  • Staticlight
Re: Ограничить длину заголовков К2
« Ответ #3 : 02.10.2011, 13:14:28 »
Главное - пользоваться этим с умом, а то будут заголовки типа "Перси Джексон и пох..."

« Последнее редактирование: 02.10.2011, 13:18:12 от staticlight »
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

SDKiller

  • Moderator
  • 2734
  • 320
  • ...ergo sum
Re: Ограничить длину заголовков К2
« Ответ #4 : 02.10.2011, 16:47:47 »
Главное - пользоваться этим с умом, а то будут заголовки типа "Перси Джексон и пох..."

Можно пользоваться одной из функций из утилит К2 и ограничивать длину заголовка целыми словами, например:

Код
require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');

$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);
« Последнее редактирование: 02.10.2011, 19:36:31 от SDKiller »
*

staticlight

  • Moderator
  • 1090
  • 65
  • Staticlight
Re: Ограничить длину заголовков К2
« Ответ #5 : 02.10.2011, 17:14:34 »
Можно пользоваться одной из функций из утилит К2 и ограничивать длину заголовка целыми словами, например:

Код
require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');

$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

То есть, в head прописываем
Код
require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');
$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

Я правильно понял?
Руководитель отдела сервисного обслуживания систем безопасности.
Устали от com_content - поставьте com_k2.
TRIPLE "F" POWER: Firefox+FireShot+Firebug. Chrome + Ctrl+Shift+I
*

SDKiller

  • Moderator
  • 2734
  • 320
  • ...ergo sum
Re: Ограничить длину заголовков К2
« Ответ #6 : 02.10.2011, 17:59:37 »
Зачем в head, вызываем функцию в том месте, где непосредственно используем, в данном случае - в шаблоне.

Учитываем, что в разных шаблонах у нас формируются объекты по-разному, так что где-то может быть $this->item->title, а где-то $item->title
*

HYBRID

  • Давно я тут
  • 236
  • 46
  • Они захватят мир
Re: Ограничить длину заголовков К2
« Ответ #7 : 02.10.2011, 18:16:50 »
SDKiller, за наводку на utilities спасибо, но в данном случае больше подошла бы функция
Код
characterLimit($this->item->title, $limit = N, $end_char = '...')
http://hybrid-lab.com - лаборатория
*

SDKiller

  • Moderator
  • 2734
  • 320
  • ...ergo sum
Re: Ограничить длину заголовков К2
« Ответ #8 : 02.10.2011, 18:19:24 »
SDKiller, за наводку на utilities спасибо, но в данном случае больше подошла бы функция
Код
characterLimit($this->item->title, $limit = N, $end_char = '...')

Я вёл речь именно об ограничении длины полными словами а не символами, чтобы не было

Цитировать
...типа "Перси Джексон и пох..."
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
Re: Ограничить длину заголовков К2
« Ответ #9 : 02.10.2011, 19:51:06 »
Главное - пользоваться этим с умом, а то будут заголовки типа "Перси Джексон и пох..."



Ну в подобных модулях ( называеться News Show Pro GK4 - mod_news_pro_gk4  - это название продукта от Gavick для крутого вывода новостей, в котором через админ панель можно настраивать практически все, что угодно, вплоть до расстояния между картинками и текстом... у меня это просто не очень презентабельно, потому-что еще не дошел до того.. нужно добавить некоторый контент, а потом настраивать, чтобы было, что настраивать, так сказать ) длину настроить не проблема. Это просто делается через админ панель в свойствах модуля - значения доступны или для изменения количества символов или для изменения количества слов в заголовке. А вот как такое сделать для материалов в К2 я не знал - теперь знаю, за что вам огромное спасибо.

А заголовки типа ...типа "Перси Джексон и пох..." лучьше изменить на ..."Перси Джексон и похититель ..." ? Думаете так будет гораздо лучше? Т.е лучше сделать несколько полных слов и ... чем ограничить количество символов?

Цитировать
Можно пользоваться одной из функций из утилит К2 и ограничивать длину заголовка целыми словами, например:

Цитировать
Код

require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');

$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

А.. это, если не ошибаюсь можно использовать для всего, что связано с текстом. Верно? Только я не пойму, как это можно использовать, к примеру, для такого кода К2 category_item.php

Код
<!-- Item introtext -->
<div class="catItemIntroText">
  Персей, сын&nbsp;бога, воспитанный человеком, не&nbsp;смог защитить свою…  </div>

В к2 через админ панель такой параметр где-то можно установить или только вручную редактировать код шаблона? и как
Код
characterLimit($this->item->title, $limit = N, $end_char = '...')
применить относительно приведенного выше кода? Там же нет title

И насчет
Код
require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');
$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

не будет ли эта утилита занимать больше ресурсов как у пользователя так и сервера - там же необходимо вызывать внешний файл и как понимаю загружать его на компьютер пользователя, а это время... думаю, в этом смысле characterLimit($this->item->title, $limit = N, $end_char = '...') - здесь используется только внутренная PHP функция characterLimit и никакие внешние файлы не нужны.
« Последнее редактирование: 02.10.2011, 19:58:42 от Yura Vakulenko »
*

SDKiller

  • Moderator
  • 2734
  • 320
  • ...ergo sum
Re: Ограничить длину заголовков К2
« Ответ #10 : 02.10.2011, 19:59:29 »

...Только я не пойму, как это можно использовать, к примеру, для такого кода К2 category_item.php

Код
<!-- Item introtext -->
<div class="catItemIntroText">
  Персей, сын&nbsp;бога, воспитанный человеком, не&nbsp;смог защитить свою…   </div>

...как
Код
characterLimit($this->item->title, $limit = N, $end_char = '...')
применить относительно приведенного выше кода? Там же нет title

Смотрите не исходный код страницы в браузере, а шаблон - увидите там состав всех объектов, которые доступны в том или ином месте.

В вашем примере - $this->item->introtext


Цитировать
... там же необходимо вызывать внешний файл и как понимаю загружать его на компьютер пользователя...

php-файлы исполняются на стороне сервера, а не на стороне клиента

Цитировать
... думаю, в этом смысле characterLimit($this->item->title, $limit = N, $end_char = '...') - здесь используется только внутренная PHP функция characterLimit и никакие внешние файлы не нужны.

Нет, это функция тоже из utilities K2.
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
Re: Ограничить длину заголовков К2
« Ответ #11 : 02.10.2011, 20:14:46 »
Цитировать
require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');
$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

А как это применить относительно заголовка?  мне нужно писать..
Код

<?php if($this->item->params->get('catItemTitle')): ?>
 <!-- Item title -->
 <h3 class="catItemTitle">
  <?php if ($this->item->params->get('catItemTitleLinked')): ?>
<a href="<?php echo $this->item->link; ?>" title="<?php echo $this->item->title; ?>">
  <?php echo

require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');
$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

 ?>
  </a>
  <?php else: ?>
  <?php echo $this->item->title; ?>
<?php endif; ?>
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
Re: Ограничить длину заголовков К2
« Ответ #12 : 02.10.2011, 20:21:36 »

А как это применить относительно заголовка?  мне нужно писать..
Код

<?php if($this->item->params->get('catItemTitle')): ?>
  <!-- Item title -->
  <h3 class="catItemTitle">
  <?php if ($this->item->params->get('catItemTitleLinked')): ?>
<a href="<?php echo $this->item->link; ?>" title="<?php echo $this->item->title; ?>">
  <?php echo

require_once(JPATH_SITE.DS.'components'.DS.'com_k2'.DS.'helpers'.DS.'utilities.php');
$this->item->title = K2HelperUtilities::wordLimit($this->item->title, $limit = 5);

 ?>
  </a>
  <?php else: ?>
  <?php echo $this->item->title; ?>
<?php endif; ?>

в шаблоне такой код

Код
 <?php if($this->item->params->get('catItemIntroText')): ?>
  <!-- Item introtext -->
  <div class="catItemIntroText">
  <?php echo $this->item->introtext; ?>
  </div>
  <?php endif; ?>

и мне нужно писать в
  <div class="catItemIntroText">
        <?php echo characterLimit($this->item->introtext, $limit = N, $end_char = '...'); ?>
  </div>

Верно?
*

SDKiller

  • Moderator
  • 2734
  • 320
  • ...ergo sum
Re: Ограничить длину заголовков К2
« Ответ #13 : 02.10.2011, 20:26:04 »
Кстати, в category_item можно не подключать utilities, они уже подключены.

Так что то что касается заголовка - этот кусок будет будет выглядеть так (5 - ваш лимит. можете поменять на своё значение):

Код: php
<?php if($this->item->params->get('catItemTitle')): ?>
    <!-- Item title -->
        <h3 class="catItemTitle">
    <?php if ($this->item->params->get('catItemTitleLinked')): ?>
        <a href="<?php echo $this->item->link; ?>" title="<?php echo $this->item->title; ?>">
      <?php echo K2HelperUtilities::wordLimit($this->item->title, 5); ?>
  </a>
    <?php else: ?>
  <?php echo K2HelperUtilities::wordLimit($this->item->title, 5); ?>
            <?php endif; ?>

Можете делать через функцию characterLimit, только аналогично надо вызывать её как K2HelperUtilities::characterLimit
« Последнее редактирование: 02.10.2011, 20:36:11 от SDKiller »
*

HYBRID

  • Давно я тут
  • 236
  • 46
  • Они захватят мир
Re: Ограничить длину заголовков К2
« Ответ #14 : 02.10.2011, 20:34:35 »
удалено
http://hybrid-lab.com - лаборатория
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
Re: Ограничить длину заголовков К2
« Ответ #15 : 02.10.2011, 20:43:24 »
Цитировать
Так что то что касается заголовка - этот кусок будет будет выглядеть так (5 - ваш лимит. можете поменять на своё значение):

Да. я только-что изменил код на ваш вышеуказанный и действительно - все заработало. Теперь ограничение на показ в 5 слов. И так лучше, чем ограничивать символы.. хотя и в некоторых местах строка заголовок и занимает 2 строки, что смещает картинки под ним, но так по-моему лучше. При меньшей ширине поля с материалом эти все заголовки будут в 2 строки, тем более, что мне еще на стрничку необходимо поставить коллонку справа, что автоматически уменьшит ширину поля с материалом

Огромное спасибо за помощь!

А применительно к

 <?php if($this->item->params->get('catItemIntroText')): ?>
     <!-- Item introtext -->
     <div class="catItemIntroText">
        <?php echo K2HelperUtilities::wordLimit($this->item->introtext, 10); ?>
     </div>
 <?php endif; ?>

Верно?
*

SDKiller

  • Moderator
  • 2734
  • 320
  • ...ergo sum
Re: Ограничить длину заголовков К2
« Ответ #16 : 02.10.2011, 20:52:29 »
Количество слов во вводном тексте вы можете просто ограничить в настройках категории
*

Yura Vakulenko

  • Осваиваюсь на форуме
  • 178
  • 5
Re: Ограничить длину заголовков К2
« Ответ #17 : 02.10.2011, 20:58:38 »
Количество слов во вводном тексте вы можете просто ограничить в настройках категории

Это в админпанели выбрать нужную категорию и справа там блок Item view options in category listings и его параметр  Introtext word limit ? Это тот парамтр?

Почему разработчики К2 не предусмотрели такой очевидный вариант с настройкой количества символов или слов в Заголовке материалов для блока категории?  ;) Было бы отлично если бы они добавили такой параметр в админ панель, похоже параметру Introtext word limit

добавить параметр  header word limit and/or header characters limit

Вообще к2 такой мощный контент менеджер - мне он очень нравится. Я правда еще не очень в нем разобрался, только недавно начал использовать. Очень удобный в организации любого материала, особенно каталога товаров или чего-то такого глобального, масштабногог, такой своеобразный вариант хорошей базы данных с отличной структурой... можно создать целую структурную сеть, добавлять и описания и ключевые слова и поиск по ключевым словам, и выборки...очень удобная вещь.. просто мегаструктура.. жаль что к2 нет для J1.6.
« Последнее редактирование: 02.10.2011, 21:17:20 от Yura Vakulenko »
*

yrygvay

  • Живу я здесь
  • 1289
  • 32
Re: Ограничить длину заголовков К2
« Ответ #18 : 03.10.2011, 10:46:46 »

Почему разработчики К2 не предусмотрели такой очевидный вариант с настройкой количества символов или слов в Заголовке материалов для блока категории?  ;) Было бы отлично если бы они добавили такой параметр в админ панель, похоже параметру Introtext word limit

добавить параметр  header word limit and/or header characters limit

Вообще к2 такой мощный контент менеджер - мне он очень нравится. Я правда еще не очень в нем разобрался, только недавно начал использовать. Очень удобный в организации любого материала, особенно каталога товаров или чего-то такого глобального, масштабногог, такой своеобразный вариант хорошей базы данных с отличной структурой... можно создать целую структурную сеть, добавлять и описания и ключевые слова и поиск по ключевым словам, и выборки...очень удобная вещь.. просто мегаструктура.. жаль что к2 нет для J1.6.


1- Есть модуль Гавика, который это отлично делает. (но только для материалов)
2- для 1.7 http://getk2.org/svnDownload.php
Смотрю....
*

waterfly

  • Осваиваюсь на форуме
  • 83
  • 0
Re: Ограничить длину заголовков К2
« Ответ #19 : 20.11.2013, 01:55:36 »
Подскажите как ограничить количество символов в такой конструкции

Код
<?php 
            if($params->get('pTooltip')){
              if(($params->get('pTooltipLimit')) && (strlen($item->fulltext) > $params->get('pTooltipLimit'))){
                $toolText = substr($item->fulltext, 0, $params->get('pTooltipLimit'));
              }else{
                $toolText = $item->fulltext;
              }
              echo JHTML::tooltip(strip_tags($toolText), $item->title,
              '', $item->title);
              ?>
*

Edikxp

  • Осваиваюсь на форуме
  • 33
  • 0
Re: Ограничить длину заголовков К2
« Ответ #20 : 24.09.2014, 13:23:32 »
Дай вам бог здоровья программисты, что отвечаете тут людям ))) Все два варианта работают ))
*

Edikxp

  • Осваиваюсь на форуме
  • 33
  • 0
Re: Ограничить длину заголовков К2
« Ответ #21 : 02.10.2014, 18:23:54 »
Подскажите еще как ограничить длину в модуле Content - mod_k2_content

Вот код

Код
      <?php if($params->get('itemTitle')): ?>
      <a class="moduleItemTitle" href="<?php echo $item->link; ?>"><?php echo $item->title; ?></a>
      <?php endif; ?>


Так вроде работает ))


     <?php if($params->get('itemTitle')): ?>
      <a class="moduleItemTitle" href="<?php echo $item->link; ?>" title="<?php echo $item->title; ?>"><?php echo K2HelperUtilities::wordLimit($item->title, 4); ?></a>
      <?php endif; ?>
« Последнее редактирование: 02.10.2014, 18:43:09 от Edikxp »
*

vitmail99

  • Осваиваюсь на форуме
  • 67
  • 0
Re: Ограничить длину заголовков К2
« Ответ #22 : 28.10.2015, 21:53:12 »
Код: php
<?php if($this->item->params->get('catItemTitle')): ?>
    <!-- Item title -->
        <h3 class="catItemTitle">
   <?php if ($this->item->params->get('catItemTitleLinked')): ?>
       <a href="<?php echo $this->item->link; ?>" title="<?php echo $this->item->title; ?>">
     <?php echo K2HelperUtilities::wordLimit($this->item->title, 5); ?>
  </a>
   <?php else: ?>
  <?php echo K2HelperUtilities::wordLimit($this->item->title, 5); ?>
            <?php endif; ?>


У меня Joomla 3.4 и K2_v2.6.9
Заменил вашим кодом, который выше, свой код, который ниже:
Код
<?php if($this->item->params->get('catItemTitle')): ?>
  <!-- Item title -->
  <h3 class="catItemTitle">
<?php if(isset($this->item->editLink)): ?>
<!-- Item edit link -->
<span class="catItemEditLink">
<a class="modal" rel="{handler:'iframe',size:{x:990,y:550}}" href="<?php echo $this->item->editLink; ?>">
<?php echo JText::_('K2_EDIT_ITEM'); ?>
</a>
</span>
<?php endif; ?>

  <?php if ($this->item->params->get('catItemTitleLinked')): ?>
<a href="<?php echo $this->item->link; ?>">
  <?php echo $this->item->title; ?>
  </a>
  <?php else: ?>
  <?php echo $this->item->title; ?>
  <?php endif; ?>

Вроде все работает, но после заголовка появляются три точки! Их можно убрать?
« Последнее редактирование: 28.10.2015, 22:14:23 от vitmail99 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Адаптированный список материалов катего

Автор fil

Ответов: 1
Просмотров: 104
Последний ответ 06.08.2017, 17:47:12
от fil
Вывод результата поиска - К2 tools ?

Автор warlocksp

Ответов: 1
Просмотров: 194
Последний ответ 15.03.2017, 14:31:49
от warlocksp
Слетает кодировка вложений K2

Автор FOGOT-BAstA

Ответов: 3
Просмотров: 507
Последний ответ 11.03.2017, 22:34:11
от Septdir
Переименовать вложение при сохранении ма

Автор Леон

Ответов: 3
Просмотров: 226
Последний ответ 11.07.2016, 16:40:03
от NewUsers
К2 портит вложения doc, docx

Автор Леон

Ответов: 2
Просмотров: 318
Последний ответ 02.06.2016, 15:42:28
от Леон