Jump to:

17452 Posts in 4473 Topics by 1971 members

Archive

SilverStripe Forums » Archive » New Photo Gallery

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

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

Page: 1
Go to End
Author Topic: 1417 Views
  • steve_nyhof
    Avatar
    Community Member
    224 Posts

    New Photo Gallery Link to this post

    We are putting together a new photo gallery using Dynamic Drive... http://www.dynamicdrive.com/dynamicindex4/cmotiongallery.htm
    and Slideshow2
    http://www.electricprism.com/aeron/slideshow/

    You can see it here...
    http://websidedesigner.com/galley/

    We are using folders for the categories inside "assets/Galleries/'+folder+'"
    Any help and guidance???
    Galleries.php:

    <?php

    class Galleries extends Page {
       static $db = array(
       );
       static $has_one = array(
    );
    static $icon = "galleries/images/window";

    function getMotionGallery($limitFolders=50,$limitImages=1){

    // get All the Folders that are on root

    $folders = $this->getFolders($limitFolders);

    foreach($folders as $folder){

    $folder->CatName = $folder->Name;
        $items = $this->Items((string)$folder->ID,$limitImages);
        $data = "";
        if($items){
        $i=1;
        $j=0;
        foreach($items as $item){
        $j++;
        }
       
        foreach($items as $item){
        if( $i == 1 ){
        $folder->Filename = $item->Filename;
        }
        if($i < $j ){
       
        //$item->comma = " ,";
        $data.= "$item->Name,";
        } else {
        //$item->comma = " ";
        $data.= "$item->Name";
        }
        $i++;

       
        }

       
       
       }
    $folder->Dataforjavascript = $data;

    }

    return $folders;

    }
    function getDefaultFolder(){

    // get All the Folders that are on root

    $folders = $this->getFolders(1);

    foreach($folders as $folder){

    $folder->ID = $folder->ID;
    $folder->CatName = $folder->Name;
        $items = $this->Items((string)$folder->ID,1);
        if($items){
        foreach($items as $item){
       
        $folder->Filename = $item->Filename;
       
       
        }
    }
    }

    return $folders;

    }

    function getFolders($limit = 1){

    $sort = "`File`.`Created` DESC";

    $Galleries = DataObject::get("File", "ClassName = 'Folder' AND ParentID = 0 AND Name = 'Galleries'", $sort, "", $limit);
    foreach($Galleries as $Gallery){
    $Gallery->ID = $Gallery->ID;
    }
    return DataObject::get("File", "ClassName = 'Folder' AND ParentID = $Gallery->ID ", $sort, "", $limit);

    }

    function Items( $parentID ,$limit = 1) {

    $sort = "`File`.`Name` ASC";

    return DataObject::get("File", "ClassName = 'Image' AND ParentID = $parentID ", $sort, "", $limit);
       
       }

    /*function getImagesInFolder($parentID ,$limit = 1){

       $sort = "`File`.`Name` ASC";
       
    $items = DataObject::get("File", "ClassName = 'Image' AND ParentID = $parentID ", $sort, "", $limit);
        if($items){
        foreach($items as $item){
       
        $item->Filename1 = $item->Filename;
       
       
        }
    }
    return $items;

    }*/
    function getImagesInFolder($parentID = 0 ,$limit = 1){

       $sort = "`File`.`Name` ASC";
       
    $Galleries = DataObject::get("File", "ClassName = 'Folder' AND ParentID = 0 AND Name = 'Galleries'", $sort, "", $limit);
    foreach($Galleries as $Gallery){
    $Gallery->ID = $Gallery->ID;
    }
    $sort = "`File`.`Name` ASC";
    $folders = DataObject::get("File", "ClassName = 'Folder' AND ParentID = $Gallery->ID ", $sort, "", $limit);
    foreach($folders as $folder){
    $folder->ID = $folder->ID;
    }
       
    $items = DataObject::get("File", "ClassName = 'Image' AND ParentID = $folder->ID", $sort, "", 100);
       
       if($items){
        $i=1;
        $j=0;
        foreach($items as $item){
        $j++;
        }
       
        foreach($items as $item){
        $item->Name = $item->Name;
        if($i < $j ){
       
        $item->comma = " ,";
       
        } else {
        $item->comma = " ";
       
        }
        $i++;
        }
    }
    return $items;

    }

    }
    class Galleries_Controller extends Page_Controller {
       function init() {
          parent::init();
          
          Requirements::themedCSS("layout");
          Requirements::themedCSS("typography");
          
          Requirements::css("galleries/css/slideshow.css");
    Requirements::javascript("galleries/javascript/mootools.js");
          Requirements::javascript("galleries/javascript/slideshow.js");

          //Requirements::themedCSS("form");
       }
    }

    ?>

    Galleries.ss:

       

    <div class="typography">
       
    <div id="Content" >
          
          <h2>$Title</h2>
       
       
           $Content
           <div id="motioncontainer" style="position:relative;overflow:hidden;">
    <div id="motiongallery" style="position:absolute;left:0;top:0;white-space: nowrap;">

    <nobr id="trueContainer">

    <% control getMotionGallery(10,10) %>
    <a class="highlightit" href='javascript:loadSlideShow("$Dataforjavascript","$CatName");'><img src="$Filename" border="1" width="100" height="75" title ="$CatName"></a>
          
    <% end_control %>
    </nobr>
    </div>
    </div>
    <div style="background-image:url(galleries/images/slideshow.jpg); background-repeat:no-repeat; height:500px;">

       
          <br>
             
    <% control getDefaultFolder %>

    <script type="text/javascript">      
       var myShow ;
       //<![CDATA[
       
        window.addEvent('domready', function(){
       
       
        myShow = new Slideshow('my_show', data, { captions: true, controller: true, hu: 'assets/Galleries/$CatName' });
          //Nauman: 'assets/Galleries/$folders ?? - the '/' is in the slideshow.js file - see hu on line 28
        });
       //]]>
       </script>

    <br><br>
    <div id="my_show" class="slideshow">
    <img src="$Filename" width="500" height="390"/>   
       </div>
    <% end_control %>
    </div>
    <script type="text/javascript">

    var data = {
        <% control getImagesInFolder %>
          
           '$Name': { 'caption': '$Name' } $comma
       
           <% end_control %>
          
          }
    </script>   
          $Form
          $PageComments
       
        </div>

    </div>
    <br><br>
    <script type="text/javascript">

    function loadSlideShow(data,folder){

    //alert(data);
    var dataArray = explodeArray(data,",");
    //alert(dataArray.length);
    var dataString = "{ ";
    for(i=0;i<dataArray.length;i++){

    if(i == ( dataArray.length-1 ) ){
    dataString = dataString + "' "+ dataArray+"'";
    }else{
    dataString = dataString + "' "+ dataArray+"',";
    }
    }
    dataString = dataString + "}";
    var captionString = "{ controller: true, hu: 'assets/Galleries/"+folder+"' }";
    alert(captionString);
    myShow.destroy("empty");
    myShow = new Slideshow('my_show', dataString, { controller: true, hu: "assets/Galleries/'+folder+'" } );

    }
    function explodeArray(item,delimiter) {
    tempArray=new Array(1);
    var Count=0;
    var tempString=new String(item);

    while (tempString.indexOf(delimiter)>0) {
    tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
    tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
    Count=Count+1
    }

    tempArray[Count]=tempString;
    return tempArray;
    }

    </script>

    1417 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.