Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Treść po pierwszym wpisie, czyli o pętlach


Przejdź do rozwiązania Rozwiązane przez DawPi,

Rekomendowane odpowiedzi

Opublikowano (edytowane)

Witajcie

Nie jest to stricte tematyka związana z samym ip.content ale jako, że tam chcę umieścić pewną treść, to wpis w odpowiednim dziale.

Artykuły pobierane są klasycznie w pętli foreach, aż do wyczerpania rekordów

 

<foreach loop="$data['records'] as $record">

Jak zrobić, żeby tylko po pierwszym wpisie dodać swoją treść ? Zapewne jakiś wyjątek, ale nie wiem jak się za to zabrać.

Prosiłbym o wskazówki jak to się robi w praktyce - resztę sobie doczytam.

Edytowane przez elroy
logopiwoorgsmall.png

piwo.org - polski portal piwowarski

  • Manager
Opublikowano

Tego nie wiem do końca czy jest tam cokolwiek co wskazuje na pierwszy artykuł, ale możesz to zrobić tak:

 

<php>$this->added = false;</php>
<foreach loop="$data['records'] as $record">
<if test="!$this->added">
tylko pod pierwszym
<php>$this->added = true;</php>
</if>

Nie testowane.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano

Chyba jednak mnie to przerasta :/

Cały kod z IP.Content odpowiedzialny za wyświetlanie artykułów na głównej stronie pozwoliłem sobie wkleić poniżej. Czy tam nie ma czegoś, co powoduje, że powyższy sposób nie działa?

 

 

<if test="count( $data['records'] )">
        <!-- START ARTICLE POSITION 1 -->

        <foreach loop="$data['records'] as $record">
                <div class='ipsBox'>
                        <div class='ipsBox_container ipsPad'>

                                <if test="$record['article_image']">
                                        <img src='{$record['article_image']}' class='photo' {parse resize_image="$record['article_image']" maxwidth="150"} alt='' style="float: left; padding-right:5px" />
                                </if>
                                <h2 class='ipsType_subtitle' style='font-size:25px'>
                                        <if test="$record['record_approved'] == 0">
                                                <span class='ipsBadge ipsBadge_orange'>{$this->lang->words['f_queued_badge']}</span>
                                        <else />
                                                <if test="$record['record_approved'] == -1">
                                                        <span class='ipsBadge ipsBadge_orange'>{$this->lang->words['f_deleted_badge']}</span>
                                                </if>
                                        </if>
                                        <if test="$record[ $data['special']['date'] ] > time()">
                                                <span class='ipsBadge ipsBadge_lightgrey'>{$this->lang->words['article_unpublished']}</span>
                                        </if>
                                        <if test="$record['record_pinned']">{parse template="topicPrefixWrap" group="forum" params="$this->lang->words['pre_pinned']"}</if>
                                        <if test="!empty($record['tags']['formatted']['prefix'])">
                                                {$record['tags']['formatted']['prefix']}
                                        </if>
                                        <a href='{$record['record_link']}'>{$record['article_title']}</a>
                                </h2>
                                <div class="desc">{$record['article_date']} | {parse template="userHoverCard" group="global" params="$record"} {$this->lang->words['fpdt_in']} <a href='{$record['category_link']}'>{$record['category_name']}</a></div>
                                <br />
                                <if test="$record['teaser_paragraph']">{$record['teaser_paragraph']}<else />{IPSText::truncate( strip_tags( IPSText::getTextClass('bbcode')->stripAllTags( $record['article_body'] ) ), 255 )}</if>
                                <br /><br />
                                <span class='links'>
                                        <a href='{$record['record_link']}' class='read_more'>{$this->lang->words['fpdt_readstory']}</a>
                                          
                                        <a href='{$record['record_link']}#comments' class='comments'>{$record['record_comments']} {$this->lang->words['fpdt_comments']}</a>
                                        <if test="$record['record_comments_queued'] AND $data['database']['moderate_approvec']">
                                                 <em class='moderated'><a href='{$record['record_link']}?comments=unapproved#commentsStart' title='{$this->lang->words['comments_pending_app_title']}' class='comments' data-tooltip="{parse expression="sprintf( $this->lang->words['comments_queued_tooltip'], $record['record_comments_queued'])"}">{parse expression="sprintf( $this->lang->words['ccsc_queued_badge'], $record['record_comments_queued'] )"}</a></em>
                                        </if>
                                          
                                        <if test="$data['database']['database_rate']">
                                                <if test="$record['rating_real'] >= 1">{parse replacement="rate_on"}<else />{parse replacement="rate_off"}</if><if test="$record['rating_real'] >= 2">{parse replacement="rate_on"}<else />{parse replacement="rate_off"}</if><if test="$record['rating_real'] >= 3">{parse replacement="rate_on"}<else />{parse replacement="rate_off"}</if><if test="$record['rating_real'] >= 4">{parse replacement="rate_on"}<else />{parse replacement="rate_off"}</if><if test="$record['rating_real'] >= 5">{parse replacement="rate_on"}<else />{parse replacement="rate_off"}</if>
                                        </if>
                                        <if test="isset($record['tags']) AND $record['tags']">
                                                   <img src='{$this->settings['img_url']}/icon_tag.png' /> <span class='desc lighter blend_links'>{$record['tags']['formatted']['truncatedWithLinks']}</span>
                                        </if>
                                </span>
                                <br style='clear: both' />
                        </div>
              
 </div>
                <br />
        </foreach>
<else />
        {$this->lang->words['fpdt_noarticles']}
        <if test="$data['database']['_can_add']">
                <a href='{$data['database']['base_link']}do=add&category={$this->request['category']}' title='{$this->lang->words['add_record_button']}'><strong>{$this->lang->words['fpdt_addone']}</strong></a>
        </if>
</if>

 

 

logopiwoorgsmall.png

piwo.org - polski portal piwowarski

Opublikowano

Nie lepiej tak:

Przed pętlą foreach

<if test="$data['records'][0]">
	<div class="obrazek">
		<if test="$data['records'][0]['article_image']">
			<img src='{$data['records'][0]['article_image']}' title='{$data['records'][0]'article_title']}'> 
		</if>
        </div>
</if>

 

Opublikowano

Ale to będzie przed całym lub po całym bloku wyciągniętym z bazy w pętli, a ja poszukuję rozwiązania na wpis tylko po pierwszym rekordzie.

Chyba, że nie mam racji. to proszę o wyklarowanie :)

logopiwoorgsmall.png

piwo.org - polski portal piwowarski

Opublikowano (edytowane)

Zrobiłem tak (dodany kod z hashem,). Coś jest z tym warunkiem nie tak, bo tekst się nie pojawia (nie ma tez w źródle strony)

 

 

<!-- START ARTICLE POSITION 1 -->
#<php>$this->added = false;</php>
        <foreach loop="$data['records'] as $record">
                <div class='ipsBox'>
                        <div class='ipsBox_container ipsPad'>
#<if test="!$this->added">
#tylko pod pierwszym
#<php>$this->added = true;</php>
#</if>
                                <if test="$record['article_image']">
 
Edytowane przez elroy
logopiwoorgsmall.png

piwo.org - polski portal piwowarski

  • Manager
  • Rozwiązanie
Opublikowano

Zrobione. ;)

 

Wyżej masz:

 

} else {
                $rss = array(
                        'enabled' => $data['database']['database_rss'],
                        'type' => 'global',
                        'id' => $data['database']['database_id'],
                        'name' => $data['database']['database_name']
                );
                $title = $this->lang->words['fpdt_latestnews'];
        }

No coś takiego w tagach <php></php>

Więc nad pierwszym:

</php>

Dajesz:

foreach( $data['records'] as $id => $record )
        {
            $data['records'][ $id ]['add_code'] = 'teścik';
            break;     
        }

A potem w pętli foreach:

{$record['add_code']}

Efekt:

pre_1363964545__2013-03-22_16-01-34.png

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.