![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
szukam sposobu by z poziomu smartów bez grzebania w php wyświetlić jeden z newsów na samej górze listy "aktualności"
kod na wyświetlanie wszystkich jest taki: Kod {foreach from=$items item=entry} <div class="NewsSummary"> <div class="NewsSummaryLink"> <a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a> </div> {if $entry->postdate} <div class="NewsSummaryPostdate"> Opublikowano: {$entry->postdate|cms_date_format} </div> {/if} {if $entry->summary} <div class="NewsSummarySummary"> <br /> {eval var=$entry->summary} </div> <div class="NewsSummaryMorelink"> {$entry->morelink} » </div> {else if $entry->content} <div class="NewsSummaryContent"><br /> {eval var=$entry->content} </div> {/if} {if isset($entry->extra)} <div class="NewsSummaryExtra"> {eval var=$entry->extra} {* {cms_module module='Uploads' mode='simpleurl' upload_id=$entry->extravalue} *} </div> {/if} {if isset($entry->fields)} {foreach from=$entry->fields item='field'} <div class="NewsSummaryField"> {if $field->type == 'file'} <img src="{$entry->file_location}/{$field->value}"/> {else} {$field->name}: {eval var=$field->value} {/if} </div> {/foreach} {/if} <div style="margin-left: auto; margin-right: auto; width: 200px; height: 60px; background: url('/images/aag/aag_aktualnosci_sep.png') no-repeat;"></div> </div> {/foreach} w dokumentacji: http://docs1.cmsmadesimple.org/modules/core/news nie znalazłem nic co mogło by pomóc ..... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
W $items masz tablicę newsów więc np $items.0 to pierwszy.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
coś nie bardzo chce mi działać ...
zamknąłem to w takiej konstrukcji: Kod {foreach from=$items item=entry key=i} {if $i == 168} {* wyświetlanie 168. elementu *} {else} {* wyświetlanie reszty *} {/if} {/foreach} tym sposobem 168 element powinien być na górze każdej strony. niestety skrypt to olewa i wyświetla "po staremu". |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Twój powyższy kod nic nie zmienia w wyświetlaniu, bo tak właśnie działa.
Skoro kolejność elementów w tablicy nie jest zmieniona, tzn. ten o indeksie 168 nie jest pierwszy, to dla indeksów 0-167 będzie spełniony else (te są w pierwszej kolejności i będą wyświetlone), następnie if $i==168, a dla indeksów > 168 ponownie else. Bez grzebania w php i zmiany tablicy, możesz utworzyć dwie pętle. W jednej warunek na wyświetlenie jeśli $i==168, a w drugiej jeśli $i<>168. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
chciałem to rozwiązać inaczej niestety nie udaje mi się uzyskać numerów $items.index tak aby odpowiadały tym za bazy danych - niestety gdyby udało się to zrobić to wtedy robię 2 pętle - pierwsza na każdej z podstron na samej górze wyświetla element nr 168 - druga wyświetla newsy jak leci po kolei ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli w każdym elemencie tablicy brak indeksu (odpowiednika z bazy danych), o którym piszesz wyżej, to nie wyczarujesz tego.
Natomiast ja nie wiem do końca co masz na myśli, bo dalej piszesz o jakiejś przeszkodzie, która uniemożliwia Ci utworzenie dwóch pętli. Dwie pętle możesz utworzyć zawsze. -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 16.06.2016 Ostrzeżenie: (0%) ![]() ![]() |
tą przeszkodą jest właśnie brak możliwości wyciągnięcia "news_id" z bazy w formie zapytania $items.index.
Same pętle na niewiele się zdadzą. Newsy są wyświetlane "od najnowszych" więc muszę wyciągnąć jakoś z tabeli $items element news_id, ktos ma inny pomysł ![]() ![]() MadeSimple CMS ver 1.9.1 Moduł News 2.11 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 531 Pomógł: 55 Dołączył: 3.01.2016 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
Jeśli kod wyświetla Ci wszystkie NEWSY to bez najmniejszego problemu dowolny możesz wyświetlić na górze listy za pomocą JS
-------------------- Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:42 |