Как добавить div в списке статей icms2

 
Посетитель
small user social cms
Сообщений: 89
Хочу добавить рекламный блок после 1 итерациями foreach в стандартном списке default_list_featured.tpl.php
добавил for но где то косяк, то грузит бесконечно, то ошибка.
Код PHP:
  1. <?php if ($items){ ?>
  2. <?php
  3. $advert = '<div>...</div>'
  4. ;?>
  5. <div class="content_list featured <?php echo $ctype['name']; ?>_list">
  6.  
  7.  
  8. <?php $index = 0; ?>
  9. <?php for (i = 1; ;){
  10. if (i = 1){
  11. echo $advert;
  12. }
  13. ?>
  14.  
  15.  
  16. <?php foreach($items as $item){ ?>
  17.  
  18. <?php
  19. $item['ctype'] = $ctype;
  20. $is_private = $item['is_private'] && $hide_except_title && !$item['user']['is_friend'];
  21. $class = $index==0 ? 'first' : ($index<3 ? 'second' : '');
  22. $size = $index==0 ? 'big' : ($index<3 ? 'normal' : 'small');
  23. $stop = 0;
  24. ?>
  25.  
  26. <div class="content_list_item <?php echo $ctype['name']; ?>_list_item <?php if ($class) { echo $class; } ?><?php if (!empty($item['is_vip'])){ ?> is_vip<?php } ?>">
  27.  
  28. <?php if (isset($fields['photo']) && $fields['photo']['is_in_list'] && !empty($item['photo'])){ ?>
  29. <div class="photo">
  30. <?php if ($is_private) { ?>
  31. <?php echo html_image(default_images('private', $size), $size, $item['title']); ?>
  32. <?php } else { ?>
  33. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  34. <?php echo html_image($item['photo'], $size, $item['title']); ?>
  35. </a>
  36. <?php } ?>
  37. <?php unset($item['photo']); ?>
  38. </div>
  39. <?php } ?>
  40.  
  41. <div class="fields">
  42.  
  43. <?php foreach($fields as $field){ ?>
  44.  
  45. <?php if ($stop === 2) { break; } ?>
  46. <?php if (empty($item[$field['name']])) { continue; } ?>
  47. <?php if ($field['is_system']) { continue; } ?>
  48. <?php if (!$field['is_in_list']) { continue; } ?>
  49. <?php if ($field['groups_read'] && !$user->isInGroups($field['groups_read'])) { continue; } ?>
  50.  
  51. <?php
  52. if (!isset($field['options']['label_in_list'])) {
  53. $label_pos = 'none';
  54. } else {
  55. $label_pos = $field['options']['label_in_list'];
  56. }
  57. ?>
  58.  
  59. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>">
  60.  
  61. <?php if ($label_pos != 'none'){ ?>
  62. <div class="title_<?php echo $label_pos; ?>">
  63. <?php echo $field['title'].($label_pos=='left' ? ': ' : ''); ?>
  64. </div>
  65. <?php } ?>
  66.  
  67. <div class="value">
  68. <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ $stop++; ?>
  69.  
  70. <?php if ($item['parent_id']){ ?>
  71. <a class="parent_title" href="<?php echo href_to($item['parent_url']); ?>"><?php html($item['parent_title']); ?></a>
  72. <?php } ?>
  73.  
  74. <?php if ($is_private) { ?>
  75. <?php html($item[$field['name']]); ?> <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  76. <?php } else { ?>
  77. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php html($item[$field['name']]); ?></a>
  78. <?php if ($item['is_private']) { ?>
  79. <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  80. <?php } ?>
  81. <?php } ?>
  82.  
  83. <?php } else { ?>
  84.  
  85. <?php if ($is_private) { $stop++; ?>
  86. <!--noindex--><div class="private_field_hint"><?php echo LANG_PRIVACY_PRIVATE_HINT; ?></div><!--/noindex-->
  87. <?php } else { ?>
  88. <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?>
  89. <?php } ?>
  90.  
  91. <?php } ?>
  92. </div>
  93.  
  94. </div>
  95.  
  96. <?php } ?>
  97.  
  98. </div>
  99.  
  100. <?php
  101. $is_tags = $ctype['is_tags'] &&
  102. !empty($ctype['options']['is_tags_in_list']) &&
  103. $item['tags'];
  104. ?>
  105.  
  106. <?php if ($is_tags){ ?>
  107. <div class="tags_bar">
  108. <?php echo html_tags_bar($item['tags']); ?>
  109. </div>
  110. <?php } ?>
  111.  
  112. <?php
  113. $show_bar = !empty($item['rating_widget']) ||
  114. $fields['date_pub']['is_in_list'] ||
  115. $fields['user']['is_in_list'] ||
  116. !$item['is_approved'];
  117. ?>
  118.  
  119. <?php if ($show_bar){ ?>
  120. <div class="info_bar">
  121. <?php if (!empty($item['rating_widget'])){ ?>
  122. <div class="bar_item bi_rating">
  123. <?php echo $item['rating_widget']; ?>
  124. </div>
  125. <?php } ?>
  126. <?php if ($fields['date_pub']['is_in_list']){ ?>
  127. <div class="bar_item bi_date_pub" title="<?php echo $fields['date_pub']['title']; ?>">
  128. <?php echo $fields['date_pub']['handler']->parse( $item['date_pub'] ); ?>
  129. </div>
  130. <?php } ?>
  131. <?php if ($fields['user']['is_in_list']){ ?>
  132. <div class="bar_item bi_user" title="<?php echo $fields['user']['title']; ?>">
  133. <?php echo $fields['user']['handler']->parse( $item['user'] ); ?>
  134. </div>
  135. <?php if (!empty($item['folder_title'])){ ?>
  136. <div class="bar_item bi_folder">
  137. <a href="<?php echo href_to('users', $item['user']['id'], array('content', $ctype['name'], $item['folder_id'])); ?>"><?php echo $item['folder_title']; ?></a>
  138. </div>
  139. <?php } ?>
  140. <?php } ?>
  141. <?php if ($ctype['is_comments']){ ?>
  142. <div class="bar_item bi_comments">
  143. <?php if ($is_private) { ?>
  144. <?php echo intval($item['comments']); ?>
  145. <?php } else { ?>
  146. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>#comments" title="<?php echo LANG_COMMENTS; ?>">
  147. <?php echo intval($item['comments']); ?>
  148. </a>
  149. <?php } ?>
  150. </div>
  151. <?php } ?>
  152. <?php if (!$item['is_approved']){ ?>
  153. <div class="bar_item bi_not_approved">
  154. <?php echo LANG_CONTENT_NOT_APPROVED; ?>
  155. </div>
  156. <?php } ?>
  157. </div>
  158. <?php } ?>
  159.  
  160. </div>
  161.  
  162. <?php $index++; } ?>
  163. <?php i++};>
  164. </div>
  165.  
  166. <?php if ($perpage < $total) { ?>
  167. <?php echo html_pagebar($page, $perpage, $total, $page_url, $filters); ?>
  168. <?php } ?>
  169.  
  170. <?php } else { echo LANG_LIST_EMPTY; } ?>
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3591
Интересный код. Я впечатанлён.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3591
Код PHP:
  1. <?php for (i = 1; ;){
  2. if (i = 1){
  3. echo $advert;
  4. }
  5. ?>
Вы пытаетесь запустить прогон foreach($items as $item){} в цикле for(i = 1; ;)??? не совсем понятно что вы хотите сделать таким образом?

может сразу вместо этого кода прописать ваш див с адвертом?

P.S. в php лучше писать не i а $i.
Редактировалось: 1 раз (Последний: 15 февраля 2016 в 11:36)
Посетитель
small user social cms
Сообщений: 89
Да $ упустил, правил тут на сайте, у меня раньше было примерно в таком же стиле через for все работало но не помню что куда подставлял.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3591
Я так понял вы хотите после первой записи в списке воткнуть рекламный блок?
Посетитель
small user social cms
Сообщений: 89
Loadырь:

Я так понял вы хотите после первой записи в списке воткнуть рекламный блок?
Да, можно конечно еще добавить php rand.
Редактировалось: 1 раз (Последний: 15 февраля 2016 в 11:56)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3591
Как то так надо
Спойлер
можно конечно поставить счётчик и выводить через 2-3 записи, но rand тут не поможет.
Посетитель
small user social cms
Сообщений: 89
Вот код рабочий, сейчас после 1 прохода выводит div
Спойлер
Посетитель
small user social cms
Сообщений: 89
Добавил еще rand, теперь позиция произвольная от 1 до 10
получилось
Код PHP:
  1.  
  2. <?php $advert = '<div class="advert_list">...</div>';
  3. $i = 0;
  4. $num = rand(1, 10)
  5. ;?>
  6.  
  7. //И в проверке добавил
  8. <?php if ($i == $num){ echo $advert; }?>
  9.  
Редактировалось: 3 раз (Последний: 15 февраля 2016 в 12:42)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1147
Чет вы усложняете все.
Там же уже есть переменная $index. В ней уже лежит номер новости.
Вот ее и проверяйте, зачем еще $i?

Просто вставьте что-то вроде
Код PHP:
  1. if ($index==1) {echo $advert;}
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.