Инфо бар типов контента. Как и Где?

#1 2 апреля 2019 в 21:47
В новых версиях Инфо бар типов контента теперь формируется унифицировано:
  1.  
  2. <?php if (!empty($item['info_bar'])){ ?>
  3. <div class="info_bar">
  4. <?php foreach($item['info_bar'] as $bar){ ?>
  5. <div class="bar_item <?php echo !empty($bar['css']) ? $bar['css'] : ''; ?>" title="<?php html(!empty($bar['title']) ? $bar['title'] : ''); ?>">
  6. <?php if (!empty($bar['href'])){ ?>
  7. <a href="<?php echo $bar['href']; ?>"><?php echo $bar['html']; ?></a>
  8. <?php } else { ?>
  9. <?php echo $bar['html']; ?>
  10. <?php } ?>
  11. </div>
  12. <?php } ?>
  13. </div>
  14. <?php } ?>
  15.  
  1. <?php if ($show_bar){ ?>
  2. <div class="info_bar">
  3. <?php if (!empty($item['rating_widget'])){ ?>
  4. <div class="bar_item bi_rating">
  5. <?php echo $item['rating_widget']; ?>
  6. </div>
  7. <?php } ?>
  8. <?php if ($fields['date_pub']['is_in_item']){ ?>
  9. <div class="bar_item bi_date_pub" title="<?php html( $fields['date_pub']['title'] ); ?>">
  10. <?php echo $fields['date_pub']['html']; ?>
  11. </div>
  12. <?php } ?>
  13. <?php if (!$item['is_pub']){ ?>
  14. <div class="bar_item bi_not_pub">
  15. <?php echo LANG_CONTENT_NOT_IS_PUB; ?>
  16. </div>
  17. <?php } ?>
  18. <?php if (!empty($ctype['options']['hits_on'])){ ?>
  19. <div class="bar_item bi_hits" title="<?php echo LANG_HITS; ?>">
  20. <?php echo $item['hits_count']; ?>
  21. </div>
  22. <?php } ?>
  23. <?php if ($fields['user']['is_in_item']){ ?>
  24. <div class="bar_item bi_user" title="<?php html( $fields['user']['title'] ); ?>">
  25. <?php echo $fields['user']['html']; ?>
  26. </div>
  27. <?php if (!empty($item['folder_title'])){ ?>
  28. <div class="bar_item bi_folder">
  29. <a href="<?php echo href_to('users', $item['user']['id'], array('content', $ctype['name'], $item['folder_id'])); ?>"><?php echo $item['folder_title']; ?></a>
  30. </div>
  31. <?php } ?>
  32. <?php } ?>
  33. <?php if (!empty($ctype['options']['share_code'])){ ?>
  34. <div class="bar_item bi_share">
  35. <div class="share">
  36. <?php echo $ctype['options']['share_code']; ?>
  37. </div>
  38. </div>
  39. <?php } ?>
  40. <?php if (!$item['is_approved']){ ?>
  41. <div class="bar_item bi_not_approved">
  42. <?php echo $item['is_draft'] ? LANG_CONTENT_DRAFT_NOTICE : LANG_CONTENT_NOT_APPROVED; ?>
  43. </div>
  44. <?php } ?>
  45. </div>
  46. <?php } ?>
Кто знает, расскажите как он формируется и где?
#2 3 апреля 2019 в 00:12

Куда вот эта часть делась?

Killer's dream
Может в system/controllers/content/frontend.php? Части я там нашел, начиная со строки 388. Только не понимаю, нафига так сделано. Чтобы нельзя было в шаблоне оставить только то, что нужно? Странно это.
#3 3 апреля 2019 в 07:03

Чтобы нельзя было в шаблоне оставить только то, что нужно

чебурек дохлэй мыш
все можно
вот пример вывода иконок перед нужными барами, код из default_item.tpl.php

  1.  
  2. <?php if (!empty($item['info_bar'])){ ?>
  3. <div class="info_bar">
  4. <?php foreach($item['info_bar'] as $bar){ ?>
  5. <div class="bar_item <?php echo !empty($bar['css']) ? $bar['css'] : ''; ?>" title="<?php html(!empty($bar['title']) ? $bar['title'] : ''); ?>">
  6. <?php if($bar['css'] == 'bi_date_pub'){ ?>
  7. <i class="fa fa-clock-o" aria-hidden="true"></i>&nbsp;
  8. <?php } ?>
  9. <?php if($bar['css'] == 'bi_hits'){ ?>
  10. <i class="fa fa-eye" aria-hidden="true"></i>&nbsp;
  11. <?php } ?>
  12. <?php if($bar['css'] == 'bi_user'){ ?>
  13. <i class="fa fa-user-o" aria-hidden="true"></i>&nbsp;
  14. <?php } ?>
  15. <?php if (!empty($bar['href'])){ ?>
  16. <a href="<?php echo $bar['href']; ?>"><?php echo $bar['html']; ?></a>
  17. <?php } else { ?>
  18. <?php echo $bar['html']; ?>
  19. <?php } ?>
  20. </div>
  21. <?php } ?>
  22. </div>
  23. <?php } ?>
  24.  
просто если раньше вы удаляли кусок кода, теперь надо пропустить его в переборе массива. Добавьте после

  1.  
  2. <?php foreach($item['info_bar'] as $bar){
  3.  
строчки

  1.  
  2. if($bar['css'] == 'bi_rating'){
  3. continue;
  4. }
  5.  
и не будет выведен рейтинг. Остальные css вы можете посмотреть в указанном вами файле github.com/instantsoft/icms2/blob/af7965c170658ef6cdbf2acf5c8ab717ea97fde9/system/controllers/content/frontend.php#L407

Только не понимаю, нафига так сделано

чебурек дохлэй мыш
чтобы можно было вносить изменения в bar не только правками шаблона, но и с помощью хуков, правя $item['info_bar']. И шаблоны стали компактнее. Существенно, если сравнить 2.12.1 и 2.6.0, скажем.
#4 3 апреля 2019 в 10:09
Zau4man, спасибо за разъяснение.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.