Skip to content

Instantly share code, notes, and snippets.

<?php
// nice internal / external link field
$fields->replaceField('LinkExteralOrInternal', (SelectionGroup::create(
"LinkExteralOrInternal",
array(
SelectionGroup_Item::create(
"external",
TextField::create(
"ExternalLink",
"Externe link"
@dljoseph
dljoseph / SS-SiteConfigTabSet
Created November 22, 2014 06:59
SilverStripe SiteConfig TabSet
$set = new TabSet(
'test tab set',
new Tab(
'tab a',
TextField::create('TabAContent')
),
new Tab(
'tab b',
TextField::create('TabABontent')
)
<?php
/**
* Configure SilverStripe from the _ss_environment.php file.
*
* Edit this file and rename from _ss_environment.sample.php to _ss_environment.php.
* Put "require_once('conf/ConfigureFromEnv.php');" into your _config.php file.
* http://doc.silverstripe.org/framework/en/trunk/topics/environment-management
*/
@dljoseph
dljoseph / SS-PDF-gen
Created November 22, 2014 08:00
PDF generation in SilverStripe with FPDF/PDFI using existing PDF document as a base template
// initiate FPDI
$pdf = new FPDI();
// add a page
$pdf->AddPage('landscape');
// set the source file
$pdf->setSourceFile(ASSETS_PATH . '/certificate_template_pdfa.pdf');
// import page 1
@dljoseph
dljoseph / SS-Fetch-Gravatar
Created November 22, 2014 08:09
SilverStripe 3.1.x - Fetch Gravatar image before writing Member record
public function onBeforeWrite(){
if(!$this->ID or !$this->ImageID) {
$gravatarEmailHash = md5(strtolower($this->Email));
$gravatarURL = "http://www.gravatar.com/avatar/$gravatarEmailHash?d=404";
$headers = get_headers($gravatarURL);
if (strpos($headers[0],'200')) {
//get the extension of the gravatar image - it will be either jpeg or png - we will need it later
@dljoseph
dljoseph / routes.yml
Created November 22, 2014 08:26
SilverStripe 3.1.x custom routes.yml example snippet
---
Name: customroutes
After: framework/routes#coreroutes
---
Director:
rules:
'support': 'SupportPage_Controller'
'Search': 'FuseSearch_Controller'
@dljoseph
dljoseph / SS-Save-Vimeo-Thumbnail
Created November 22, 2014 08:33
SilverStripe 3.1.x Fetch and Save Vimeo Thumbnail on DataObject from given Vimeo Video ID
protected function onBeforeWrite() {
//Do we have a vimeo video ID? If so, we need to grab the Vimeo thumbnail
//...but we only want to do this if either of the following conditions are true:
//1) A VimeoVideoID has been entered into the CMS and we don't have a thumbnail yet, or
//2) The VimeoVideoID entered has changed since this Article was last saved
if(($this->VimeoVideoID && !$this->TutorialCustomThumbnailID)
|| (isset($this->original['VimeoVideoID']) && ($this->VimeoVideoID != $this->original['VimeoVideoID']))) {
//Let's deal with the exceptional case first. Perhaps the content editor is removing the VimeoVideoID.
@dljoseph
dljoseph / SS-rotate-mobile-image-extension.php
Created November 22, 2014 08:52
SilverStripe 3.1.x Auto-rotate mobile images on upload according to EXIF Orientation data
<?php
/**
* Image Extension
*/
class ImageExtension extends DataExtension {
// Rotated Image -
// Some mobile image when uploaded will appear correctly oriented on mobile devices, but when
@dljoseph
dljoseph / SS-DataObject.php
Created November 22, 2014 09:28
SilverStripe 3.1.x DataObject
<?php
class MyDataObject extends DataObject {
private static $singular_name = 'MyDataObject';
private static $plural_name = 'MyDataObjects';
private static $db = array(
'Sort' => 'Int'
);
@dljoseph
dljoseph / SS-Store.php
Created November 22, 2014 11:52
SilverStripe 3.1.x Store locator snippet - grabs lat/lng from Google
<?php
class Store extends DataObject {
static $db = array(
'Title' => "Varchar(128)",
'Name' => "Varchar(128)",
'Address1' => "Varchar(128)",
'Address2' => "Varchar(128)",
'Address3' => "Varchar(128)",