Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Template Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

basic boolean function creation - newbie


Go to End


2 Posts   2074 Views

Avatar
nakashu

Community Member, 24 Posts

13 August 2009 at 3:30am

Edited: 13/08/2009 3:31am

Hi
Got a newbie question,
as am SS and php beginer somehow cant get this function to work.

<?php

class GalleryPage extends Page
{
	static $has_many = array (
		'GalleryImages' => 'GalleryImage'
	);
	
	public function getCMSFields()
	{
		$f = parent::getCMSFields();
		$manager = new FileDataObjectManager(
			$this, // Controller
			'GalleryImages', // Source name
			'GalleryImage', // Source class
			'Resource', // File name on DataObject
			array(
				//'Thumbnail' => 'Image',
				'Name' => 'Name',
				'Caption' => 'Caption'
			), // Headings 
			'getCMSFields_forPopup' // Detail fields (function name or FieldSet object)
			// Filter clause
			// Sort clause
			// Join clause
			
		);
		$manager->setAllowedFileTypes(array('jpg','png','flv')); 
		$manager->allowUploadFolderSelection();
				
		$f->removeFieldFromTab("Root.Content.Main","Content");
        $f->addFieldToTab("Root.Content.Main", $manager, "Content_Caption");
		
		return $f;
	}	
}

class GalleryPage_Controller extends Page_Controller {	
		public function IsFLV()			
		{
		$res = $this->Resource;
		$ext = $res->getExtension();
			if ($ext == 'flv') 
				return true;			
			else
				return false;
		}
	}
?>

what i want to do is to get the Resource(is a file) extension, find out if it is and flv and return boolean.
i know the above syntax isnt right, but cant figure out how it should be.
tried different ways, mostly the $res is empty, or the page wont load at all.

thanks

Avatar
Hamish

Community Member, 712 Posts

14 August 2009 at 8:53am

GalleryPage doesn't have a "Resource" object, so $this->Resource will not return anything.

What are you trying to do?

I see that GalleryPage has many associated GalleryImages - is this what you are looking at? If so, you need to decide which GalleyImage you want to test, since it is not a 'one - one' relationship.