dorsetdigital/silverstripe-simpleinstagram

Retrieves the Instagram feed for a given user for embedding in a template

Installs: 123

Dependents: 0

Suggesters: 0

Stars: 1

Watchers: 1

Forks: 0

Open Issues: 4

Type:silverstripe-vendormodule

v1.0.1 2018-07-03 22:28 UTC

README

Retrieves the Instagram feed for a given user for embedding in a SilverStripe template

Scrutinizer Code Quality Build Status License Version

This module is a simple wrapper for the Instagram user feed PHP library

Requirements

  • Silverstripe 4.x
  • pgrimaud/instagram-user-feed 5.x

Installation

  • Install the code with composer require dorsetdigital/silverstripe-simpleinstagram
  • Run a dev/build?flush to update your project

Usage

To use the module, you will need to add a couple of bits of code to your template and its associated model. The Instagram username is passed in as the (required) argument when instantiating the class. For example, if you were adding a feed to your HomePage class for the 'natgeo' Instagram account:

<?php

use DorsetDigital\SimpleInstagram\InstagramHelper;

class HomePage extends Page
{

 public function getInstagramFeed()
 {
  $insta = InstagramHelper::create('natgeo');
  return $insta->getFeed();  
 }
}

and then in your HomePage.ss file you would use the following syntax to display the data:

 <% with $InstagramFeed %>   
 <h2 class="instagram__username">$FullName ($UserName)</h2>
 <a href="$Link">
  <img src="$ProfileImage" alt="Profile Image"/>
 </a>
 <p class="instagram__biotext">$Bio</p>
 <p class="instagram__stats">Followers: $Followers  /  Following: $Following</p>
 <% loop $Items %>
  <div class="instagram__post-holder">
  <a href="$Link" target="_blank" title="Link to Instagram post">
   <img src="$ThumbURL" alt="$Caption" class="$Type instagram__postimage"/>
   <p class="instagram__caption">$Caption</p>
   <p class="instagram__likes">Liked: $Likes</p>
   <p class="instagram__date">Posted: $Date</p>
  </a>
 </div>
 <% end_loop %>
 <% end_with %>

The markup shown above is purely for example purposes. You can format / style it any way you want to suit your project.

Performance

In order to help reduce the dependency on the external service and to improve efficiency, the module supports caching via the standard SilverStripe mechanisms. Caching is disabled by default, but it can be enabled by adding a yml configuration to your project, eg:

---
Name: instagramcache
---

DorsetDigital\SimpleInstagram\InstagramHelper:
  enable_cache: true
  cache_time: 900

Enable the cache by setting enable_cache to true. Set the cache time (in seconds) with cache_time