1. Go to this page and download the library: Download silverstripe/widgets library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
silverstripe / widgets example snippets
use SilverStripe\CMS\Model\SiteTree;
use SilverStripe\Widgets\Forms\WidgetAreaEditor;
use SilverStripe\Widgets\Model\WidgetArea;
class Page extends SiteTree
{
// ...
private static $has_one = array(
'MyWidgetArea' => WidgetArea::class
);
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->addFieldToTab('Root.Widgets', new WidgetAreaEditor('MyWidgetArea'));
return $fields;
}
}
namespace Yourname\MyWidget;
use FlickrService;
use SilverStripe\Widgets\Model\Widget;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
use SilverStripe\Forms\NumericField;
use SilverStripe\ORM\ArrayList;
use SilverStripe\View\ArrayData;
use SilverStripe\View\Requirements;
class FlickrWidget extends Widget
{
private static $db = array(
'User' => 'Varchar',
'Photoset' => 'Varchar',
'Tags' => 'Varchar',
'NumberToShow' => 'Int'
);
private static $defaults = array(
'NumberToShow' => 8
);
private static $title = 'Photos';
private static $cmsTitle = 'Flickr Photos';
private static $description = 'Shows flickr photos.';
public function Photos()
{
// You'll need to install these yourself
Requirements::javascript(THIRDPARTY_DIR . '/prototype/prototype.js');
Requirements::javascript(THIRDPARTY_DIR . '/scriptaculous/effects.js');
Requirements::javascript('mashups/javascript/lightbox.js');
Requirements::css('mashups/css/lightbox.css');
$flickr = new FlickrService();
if ($this->Photoset == '') {
$photos = $flickr->getPhotos($this->Tags, $this->User, $this->NumberToShow, 1);
} else {
$photos = $flickr->getPhotoSet($this->Photoset, $this->User, $this->NumberToShow, 1);
}
$output = new ArrayList();
foreach ($photos->PhotoItems as $photo) {
$output->push(
new ArrayData(
array(
'Title' => $photo->title,
'Link' => 'http://farm1.static.flickr.com/' . $photo->image_path .'.jpg',
'Image' => 'http://farm1.static.flickr.com/' .$photo->image_path. '_s.jpg'
)
)
);
}
return $output;
}
public function getCMSFields()
{
return new FieldList(
new TextField('User', 'User'),
new TextField('PhotoSet', 'Photo Set'),
new TextField('Tags', 'Tags'),
new NumericField('NumberToShow', 'Number to Show')
);
}
}
public function SilverStripeFeed()
{
$widget = new RSSWidget();
$widget->RssUrl = 'http://feeds.feedburner.com/silverstripe-blog';
return $widget->renderWith('WidgetHolder');
}
public function getTitle()
{
return 'Hello World!';
}
public function getTitle()
{
return $this->WidgetTitle ? $this->WidgetTitle : self::$title;
}
namespace Yourname\MyWidget;
use SilverStripe\Widgets\Model\Widget;
class MyWidget extends Widget
{
private static $db = array(
'TestValue' => 'Text'
);
}
namespace Yourname\MyWidget;
use SilverStripe\Widgets\Controllers\WidgetController;
use SilverStripe\Forms\Form;
use SilverStripe\Forms\FormAction;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\TextField;
class MyWidgetController extends WidgetController
{
public function MyFormName()
{
return new Form(
$this,
'MyFormName',
new FieldList(
new TextField('TestValue')
),
new FieldList(
new FormAction('doAction')
)
);
}
public function doAction($data, $form)
{
// $this->widget points to the widget
}
}
class BlogHolder extends Page
{
// ........
static $has_one = array(
// "Sidebar" => "WidgetArea", COMMENT OUT
'Newsletter' => 'NewsletterType'
);
// .......
public function getCMSFields()
{
$fields = parent::getCMSFields();
$fields->removeFieldFromTab("Root.Content","Content");
// $fields->addFieldToTab("Root.Widgets", new WidgetAreaEditor("Sidebar")); COMMENT OUT
}
// ...
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.