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.

Archive /

Our old forums are still available as a read-only archive.

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

silverstriping a site with random pictures


Go to End


22 Posts   10880 Views

Avatar
Nicolaas

Forum Moderator, 224 Posts

21 May 2007 at 4:22pm

Hi Folk

have a look at www.cloud9russell.co.nz. I would like SilverStripe this. It should be pretty straight forward (although I am a complete novice), but I would like to know how to do the images. I can easily do this in PHP (as you can see), but how would i go about it in Silverstripe (just tell me the general area I should be looking at and how to work it). Basically my question is: I have a php file, how can I silverstripe it?

Avatar
Sean

Forum Moderator, 922 Posts

21 May 2007 at 6:14pm

Edited: 21/05/2007 6:26pm

This tutorial here is what you'll be needing: http://doc.silverstripe.com/doku.php?id=tutorial:2-extending-a-basic-site

It explains how to create image uploaders for pages within the CMS. More specifically, it's the 'Adding a staff section' portion of the tutorial you'll be most interested in.

If you're looking to get a random image instead of a fixed one per page, then you could add the images to a directory inside assets/banners or similar (in the same directory level as sapphire and cms), then create a function as you would normally in any PHP implementation to fetch this directory's contents using scandir or similar, then shuffle the array around.

The banners directory inside assets can be maintained by the CMS using the Files & Images section. The SilverStripe admin can upload the image files directly into the banner directory itself which gets added to the shuffle.

If you haven't already done so I'd recommend running through the tutorials to see how SilverStripe works. :-)

Cheers,
Sean

Avatar
Nicolaas

Forum Moderator, 224 Posts

22 May 2007 at 9:48am

Hi Sean

Thanks a million

That is plenty to go by. I had a quick look at the tutorials and I will look at them in more depth now.

Thanks again

Nicolaas

Avatar
karibe

Community Member, 56 Posts

18 June 2007 at 9:06am

Hello
I had same problem and my tip is, in Page_Controller

public function RandomImage( $strLeftDirName )
{
if ( !is_string( $strLeftDirName ) )
{
return false;
}
$left_dir = DataObject::get_one("Folder", "Name = \"$strLeftDirName\"");
$randImg = ( $left_dir->ID ) ? DataObject::get_one("Image", "ParentID = $left_dir->ID", true, "RAND()" ) : false;
return $randImg->Filename;
}

And in template $RandomImage(page_left) where page_left is directory name where I have proper images.
Works fine and is very flexible

Avatar
bubbles

Community Member, 1 Post

5 June 2008 at 3:03pm

That function works great, Thanx

Avatar
stooni

Community Member, 89 Posts

7 August 2008 at 2:56am

can you tell me, to implement random Image in sidebar from gallery,
the function in mysite\code\Page.php and the call in the
\templates\Includes\SideBar.SS.

can you help me thanks!

Stooni----

Avatar
stooni

Community Member, 89 Posts

15 August 2008 at 11:07pm

Can you help me where i must do these?????

In the Sidbar.ss or in templates\Page.ss and must i scribe

<image src="<?php $RandomImage(gallery); ?>" /> these way or these
<image src="<?php $RandomImage('gallery'); ?>" /> or these
<?php $RandomImage(gallery); ?>

Thanks for help

Stooni

Avatar
Fuzz10

Community Member, 791 Posts

16 August 2008 at 1:21am

Stooni,

Make sure to thoroughly go through the tutorials. The SS templating system does not work PHP code. You'd have to create a function in your page which returns the list of random images (or single image) ... Then you can call it by implementing a <% control %> in your template.

Go to Top