Array bouwen na check en laten beginnen op verdere positie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Snelle Jaap

Snelle Jaap

03/10/2016 11:43:36
Quote Anchor link
Ik heb een script dat facebook berichten laat zien op mijn website. Mijn probleem: ik wil niet alle berichten laten zien, alleen de berichten van de pagina eigenaar en waar message niet leeg is. Daarnaast limit ik de array ook nog op 6. Het probleem daarmee is dat de array wordt gelimit op de gehele array, en de check op de eigenaar/lege message wordt daarna pas uitgevoerd, waardoor de code niet werkt zoals de bedoeling is.

Wat kan ik het beste doen? Ik zit eraan te denken eerst alle berichten op te halen, dan op die array de check uit te voeren en uit dat resultaat een nieuwe array maken die bruikbaar is zoals ik wil, ik weet alleen niet hoe ik dat netjes doe.

De reden dat ik dit doe is omdat ik twee elementen heb waar de berichten in worden geladen, het eerste element heeft de twee eerste array waarden (twee grote berichten) en daarnaast is een element met een lijst van verdere berichten. Het is dus de bedoeling dat die lijst start op positie 2 in de array (0,1 in het eerste element, 2,3,4 etc in het tweede element).

Mijn code (voor de twee grote facebook berichten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?
function fetchUrl($url){

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_TIMEOUT, 20);
 // You may need to add the line below
 // curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);


 $feedData = curl_exec($ch);
 curl_close($ch);

 return $feedData;

}


//App Info, needed for Auth
$app_id = "secret";
$app_secret = "secret";

//Retrieve auth token
$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=23523523523&client_secret=secret");

$json_object = file_get_contents("https://graph.facebook.com/v2.6/2e6t234634634634634/posts?fields=full_picture%2Cmessage%2Cstory%2Cpermalink_url%2Cupdated_time%2Cfrom&access_token=accesstoken");


$feedarray = json_decode($json_object);

$f = 0;

foreach ( $feedarray->data as $key => $feed_data )
{


    if($feed_data->full_picture != ''){
        $fbimage = $feed_data->full_picture;
    }
else{
        $fbimage = 'cms/images/placeholder/placeholder.jpg';
    }


    if($feed_data->message > 270){
    $shortstrfb = substr($feed_data->message, 0, 270) . '...';
    }
else{
        $shortstrfb = $feed_data->message;
    }


    if($feed_data->message != ''){
        $f++;
    }


    if($f > 2){
        break;
    }


    if($feed_data->message != '' && $feed_data->from->name == 'page owner'){
        $facebookfeed .= '
                <div class="col-lg-4 marg-lg-b30">
                    <div class=" widget">
                        <div class="card latest-news latest-news--block">
                            <a href="'
.$feed_data->permalink_url.'" class="latest-news__image">
                                <img src="'
.$fbimage.'" width="360" height="204" srcset="'.$fbimage.' 360w, '.$fbimage.' 830w" sizes="(min-width: 992px) 360px, calc(100vw - 30px)" class="card-img-top " alt="nieuws">
                            </a>
                            <div class="card-block latest-news__content js-col-height-news">
                                <time class="latest-news__date">'
.date("d-m-Y",strtotime($feed_data->updated_time)).'</time>
                                <h4 class="card-title latest-news__title">
                                    <a href="'
.$feed_data->permalink_url.'" target="_blank"><i class="fa fa-facebook-official" aria-hidden="true"></i> Bekijk</a>
                                </h4>
                                <div class="card-text latest-news__text">
                                    '
.$shortstrfb.'
                                </div>
                            </div>
                        </div>
                    </div>
                </div>'
;
    }
}

echo $facebookfeed;
?>

En de loop voor de lijst:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
$c
= 0;

foreach ( $feedarray->data as $key => $feed_data1 ){
        if($feed_data1->message != ''){
            $c++;
        }

        //Na array waarde 6 stop de loop
        if($c > 6){
            break;
        }


        if($feed_data1->message != '' && $feed_data1->from->name == 'page owner'){
            if ($key < 7) continue;
            $facebookfeed1 .= '
            <a href="'
.$feed_data1->permalink_url.'" target="_blank" class="card latest-news latest-news--inline">
                <div class="card-block latest-news__content">
                    <h4 class="card-title latest-news__title"><i class="fa fa-facebook-official" aria-hidden="true"></i> Bekijk op Facebook</h4>
                        <p class="facebooktext">'
.$feed_data1->message.'</p>
                    <time class="latest-news__date" datetime="2016-04-22T10:06:21+00:00">'
.date("d-M-Y",strtotime($feed_data1->updated_time)).'</time>
                </div>
            </a>
        '
;
        }
    }

echo $facebookfeed1;
?>
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.