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

#1 15 февраля 2016 в 11:13
Хочу добавить рекламный блок после 1 итерациями foreach в стандартном списке default_list_featured.tpl.php
добавил for но где то косяк, то грузит бесконечно, то ошибка.
  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. &rarr;
  73. <?php } ?>
  74.  
  75. <?php if ($is_private) { ?>
  76. <?php html($item[$field['name']]); ?> <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  77. <?php } else { ?>
  78. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php html($item[$field['name']]); ?></a>
  79. <?php if ($item['is_private']) { ?>
  80. <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  81. <?php } ?>
  82. <?php } ?>
  83.  
  84. <?php } else { ?>
  85.  
  86. <?php if ($is_private) { $stop++; ?>
  87. <!--noindex--><div class="private_field_hint"><?php echo LANG_PRIVACY_PRIVATE_HINT; ?></div><!--/noindex-->
  88. <?php } else { ?>
  89. <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?>
  90. <?php } ?>
  91.  
  92. <?php } ?>
  93. </div>
  94.  
  95. </div>
  96.  
  97. <?php } ?>
  98.  
  99. </div>
  100.  
  101. <?php
  102. $is_tags = $ctype['is_tags'] &&
  103. !empty($ctype['options']['is_tags_in_list']) &&
  104. $item['tags'];
  105. ?>
  106.  
  107. <?php if ($is_tags){ ?>
  108. <div class="tags_bar">
  109. <?php echo html_tags_bar($item['tags']); ?>
  110. </div>
  111. <?php } ?>
  112.  
  113. <?php
  114. $show_bar = !empty($item['rating_widget']) ||
  115. $fields['date_pub']['is_in_list'] ||
  116. $fields['user']['is_in_list'] ||
  117. !$item['is_approved'];
  118. ?>
  119.  
  120. <?php if ($show_bar){ ?>
  121. <div class="info_bar">
  122. <?php if (!empty($item['rating_widget'])){ ?>
  123. <div class="bar_item bi_rating">
  124. <?php echo $item['rating_widget']; ?>
  125. </div>
  126. <?php } ?>
  127. <?php if ($fields['date_pub']['is_in_list']){ ?>
  128. <div class="bar_item bi_date_pub" title="<?php echo $fields['date_pub']['title']; ?>">
  129. <?php echo $fields['date_pub']['handler']->parse( $item['date_pub'] ); ?>
  130. </div>
  131. <?php } ?>
  132. <?php if ($fields['user']['is_in_list']){ ?>
  133. <div class="bar_item bi_user" title="<?php echo $fields['user']['title']; ?>">
#2 15 февраля 2016 в 11:28
Интересный код. Я впечатанлён.
#3 15 февраля 2016 в 11:32
  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.
#4 15 февраля 2016 в 11:49
Да $ упустил, правил тут на сайте, у меня раньше было примерно в таком же стиле через for все работало но не помню что куда подставлял.
#5 15 февраля 2016 в 11:51
Я так понял вы хотите после первой записи в списке воткнуть рекламный блок?
#6 15 февраля 2016 в 11:54


Я так понял вы хотите после первой записи в списке воткнуть рекламный блок?

Loadырь
Да, можно конечно еще добавить php rand.
#7 15 февраля 2016 в 11:58
Как то так надо
  1. <?php if ($items){ ?>
  2. <?php
  3. $advert = '<div>...</div>';
  4. $i = 0;
  5. ;?>
  6. <div class="content_list featured <?php echo $ctype['name']; ?>_list">
  7.  
  8.  
  9. <?php foreach($items as $item){ ?>
  10.  
  11. <?php
  12. $item['ctype'] = $ctype;
  13. $is_private = $item['is_private'] && $hide_except_title && !$item['user']['is_friend'];
  14. $class = $index==0 ? 'first' : ($index<3 ? 'second' : '');
  15. $size = $index==0 ? 'big' : ($index<3 ? 'normal' : 'small');
  16. $stop = 0;
  17. ?>
  18. if ($i == 1){ echo $advert; }
  19.  
  20. <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 } ?>">
  21.  
  22. <?php if (isset($fields['photo']) && $fields['photo']['is_in_list'] && !empty($item['photo'])){ ?>
  23. <div class="photo">
  24. <?php if ($is_private) { ?>
  25. <?php echo html_image(default_images('private', $size), $size, $item['title']); ?>
  26. <?php } else { ?>
  27. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  28. <?php echo html_image($item['photo'], $size, $item['title']); ?>
  29. </a>
  30. <?php } ?>
  31. <?php unset($item['photo']); ?>
  32. </div>
  33. <?php } ?>
  34.  
  35. <div class="fields">
  36.  
  37. <?php foreach($fields as $field){ ?>
  38.  
  39. <?php if ($stop === 2) { break; } ?>
  40. <?php if (empty($item[$field['name']])) { continue; } ?>
  41. <?php if ($field['is_system']) { continue; } ?>
  42. <?php if (!$field['is_in_list']) { continue; } ?>
  43. <?php if ($field['groups_read'] && !$user->isInGroups($field['groups_read'])) { continue; } ?>
  44.  
  45. <?php
  46. if (!isset($field['options']['label_in_list'])) {
  47. $label_pos = 'none';
  48. } else {
  49. $label_pos = $field['options']['label_in_list'];
  50. }
  51. ?>
  52.  
  53. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>">
  54.  
  55. <?php if ($label_pos != 'none'){ ?>
  56. <div class="title_<?php echo $label_pos; ?>">
  57. <?php echo $field['title'].($label_pos=='left' ? ': ' : ''); ?>
  58. </div>
  59. <?php } ?>
  60.  
  61. <div class="value">
  62. <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ $stop++; ?>
  63.  
  64. <?php if ($item['parent_id']){ ?>
  65. <a class="parent_title" href="<?php echo href_to($item['parent_url']); ?>"><?php html($item['parent_title']); ?></a>
  66. &#8594;
  67. <?php } ?>
  68.  
  69. <?php if ($is_private) { ?>
  70. <?php html($item[$field['name']]); ?> <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  71. <?php } else { ?>
  72. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php html($item[$field['name']]); ?></a>
  73. <?php if ($item['is_private']) { ?>
  74. <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  75. <?php } ?>
  76. <?php } ?>
  77.  
  78. <?php } else { ?>
  79.  
  80. <?php if ($is_private) { $stop++; ?>
  81. <!--noindex--><div class="private_field_hint"><?php echo LANG_PRIVACY_PRIVATE_HINT; ?></div><!--/noindex-->
  82. <?php } else { ?>
  83. <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?>
  84. <?php } ?>
  85.  
  86. <?php } ?>
  87. </div>
  88.  
  89. </div>
  90.  
  91. <?php } ?>
  92.  
  93. </div>
  94.  
  95. <?php
  96. $is_tags = $ctype['is_tags'] &&
  97. !empty($ctype['options']['is_tags_in_list']) &&
  98. $item['tags'];
  99. ?>
  100.  
  101. <?php if ($is_tags){ ?>
  102. <div class="tags_bar">
  103. <?php echo html_tags_bar($item['tags']); ?>
  104. </div>
  105. <?php } ?>
  106.  
  107. <?php
  108. $show_bar = !empty($item['rating_widget']) ||
  109. $fields['date_pub']['is_in_list'] ||
  110. $fields['user']['is_in_list'] ||
  111. !$item['is_approved'];
  112. ?>
  113.  
  114. <?php if ($show_bar){ ?>
  115. <div class="info_bar">
  116. <?php if (!empty($item['rating_widget'])){ ?>
  117. <div class="bar_item bi_rating">
  118. <?php echo $item['rating_widget']; ?>
  119. </div>
  120. <?php } ?>
  121. <?php if ($fields['date_pub']['is_in_list']){ ?>
  122. <div class="bar_item bi_date_pub" title="<?php echo $fields['date_pub']['title']; ?>">
  123. <?php echo $fields['date_pub']['handler']->parse( $item['date_pub'] ); ?>
  124. </div>
  125. <?php } ?>
  126. <?php if ($fields['user']['is_in_list']){ ?>
  127. <div class="bar_item bi_user" title="<?php echo $fields['user']['title']; ?>">
  128. <?php echo $fields['user']['handler']->parse( $item['user'] ); ?>
  129. </div>
  130. <?php if (!empty($item[
#8 15 февраля 2016 в 12:23
Вот код рабочий, сейчас после 1 прохода выводит div
  1. <?php $advert = '<div>...</div>'; $i = 0;?>
  2. <?php if ($items){ ?>
  3.  
  4. <div class="content_list featured <?php echo $ctype['name']; ?>_list">
  5.  
  6. <?php $index = 0; ?>
  7.  
  8. <?php foreach($items as $item){ ?>
  9.  
  10. <?php
  11. $item['ctype'] = $ctype;
  12. $is_private = $item['is_private'] && $hide_except_title && !$item['user']['is_friend'];
  13. $class = $index==0 ? 'first' : ($index<3 ? 'second' : '');
  14. $size = $index==0 ? 'big' : ($index<3 ? 'normal' : 'small');
  15. $stop = 0;
  16. ?>
  17. <?php if ($i == 1){ echo $advert; }?>
  18.  
  19. <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 } ?>">
  20.  
  21. <?php if (isset($fields['photo']) && $fields['photo']['is_in_list'] && !empty($item['photo'])){ ?>
  22. <div class="photo">
  23. <?php if ($is_private) { ?>
  24. <?php echo html_image(default_images('private', $size), $size, $item['title']); ?>
  25. <?php } else { ?>
  26. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>">
  27. <?php echo html_image($item['photo'], $size, $item['title']); ?>
  28. </a>
  29. <?php } ?>
  30. <?php unset($item['photo']); ?>
  31. </div>
  32. <?php } ?>
  33.  
  34. <div class="fields">
  35.  
  36. <?php foreach($fields as $field){ ?>
  37.  
  38. <?php if ($stop === 2) { break; } ?>
  39. <?php if (empty($item[$field['name']])) { continue; } ?>
  40. <?php if ($field['is_system']) { continue; } ?>
  41. <?php if (!$field['is_in_list']) { continue; } ?>
  42. <?php if ($field['groups_read'] && !$user->isInGroups($field['groups_read'])) { continue; } ?>
  43.  
  44. <?php
  45. if (!isset($field['options']['label_in_list'])) {
  46. $label_pos = 'none';
  47. } else {
  48. $label_pos = $field['options']['label_in_list'];
  49. }
  50. ?>
  51.  
  52. <div class="field ft_<?php echo $field['type']; ?> f_<?php echo $field['name']; ?>">
  53.  
  54. <?php if ($label_pos != 'none'){ ?>
  55. <div class="title_<?php echo $label_pos; ?>">
  56. <?php echo $field['title'].($label_pos=='left' ? ': ' : ''); ?>
  57. </div>
  58. <?php } ?>
  59.  
  60. <div class="value">
  61. <?php if ($field['name'] == 'title' && $ctype['options']['item_on']){ $stop++; ?>
  62.  
  63. <?php if ($item['parent_id']){ ?>
  64. <a class="parent_title" href="<?php echo href_to($item['parent_url']); ?>"><?php html($item['parent_title']); ?></a>
  65. &rarr;
  66. <?php } ?>
  67.  
  68. <?php if ($is_private) { ?>
  69. <?php html($item[$field['name']]); ?> <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  70. <?php } else { ?>
  71. <a href="<?php echo href_to($ctype['name'], $item['slug'].'.html'); ?>"><?php html($item[$field['name']]); ?></a>
  72. <?php if ($item['is_private']) { ?>
  73. <span class="is_private" title="<?php html(LANG_PRIVACY_PRIVATE); ?>"></span>
  74. <?php } ?>
  75. <?php } ?>
  76.  
  77. <?php } else { ?>
  78.  
  79. <?php if ($is_private) { $stop++; ?>
  80. <!--noindex--><div class="private_field_hint"><?php echo LANG_PRIVACY_PRIVATE_HINT; ?></div><!--/noindex-->
  81. <?php } else { ?>
  82. <?php echo $field['handler']->setItem($item)->parseTeaser($item[$field['name']]); ?>
  83. <?php } ?>
  84.  
  85. <?php } ?>
  86. </div>
  87.  
  88. </div>
  89.  
  90. <?php } ?>
  91.  
  92. </div>
  93.  
  94. <?php
  95. $is_tags = $ctype['is_tags'] &&
  96. !empty($ctype['options']['is_tags_in_list']) &&
  97. $item['tags'];
  98. ?>
  99.  
  100. <?php if ($is_tags){ ?>
  101. <div class="tags_bar">
  102. <?php echo html_tags_bar($item['tags']); ?>
  103. </div>
  104. <?php } ?>
  105.  
  106. <?php
  107. $show_bar = !empty($item['rating_widget']) ||
  108. $fields['date_pub']['is_in_list'] ||
  109. $fields['user']['is_in_list'] ||
  110. !$item['is_approved'];
  111. ?>
  112.  
  113. <?php if ($show_bar){ ?>
  114. <div class="info_bar">
  115. <?php if (!empty($item['rating_widget'])){ ?>
  116. <div class="bar_item bi_rating">
  117. <?php echo $item['rating_widget']; ?>
  118. </div>
  119. <?php } ?>
  120. <?php if ($fields['date_pub']['is_in_list']){ ?>
  121. <div class="bar_item bi_date_pub" title="<?php echo $fields['date_pub']['title']; ?>">
  122. <?php echo $fields['date_pub']['handler']->parse( $item['date_pub'] ); ?>
  123. </div>
  124. <?php } ?>
  125. <?php if ($fields['user']['is_in_list']){ ?>
  126. <div class="bar_item bi_user" title="<?php echo $fields['user']['title']; ?>">
  127. <?php echo $fields['user']['handler']->parse( $item['user'] ); ?>
  128. </div>
  129. <?php if
#9 15 февраля 2016 в 12:41
Добавил еще rand, теперь позиция произвольная от 1 до 10
получилось
  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.  
#10 15 февраля 2016 в 12:54
Чет вы усложняете все.
Там жеуже есть переменная $index. В ней уже лежит номер новости.
Вот ее и проверяйте, зачем еще $i?

Просто вставьте что-то вроде
  1. if ($index==1) {echo $advert;}
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.