Как ограничить длину заголовка темы в модуле?

#1 23 мая 2012 в 11:08
Какие переменные искать и как их править?

К примеру, в модуле, последние записи в блоге.
Спасибо.
#2 23 мая 2012 в 11:30
да, мне тоже интерсно как обрезка делается?
#3 23 мая 2012 в 11:45
Во время ввода с помощью атрибута maxlength, во время вывода с помощью функции truncate. Можно просто overflow:hidden в css прописать Смотря где и чему обрезание нужно делать.
#4 23 мая 2012 в 13:27
Вот на примере бы/
Спасибо.
#5 23 мая 2012 в 14:01
spacer, на примере чего? В случае поднятой вами темы в файле mod_latestblogs.tpl есть строка {$post.title|truncate:70}, число 70 означает, что текст будет обрезан и заменен на… после 70 символа.
#6 23 мая 2012 в 14:08
Вот и спасибо.

Правда, у меня такого нет. Вот код файла:

  1. {if $is_blog}
  2.  
  3. {foreach key=tid item=post from=$posts}
  4. <div class="mod_latest_entry">
  5.  
  6. <div class="mod_latest_image">
  7. {$post.image}
  8. </div>
  9.  
  10. <a class="mod_latest_blog_title" href="{$post.href}">{$post.title}</a>
  11.  
  12. <div class="mod_latest_date">
  13. {$post.fpubdate} - <a href="{$post.bloghref}">{$post.blog}</a>{if $cfg.showcom} - <a href="{$post.href}" title="{$post.comments|spellcount:$LANG.COMMENT1:$LANG.COMMENT2:$LANG.COMMENT10}" class="mod_latest_comments">{$post.comments}</a>{/if}
  14. </div>
  15.  
  16. </div>
  17. {/foreach}
  18.  
  19. {if $cfg.showrss}
  20. <div class="mod_latest_rss">
  21. <a href="/rss/blogs/all/feed.rss">{$LANG.LATESTBLOGS_RSS}</a>
  22. </div>
  23. {/if}
  24.  
  25. {else}
  26. <p>{$LANG.LATESTBLOGS_NOT_POSTS}</p>
  27. {/if}
#7 23 мая 2012 в 15:55
  1.  
  2. <a class="mod_latest_blog_title" href="{$post.href}">{$post.title|truncate:70}</a>
  3.  
вместо 70 нужное кол-во символов…
#8 23 мая 2012 в 16:02
Спасибо, помогло.
1. А как можно изменить формат даты с 15 апреля 2012 на 15.04.12 ?

2. В модуле "последние комментарии" (как я понимаю это — mod_comments.tpl) не стоит никаких ограничений, однако, заголовки выводятся обрубленными. Где-то еще это ограничение может стоять?

Есть вот такой кусок кода в файле /modules/mod_comments/module.php

  1. $sql = "SELECT c.id as id,
  2. c.target as target,
  3. c.target_id as target_id,
  4. c.target_link as target_link,
  5. c.target_title,
  6. c.content as content,
  7. c.guestname,
  8. c.pubdate as fpubdate,
  9. IFNULL(c.user_id, 0) as user_id,
  10. IFNULL(u.nickname, '') as author,
  11. IFNULL(u.login, '') as author_login,
  12. IFNULL(v.total_rating, 0) as rating
  13. FROM cms_comments c
  14. INNER JOIN cms_users u ON u.id = c.user_id {$guest_sql}
  15. LEFT JOIN cms_ratings_total v ON v.item_id=c.id AND v.target='comment'
  16. WHERE c.published=1 {$hidden_sql} {$target_where}
  17. GROUP BY c.id
  18. ORDER BY c.id DESC
  19. LIMIT 70";
  20.  
  21. $result = $inDB->query($sql);
  22. $is_com = false;
  23. if ($inDB->num_rows($result)){
  24. $is_com = true;
  25. $count = 0;
  26. $comments = array();
  27. while($con = $inDB->fetch_assoc($result)){
  28.  
  29. if ($count >= $cfg['shownum']) { break; }
  30.  
  31. if ($con['rating'] >= $cfg['minrate']){
  32.  
  33. $con['link'] = $con['target_link'] . '#c'.$con['id'];
  34. $con['text'] = strip_tags($con['content']);
  35.  
  36. $con['text'] = preg_replace('/\[hide\](.*?)\[\/hide\]/i', '', $con['text']);
  37. $con['text'] = preg_replace('/\[hide\](.*?)$/i', '', $con['text']);
  38.  
  39. if (strlen($con['text'])>60) { $con['text'] = substr($con['text'], 0, 60). '...'; }
  40. if (!$con['text']) { $con['text'] = '...'; }
Но я боюсь его править, т.к. тут с базой что-то связано и поломать все не хочется.
#9 23 мая 2012 в 16:33
1. Если речь идет о модуле последние комментарии, то изменить дату можно так:
В файле ../modules/mod_comments/module.php найти строку (по умолчанию строка 87)
  1. $con['fpubdate'] = $inCore->dateFormat($con['fpubdate']);
и заменить ее на этот код:
  1. //$con['fpubdate'] = $inCore->dateFormat($con['fpubdate']);
  2.  
  3. $oldDate = ''.$con['fpubdate'].''; // 2011-11-20T11:00:00
  4. $parts = explode('-', $oldDate);
  5. $parts[2] = substr("".$parts[2]."", 0, 2);
  6. $parts[0] = substr("".$parts[0]."", 2, 4);
  7. $con['fpubdate'] = "{$parts[2]}.{$parts[1]}.{$parts[0]}";
После такой замены формат даты в модуле "Последние комментарии" изменится с 15 апреля 2012 на 15.04.12

2. Ограничение в этом-же файле ../modules/mod_comments/module.php в строке 82.
  1. if (strlen($con['text'])>60) { $con['text'] = substr($con['text'], 0, 60). '...'; }
Поменяйте цифру 60 на нужное вам количество символов.
#10 23 мая 2012 в 17:55
Спасибо, все работает.
А как сделать, чтобы у дата выглядела так (без года) — "12 мая"?
#11 23 мая 2012 в 20:12
spacer, найти в файле ../modules/mod_comments/module.php строку (умолчанию 87)
  1. $con['fpubdate'] = $inCore->dateFormat($con['fpubdate']);
и после добавить:
  1. $con['fpubdate'] = substr("".$con['fpubdate']."", 0, -4);
#12 23 мая 2012 в 23:24

spacer, найти в файле ../modules/mod_comments/module.php строку (умолчанию 87)

Александр
Если делать этим способом, тогда комментарии, добавленные сегодня имеют обрезанный вид "Сегодня в 0"
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.