Jump to content

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


elroy
 Share

Go to solution Solved by DawPi,

Recommended Posts

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.

Edited by elroy
logopiwoorgsmall.png

piwo.org - polski portal piwowarski

Link to comment
Share on other sites

  • Manager

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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>

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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']">
 
Edited by elroy
logopiwoorgsmall.png

piwo.org - polski portal piwowarski

Link to comment
Share on other sites

  • Manager

A tak:

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

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Link to comment
Share on other sites

  • Manager
  • Solution

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

  • Like 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

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

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.