Новые статьи и foreach

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 9 апреля 2011 в 17:08
Я хочу создать свой массив, вернее еще три массива. Как мне сделать, чтобы они перебирались в форече модуля latest?
Где мне лучше разместить массивы и что добавить в mod_latest.tpl?
#2 9 апреля 2011 в 17:13

Погибели предшествует гордость, и падению — надменность.

Пилигриm
А чему предшествует невнимательность?
#3 9 апреля 2011 в 17:15
Неужели это уже где-то было??? shockили ты про стать()?
Если было дай ссылочку, пожалуйста!
#4 9 апреля 2011 в 17:20
Пилигриm, как вы тему назовете — так в неё ответы и поплывую…
#5 9 апреля 2011 в 17:21
/modules/mod_latest/module.php
  1.  
  2. $smarty = $inCore->initSmarty('modules', 'mod_latest.tpl');
  3. $smarty->assign('articles', $articles);
  4. $smarty->assign('rssid', $rssid);
  5. if ($cfg['is_pag']) {
  6. $smarty->assign('pagebar', cmsPage::getPagebar($total_page, $page, $perpage, 'javascript:conPage(%page%, '.$module_id.')'));
  7. }
  8. $smarty->assign('is_ajax', false);
  9. $smarty->assign('is_con', $is_con);
  10. $smarty->assign('module_id', $module_id);
  11. $smarty->assign('cfg', $cfg);
  12. $smarty->display('mod_latest.tpl');
  13.  
Передача переменных в шаблон идёт через: $smarty->assign('cfg', $cfg); 1-это название 2-какую переменную передаём
#6 9 апреля 2011 в 18:24
Все-таки для меня это труднова-то. У меня задача состоит в следующем:
Нужно чтобы элементы из этого массива:
  1. $names[] = "news_1";
  2. $names[] = "news_2";
  3. $names[] = "news_3";
  4.  
  5. $nameb[] = "blok";
  6. $nameb[] = "non";
  7. $nameb[] = "non";
  8.  
  9. $namec[] = "display_news(1)";
  10. $namec[] = "display_news(2)";
  11. $namec[] = "display_news(3)";
Перебирались здесь:
  1. {if $is_con}
  2. {if $cfg.is_pag}{/if}
  3.  
  4. <div class="blok_news">
  5. <div class="blok_news_shapka">
  6. <div class="title_blok_news">
  7. Новости церкви</div>
  8. <a class="blok_news_knopka" title="Новости" href="http://hostjc.ru/novosti">Все новости</a></div>
  9. <div id="news" class="events">
  10.  
  11.  
  12. {foreach key=aid item=article from=$articles}
  13.  
  14. <a id=">>>>>news_1<<<<<" title="{$article.title}" href="{$article.href}" style="display:>>>>>block<<<<<;">
  15. <img width="179" height="161" alt="{$article.title}" src="/images/photos/small/{$article.image}" border="0"/>
  16. </a>
  17. {/foreach}
  18.  
  19.  
  20. {else}
  21.  
  22. {/if}
  23.  
  24.  
  25.  
  26. <p>
  27.  
  28.  
  29. {if $is_con}
  30. {if $cfg.is_pag}{/if}
  31.  
  32. {foreach key=aid item=article from=$articles}
  33.  
  34. <a onmouseover=">>>>>display_news(1)<<<<<" title="{$article.title}" href="{$article.href}">{$article.title}</a>
  35.  
  36. {/foreach}
  37.  
  38.  
  39. </p>
  40. </div>
  41. </div>
  42.  
  43.  
  44.  
  45.  
  46. {else}
  47.  
  48. {/if}
Бьюсь уже — не поверите — не одну неделю. А ведь наверняка все просто!!!
#7 9 апреля 2011 в 19:41
  1.  
  2. $k =array();
  3. $k[] = ....;
  4. ....................
  5. $smarty->assign('k', $k);
  6.  
  7. ............
  8.  
  9.  
  10.  
#8 9 апреля 2011 в 21:05
Dimitrius, спасибо! Как пользоваться шаблонизатором, немного понял.
Но часть проблемы осталась. Создал массив, передал через шаблонизатор, в mod_latest.tpl вставил {$k}. Но на сайте выводится почему-то — Array. Почему это может быть?
#9 9 апреля 2011 в 21:09
а как вы помещаете данные в массив?
#10 9 апреля 2011 в 21:18
module.php
  1. $newsblok = array ();
  2. $newsblok[current] = 'news_1';
  3. $newsblok[current] = 'news_2';
  4. $newsblok[current] = 'news_3';
  5.  
  6. $newsdisp = array ();
  7. $newsdisp[] = "non";
  8. $newsdisp[] = "non";
  9. $newsdisp[] = "blok";
  10.  
  11. $newsmous = array ();
  12. $newsmous[] = "display_news(1)";
  13. $newsmous[] = "display_news(2)";
  14. $newsmous[] = "display_news(3)";
  15.  
  16. .................................
  17.  
  18. $smarty->assign('newsblok', $newsblok);
  19. $smarty->assign('newsdisp', $newsdisp);
  20. $smarty->assign('newsmous', $newsmous);
mod_latest.tpl
  1. {$newsblok}{$newsdisp}{$newsmous}
Вот все действия.
#11 9 апреля 2011 в 21:20
Одинарные кавычки — это всмысле, я уже и так и так пробовал.
#12 9 апреля 2011 в 21:38
попробуй в шаблоне написать так {php} print_r($newsblok); {/php}; Что бы посмотреть что в массиве😊Это я увидел в блоге тут))) учусь по ходу))
#13 9 апреля 2011 в 21:44
Вообще пусто
#14 9 апреля 2011 в 22:00
Ввел непосредственно в template.php:
  1. <?php
  2. $newsblok = array ();
  3. $newsblok[] = 'news_1';
  4. $newsblok[] = 'news_2';
  5. $newsblok[] = 'news_3';
  6. echo $newsblok;
  7. ?>
Выдало: Array

Если ввести это:
  1. <?php
  2. $newsblok = array ();
  3. $newsblok[] = 'news_1';
  4. $newsblok[] = 'news_2';
  5. $newsblok[] = 'news_3';
  6. foreach ($newsblok as $value) {
  7. echo "$value<br>";
  8. }
  9. ?>
То выдает:
news_1
news_2
news_3
#15 9 апреля 2011 в 22:21
PHP:
  1.  
  2. $newsblok = array ();
  3. $newsblok[] = 'news_1';
  4. $newsblok[] = 'news_2';
  5. $newsblok[] = 'news_3';
  6. ...
  7.  
  8. $smarty->assign('newsblok', $newsblok);
  9. ...
  10.  
Шаблон:
  1.  
  2. {foreach key=k item=n from=$newsblock}
  3. Элемент {$k} = {$n}<br/>
  4. {/foreach}
  5.  
в результате выведет:
  1.  
  2. Элемент 0 = news_1
  3. Элемент 1 = news_2
  4. Элемент 2 = news_3
  5.  
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.