Jump to content

jonatan

Members
  • Content Count

    21
  • Joined

  • Last visited

Community Reputation

2 Neutral

About jonatan

  • Rank
    Jr. Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Got it all working pretty good now actually! πŸ˜„ rec sasha website instafeed-Broadband High-Broadband Low.mp4 <script> var instagram = { $el: {}, // Where the items go $loading: {}, // The loading spinner total: 0, // The total number of items init: function() { this.$el = $("#instagram"); if(!this.$el.length) return; // Add the spinner this.$el.after("<div id='instagram-loading'><span class='loadertextcontainer'><b class='loadertext'>loading<span>_</span><span>_</span><span>_</span></b></span></div>"); this.$loading = $("#instagram-loading"); this.$loading.hide(); // Get the first batch of items this.get(); }, get: function() { var this$1 = this; // Show spinner this$1.$loading.show(); // Request $.getJSON(window.location.href, function(data) { // Hide spinner this$1.$loading.hide(); if(!$.isArray(data) || !data.length) return; // If no items do not render var items = []; data.forEach(function(item, index) { switch(item.type) { case "VIDEO": items.push(this$1.renderItemVideo(item.src, item.alt, item.href, index, item.poster)); break; case "CAROUSEL_ALBUM": var out = ""; for(var i = 0; i < item.children.length; i++) { var src = item.children[i].src; if (i <= 0) { out += "<a class='carousel-item active fb-gallery-ig' data-height='600' data-caption='" + item.href + "' href='" + src + "'>" + "<div style='background-image: url(" + src + ")' class='pics'></div>" } else { out += "<a class='carousel-item fb-gallery-ig' data-height='600' data-caption='" + item.href + "' href='" + src + "'>" + "<div style='background-image: url(" + src + ")' class='pics'></div>" } +"</a>"; } items.push( "<div data-interval='3000' class='carousel slide carousel-fade col-12 col-sm-6 col-md-4 p-3 pics' data-ride='carousel' id='instagram-item-" + (this$1.total + index) + "'>" + "<div class='carousel-inner'>" + out + "<a class='carousel-control-prev' href='#instagram-item-" + (this$1.total + index) + "' role='button' data-slide='prev'>" + "<span class='carousel-control-icon-bg' aria-hidden='true'></span>" + "<span class='carousel-control-prev-icon' aria-hidden='true'></span>" + "<span class='sr-only'>Previous</span>" + "</a>" + "<a class='carousel-control-next' href='#instagram-item-" + (this$1.total + index) + "' role='button' data-slide='next'>" + "<span class='carousel-control-icon-bg' aria-hidden='true'></span>" + "<span class='carousel-control-next-icon' aria-hidden='true'></span>" + "<span class='sr-only'>Next</span>" + "</a>" + "</div>" + "</div>" ); break; default: // IMAGE items.push(this$1.renderItem(item.src, item.alt, item.href, index)); break; } }); var count = items.length; if(count) { // Append items to the container this$1.$el.append(items.join("")); // Attach listener $(window).scroll(function() { if($(window).scrollTop() == $(document).height() - $(window).height()) { this$1.get(); $(window).scrollTop($(window).scrollTop()-1); } }); // Update total this$1.total = this$1.total + count; } }, function(e) { this$1.$loading.hide(); console.log(e); // ERROR }) }, renderItem: function(src, alt, href, index, poster) { return "<div class='col-12 col-sm-6 col-md-4 p-3 pics' id='instagram-item-" + (this.total + index) + "'>" + "<a class='fb-gallery-ig' data-height='600' data-caption='" + href + "' href='" + src + "' data-alt='" + alt + "'>" + "<div style='background-image: url(" + src + ")' class='pics'>" + "</div>" + "</a>" + "</div>"; }, renderItemVideo: function(src, alt, href, index, poster) { return "<div class='col-12 col-sm-6 col-md-4 p-3 pics' id='instagram-item-" + (this.total + index) + "'>" + "<a class='fb-gallery-ig' data-height='600' data-caption='" + href + "' href='" + src + "'>" + "<div style='background-image: url(" + poster + ")' class='pics'>" + (src !== poster ? "<div class='overlay-video-icon'></div>" : "") + "</div>" + "</a>" + "</div>"; } }; $(document).ready(function() { instagram.init(); }); </script> Only problem now is that every second "batch" of the pagination is not shown... Maybe some (to the quite so much more trained eye) obvious mistake in my poor copy of your code?πŸ” πŸ˜… (– the limit is set to 9 btw – guess it shouldn't really make a difference though?) And... then when it gets to the last "batch" it keeps showing the loading section. Not quite sure how to make it not show when the last batch has been loaded? Hope that you might have some brilliant input once again! Thank you so much once again! All the very best, Jonatan
  2. Yup! πŸ˜ƒ That did it @nbcommunication Criss! As said my JSON / AJAX knowledge is pretty much equal zero. The scroll to bottom load function is not quite working though but I'll try and look into that and see if I can figure anything out 😊
  3. It wouldn't be possible to do something like "getMedia(next(10))" sort-of thing? A module function call that would serve the next x images? (And then it'd ofc not serve anything if it's the last pagination page) And then I could maybe just do some simple javascript like "if page is scrolled to bottom -> php media = getMedia(next(10)); echo (media);" - if you get that drift? Or maybe this kind approach would have a lot of flaws that I can't see? (Maybe some caching problems or something like that?) All the best, Jonatan
  4. On the bright side!: It seems though that now the cache function is working. whenever refreshing the page, it doesn't seem to generate a new API call on the Rate Limiting page! πŸ˜ƒ
  5. Update: I tried including the UIKIt css & js CDN and copy pasting your exact php & javascript lazy load code from the readme, and also then it only got me to the spinning / loader part of the script.. hm.. (Warning: javascript, ajax and json is not really my game though – can't really say that php is either though haha)
  6. Hi @nbcommunication Criss! 😊 Well hopefully better luck with them tatties a bit later then! β˜€οΈπŸ₯” Your video preview looks just fabulous! 🌈 Just what I need πŸ˜„ And I must say I'm continuously impressed by your enthusiasm put into this module! I've updated the module and crossed my fingers... But.. I tried your suggested code and not that much happened though πŸ˜• <body> <?php include "../templates/main/bgimg.php"; ?> <div class="container"> <?php $itm1act = "active"; include '../templates/main/nav.php'; ?> <?php $instagram = $modules->get("InstagramBasicDisplayApi"); $username = "sasha_lindegaard"; $account = $instagram->getProfile($username); $postsnum = $account["media_count"] ?? 0; ?> <div class="row"> <div class="col-12 text-center mb-3"> <a href="https://instagram.com/<?= $username ?>/" target="_blank" class="marked"><h3 class="marked my-5 instalink"> @<?= $username ?></h3> </a> <?php if($postsnum): ?><h5 class="marked-dark"><?= $postsnum ?> POSTS / OPSLAG </h5><?php endif; ?> </div> <?php $instagram = $modules->get("InstagramBasicDisplayApi"); // The pagination cursor is reset if the request is not AJAX, e.g. when the page is loaded. if($config->ajax) { header("Content-Type: application/json"); echo $instagram->getMedia(); // ["json" => true] is inferred by $config->ajax die(); } echo "<div id='instagram' class='row'></div>";?> </div> </div> <script> var instagram = { $el: {}, // Where the items go $loading: {}, // The loading spinner total: 10, // The total number of items init: function() { this.$el = $("#instagram"); if(!this.$el.length) return; // Add the spinner this.$el.after("<div id='instagram-loading'>...Your choice of spinner!</div>"); this.$loading = $("#instagram-loading"); this.$loading.hide(); // Get the first batch of items this.get(); }, get: function() { var this$1 = this; // Show spinner this$1.$loading.show(); // Request $.getJSON(window.location.href, function(data) { // Hide spinner this$1.$loading.hide(); if(!$.isArray(data) || !data.length) return; // If no items do not render var items = []; data.forEach(function(item, index) { switch(item.type) { case "VIDEO": items.push(this$1.renderItem(item.poster, item.alt, item.src, index)); break; case "CAROUSEL_ALBUM": var out = ""; for(var i = 0; i < item.children.length; i++) { var src = item.children[i].src; out += "<a class='carousel-item' data-fancybox='gallery-ig' data-height='600' data-caption='" + item.alt + "' href='" + src + "'>" + "<div style='background-image: url(" + src + ")' class='pics'></div>" + "</a>"; } items.push( "<div data-interval='3000' class='carousel slide carousel-fade col-4 p-3 pics' data-ride='carousel' id='instagram-item-" + (this$1.total + index) + "'>" + "<div class='carousel-inner'>" + out + "<a class='carousel-control-prev' href='#_{$post->id}' role='button' data-slide='prev'>" + "<span class='carousel-control-icon-bg' aria-hidden='true'></span>" + "<span class='carousel-control-prev-icon' aria-hidden='true'></span>" + "<span class='sr-only'>Previous</span>" + "</a>" + "<a class='carousel-control-next' href='#_{$post->id}' role='button' data-slide='next'>" + "<span class='carousel-control-icon-bg' aria-hidden='true'></span>" + "<span class='carousel-control-next-icon' aria-hidden='true'></span>" + "<span class='sr-only'>Next</span>" + "</a>" + "</div>" + "</div>" ); break; default: // IMAGE items.push(this$1.renderItem(item.src, item.alt, item.src, index)); break; } }); var count = items.length; if(count) { // Append items to the container this$1.$el.append(items.join("")); // Attach listener // No idea if this works!!! $(window).on("resize scroll", function() { var next = $("#instagram-item-" + (this$1.total + count - (count < 5 ? 1 : 6))); if(!next.hasClass("seen") && this$1.inViewport()) { next.addClass("seen"); this$1.get(); } }); // Update total this$1.total = this$1.total + count; } }, function(e) { this$1.$loading.hide(); console.log(e); // ERROR }) }, inViewport: function(el) { // Untested, got the code from // https://medium.com/talk-like/detecting-if-an-element-is-in-the-viewport-jquery-a6a4405a3ea2 var elementTop = el.offset().top; var elementBottom = elementTop + el.outerHeight(); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }, renderItem: function(src, alt, href, index) { return "<div class='col-4 p-3 pics' id='instagram-item-" + (this.total + index) + "'>" + "<a data-fancybox='gallery-ig' data-height='600' data-caption='" + alt + "' href='" + href + "'>" + "<div style='background-image: url(" + src + ")' class='pics'>" + (src !== href ? "<div class='overlay-video-icon'></div>" : "") + "</div>" + "</a>" + "</div>"; } }; $(document).ready(function() { instagram.init(); }); </script> <?php include "../templates/scripts/fancybox-settings.php"?> <?php include "../templates/main/footer.php"; ?> </body> Only got me as far as the "Your choice of spinner part" Any ideas? πŸ€— All the best, Jonatan.
  7. @nbcommunication Hi Criss! Sounds interesting! πŸ˜„ No worries though. Nothing very urgent 😊 If so, enjoy the garden! 🌱🌿 It's been great in Denmark as well lately! β˜€οΈ All the very best, Jonatan
  8. Hm but shouldn't the caching be activated by default? It seems that it keeps using API calls... even within the same hour (3600 seconds)? – Implemented! Thanks!!! Nice! The module's updated now. So happy that you're on it! Can't wait to see what you come up with. Fingers crossed πŸ˜ƒπŸ€ž All the very best, Jonatan
  9. .. well ok just a minor update: With the API call restriction all maxed out I'm still getting this: Even though It's now $images = $instagram->getMedia(89); echo count($images) . "<br>" . print_r($images, 1); if(count($images)) { // Should avoid errors if there's no API response? foreach($images as $post) {
  10. Cool! Thanks! πŸ™‚ Beautiful! Good to know! returns = ProcessWire\WireArray Object ( [count] =&gt; 89 [items] =&gt; Array ( [WireData:0] =&gt; 17909280568424854 [WireData:1] =&gt; 18121444630076805 [WireData:2] =&gt; 18099159694143228 [WireData:3] =&gt; 17883854266519759 [WireData:4] =&gt; 17854176994877232 [WireData:5] =&gt; 18055223719211749 [WireData:6] =&gt; 17865563617641437 [WireData:7] =&gt; 17853880954804716 [WireData:8] =&gt; 17914593256381694 [WireData:9] =&gt; 17860300231719969 [WireData:10] =&gt; 18017777869257089 [WireData:11] =&gt; 18019319182253256 [WireData:12] =&gt; 17847252025839832 [WireData:13] =&gt; 18036204127233891 [WireData:14] =&gt; 18122234449006372 [WireData:15] =&gt; 17917004923367534 [WireData:16] =&gt; 17854499389726168 [WireData:17] =&gt; 17852987293735761 [WireData:18] =&gt; 18086538826081818 [WireData:19] =&gt; 17866962334577860 [WireData:20] =&gt; 18120750871023389 [WireData:21] =&gt; 18009153073268946 [WireData:22] =&gt; 17849294431747827 [WireData:23] =&gt; 17901084034396625 [WireData:24] =&gt; 18094452511099675 [WireData:25] =&gt; 17847189019719414 [WireData:26] =&gt; 17854334599578989 [WireData:27] =&gt; 18107613148049776 [WireData:28] =&gt; 17909512951361240 [WireData:29] =&gt; 18104916640032595 [WireData:30] =&gt; 18105513970043998 [WireData:31] =&gt; 18066704767130489 [WireData:32] =&gt; 17881743565421950 [WireData:33] =&gt; 17957414410288932 [WireData:34] =&gt; 17957563855294908 [WireData:35] =&gt; 18061218313179032 [WireData:36] =&gt; 17845018267605780 [WireData:37] =&gt; 17860652530488128 [WireData:38] =&gt; 18008583064246673 [WireData:39] =&gt; 18087603124064192 [WireData:40] =&gt; 17849476189531758 [WireData:41] =&gt; 18046166611199390 [WireData:42] =&gt; 17848414930558047 [WireData:43] =&gt; 17971295623301665 [WireData:44] =&gt; 18089590891035103 [WireData:45] =&gt; 17872427797427060 [WireData:46] =&gt; 18087955213016216 [WireData:47] =&gt; 17844902065536403 [WireData:48] =&gt; 17844973564532788 [WireData:49] =&gt; 17859331249452842 [WireData:50] =&gt; 17849882830471152 [WireData:51] =&gt; 18075170245064821 [WireData:52] =&gt; 17942550430293736 [WireData:53] =&gt; 17966881903273180 [WireData:54] =&gt; 17965161424273612 [WireData:55] =&gt; 17898185860336217 [WireData:56] =&gt; 18041889235148605 [WireData:57] =&gt; 18075502267046552 [WireData:58] =&gt; 18007052467216993 [WireData:59] =&gt; 17886482302359660 [WireData:60] =&gt; 17871858511389658 [WireData:61] =&gt; 17869022899360249 [WireData:62] =&gt; 18036545284117191 [WireData:63] =&gt; 17872542331346319 [WireData:64] =&gt; 18008081158196147 [WireData:65] =&gt; 18050794615051665 [WireData:66] =&gt; 17861485243368787 [WireData:67] =&gt; 17865307225357563 [WireData:68] =&gt; 18039611095079744 [WireData:69] =&gt; 18048228658019001 [WireData:70] =&gt; 17986084408204328 [WireData:71] =&gt; 17873339755334078 [WireData:72] =&gt; 17880649264316699 [WireData:73] =&gt; 18019533538130038 [WireData:74] =&gt; 18020855698187180 [WireData:75] =&gt; WireData [WireData:76] =&gt; WireData [WireData:77] =&gt; WireData [WireData:78] =&gt; WireData [WireData:79] =&gt; WireData [WireData:80] =&gt; WireData [WireData:81] =&gt; WireData [WireData:82] =&gt; WireData [WireData:83] =&gt; WireData [WireData:84] =&gt; WireData [WireData:85] =&gt; WireData [WireData:86] =&gt; WireData [WireData:87] =&gt; WireData [WireData:88] =&gt; WireData ) ) A lot... Out of the 80 showed posts, 46 are carousels. Hm.. But I guess that showing carousels shouldn't be an issue? πŸ€” Shouldn't it be problemfree to display all of the users carousels? – Thank you for clearing that up!! I've adapted my code to your version 😊 Goodnight from Denmark πŸ™‚ πŸ‡©πŸ‡°
  11. @nbcommunication Awesome!! I'll be excitedly waiting ☺️ I implemented: $images = $instagram->getMedia(89); if(count($images)) { foreach($images as $post) { ... } And It's works. And I suppose that the page would render fine now even with the API being maxed out. But I'm still getting "empty slots..." πŸ€” And also.. I'm getting these PHP notices from tracy: Referring to this line in the .module: – And this: ❔I'm not sure about the first one about the caption, but maybe that's because there's no caption for some of the posts? And I guess since it's just a notice it doesn't need fixing? ❔But about the other errors regarding undefined offsets... It counts from offset 75 (meaning actually offset 76 counting including offset 0 as one). – I guess this is actually basically just saying that the last posts – post nr 77 to post nr 80 – which for some reason aren't being pulled (again, why aren't they...? πŸ€”) (out of the requested amount of posts (89)) are not there so it just displays an empty slot. Can I make like a " case : break; "? perhaps differently (properly) formatted? Or something smarter? Would that work to prevent generating empty slots? Thank you again!! All the very best, Jonatan
  12. Thank you so much already Criss @nbcommunication! And thank you for such a quick reply! I'm so surprised by the helpfullness of this forum! I really appreciate that you're helping out that much! πŸ˜ƒπŸ˜ƒ – Thank you! That's of course just all that's needed! πŸ˜ƒ – I did consider whether I should just display fewer items - like the standard 24 fx - and hence make it easier, but I really want the page to have a wholehearted instagram feed feel... I can't really figure out how it'd had to be done though, implementing a "lazyload"... so that I don't get all 80 or whatever images served all at once... Should I try to go for something like on page load making the php request, say, 9 posts, then when the user scrolls to the bottom, make it call for 9 more? Reg cachetime, – it seems it's already set to 3600 in the .module? πŸ€” Or is it another cachetime you mean? Thank yo again! All the very best, Jonatan
  13. Awesome @nbcommunication (Criss)! Thanks a lot for all your effort! πŸ˜ƒ It has really helped me out! And I'm sure it'll help others as well! No worries about the data-width though, it's working without it actually πŸ™‚ But good to know though about the oEmbeds! I've just checked out your nbcommunications website btw, and it's really neat! πŸ˜ƒ Here's my own take on it (much less sophisticated and uglier 😌). But it's because I'm using Bootstrap 4 and Fancybox that I tried to adapt it to that: <?php foreach($images = $instagram->getMedia(89) as $post) { switch($post->type) { case "VIDEO": echo" <div class='col-4 p-3 pics'> <a data-fancybox='gallery-ig' data-height='600' data-caption='{$post->href}' href='{$post->src}' > <div style='background-image: url({$post->poster})' class=' pics'> <div class='overlay-video-icon'></div> </div> </a> </div> "; break; case "CAROUSEL_ALBUM": echo" <div data-interval='3000' class='carousel slide carousel-fade col-4 p-3 pics' data-ride='carousel' id='_{$post->id}'> <div class='carousel-inner'> "; $post->children->each(function($post) { echo" <a class='carousel-item' data-fancybox='gallery-ig' data-height='600' data-caption='{$post->href}' href='{$post->src}' > <div style='background-image: url({$post->src})' class=' pics'></div> </a> "; }); echo" <a class=\"carousel-control-prev\" href=\"#_{$post->id}\" role=\"button\" data-slide=\"prev\"> <span class=\"carousel-control-icon-bg\" aria-hidden=\"true\"></span> <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span> <span class=\"sr-only\">Previous</span> </a> <a class=\"carousel-control-next\" href=\"#_{$post->id}\" role=\"button\" data-slide=\"next\"> <span class=\"carousel-control-icon-bg\" aria-hidden=\"true\"></span> <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span> <span class=\"sr-only\">Next</span> </a> </div> </div> "; break; default: // IMAGE echo" <div class='col-4 p-3 pics'> <a data-fancybox='gallery-ig' data-height='600' data-caption='{$post->href}' href='{$post->src}' > <div style='background-image: url({$post->src})' class=' pics'></div> </a> </div> "; break; } } ?> <script type="text/javascript"> $(document).ready(function(){ $('.carousel').each(function(){ $(this).find('.carousel-item').eq(0).addClass('active'); }); }); </script> Resulting in this: Sasha IG Feed 720p.mp4 – Images as simple square thumbs, – videos the same but with a video-overlay (dark transparent black box with a play icon), – and the image carousels as a small carousel / slideshow. – That's actually also quite good.. Except a feeeew things that you could perhaps help me with... In general the performance of my instafeed page is awful πŸ’©. It takes an extremely long amount of time to load! ⏱️😡 – About 30 seconds! I am realizing though that I'm also making a large amount of post requests : $instagram->getMedia(89) But I can see that what is different from my poorly noob-interpreted version of your php code is that you collect it all into an array, and then serve it all from that array, where as I just echo"..."; away on everything... (as arrays still isn't quite my speciality...) ❔– Would it performance wise make any difference to use your method of first collecting it all into an array, and then serving it all by rendering all the items in that array, as you do it?... Which also leads me this... Pagination (& lazyload?) I can see that the API has some built in pagination: https://stackoverflow.com/questions/59814442/instagram-basic-display-api-pagination | https://developers.facebook.com/docs/instagram-basic-display-api/reference/media/children | https://developers.facebook.com/docs/graph-api/using-graph-api#paging – ❔ But with my very sad php skills I can't figure out how to actually implement it? My goal is that I wish to serve all and every post available from the user (currently counting 80 posts) as you scroll down the page... But of course here pagination would come into the picture. Could you maybe help me come up with a solution so that when you reach the end of the page the next (9 perhaps) posts would be loaded... (some kind of lazy load? ) Much like on Instagram itself: ig scroll down 720p.mp4 – I suppose this pagination / lazy load integration would perhaps also help out a lot of others wishing to display the whole IG feed? Maybe it'd be handy to have in the module's README as well? πŸ™‚ Also there's something I can't explain.. I'm getting some: Empty slots I'm requesting 89 posts. (Because I read on stack overflow that the maximum request is 90.. that might have changed though?) But there are only 80 posts all in all. The API feed is only showing 75 posts though. – Which is also really weird? – Can't figure why so... But for the remaining (89-75 = ) 14 posts it shows empty slots:... empty slots.mp4 ❔– Why is that? Do you have any idea? I supposed that if there weren't actually as many posts to get as requested it would only get the available amount of posts, within the requested limit? And one more quite crucial thing... CRAZY API load amounts... Before IG feed page Load: gr:get:Media/children: 1331 gr:get:User:Media: 47 (it seems it's still showing yesterdays request-count?) After one IG feed page load: gr:get:Media/children: 669 gr:get:User:Media: 38 – 60%remaining One reload: gr:get:Media/children: 703 gr:get:User:Media: 38 – 37%remaining One more reload: gr:get:Media/children: 739 gr:get:User:Media: 38 – 21%remaining One more reload: gr:get:Media/children: 779 gr:get:User:Media: 38 – 0%remaining One more reload: gr:get:Media/children: 855 gr:get:User:Media: 38 – 6%remaining ❔ ... It says the total number of calls = 200 * number of users... Shouldn't I worry about this? I mean if I after only 5 page loads have used my quota... That doesn't seem to be enough for a properly functioning live website with multiple users?... And one more thing... Media_count <?php $data = array('username'=>''); $account = $instagram->getUserAccount($data["username"]); $username = isset($account["username"]) ? $account["username"] : ""; $data = array('media_count'=>''); $mediacount = $instagram->getUserAccount($data["media_count"]); $postsnum = isset($mediacount["media_count"]) ? $mediacount["media_count"] : ""; ?> <div class="col-12 text-center mb-3"> <a href="https://instagram.com/<?php echo $username;?>/" target="_blank" class="marked"><h3 class="marked my-5 instalink"> <?php echo "@" . $username;?></h3> </a> <h5 class="marked-dark"><?php echo $postsnum?> POSTS / OPSLAG </h5> </div> ❔I'm getting the media_count from the module... to show the number of user posts on the page to give it more of an insta feel. When I loaded the page though it ($postnum) hadn't updated to the current amount (80 instead of 78, because the user has added a post 4 hours before I reloaded the page). I went to the processwire admin and the module page and then there it was updated... Then I reloaded the page and it was updated.. Was that only due to the module updating it when visiting the modules page in the processwire admin that it updated it though? – In short: can I rely on $mediacount = $instagram->getUserAccount($data["media_count"]); to fetch the updated post count (without having visited the module page in pw) ? The reason why I'm relying on the module in the first place and not just $profile = $instagram->getProfile("username"); is actually to save on API calls as, as you've seen above, they seem to extremely fast become used up... ? Also talking about API calls quickly being used up... PHP error I'm getting this when critical error if the php tries to get media but the api doesn't answer due to "maxed out credit": ❔How could I prevent that? – And make the page still functional if the API doesn't answer I know that was a lot of questions! – Probably some of it is due to a lack of a lot of basic php knowledge... But if you could help me out it would simply be amazing! And I'm sure others using the module, as php-handicapped as me, could probably benefit from some of the answers as well. Thanks a thousand times in advance! ☺️☺️☺️ All the very best, Jonatan
  14. Hmm... When I try to uninstall the module I get this error... ? πŸ€” l EDIT: // Hmm... I don't know what changed but after having refreshed my modules the uninstaller worked (Resolved) All the best, Jonatan
Γ—
Γ—
  • Create New...