Jump to:

7937 Posts in 1537 Topics by 944 members

DataObjectManager Module

SilverStripe Forums » DataObjectManager Module » Sortable Enum Value from DataObject

Discuss the DataObjectManager module, and the related ImageGallery module.

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

Page: 1
Go to End
Author Topic: 956 Views
  • bunheng
    Avatar
    Community Member
    77 Posts

    Sortable Enum Value from DataObject Link to this post

    Good Evening UncleCheese,

    I would like to learn the trick to make the sortable Enum value you did for ImageGallery module. I have two dataobjects

    1. ActivityPage - Class
    1. Project - DataObject
    2. ActivityPhoto - DataObject

    Through your kindness advice before, I can bring two DataObject work in one Page. I would like to have sortable Enum like the one you made within ImageGallery module, which allow user to choose ProjectTitle to upload ActivityPhoto.

    Thanks in advance for your advice.

    Bunheng

  • UncleCheese
    Avatar
    4085 Posts

    Re: Sortable Enum Value from DataObject Link to this post

    What is a sortable enum value?

    --------------------
    SilverStripe tips, tutorials, screencasts and more: http://www.leftandmain.com

  • bunheng
    Avatar
    Community Member
    77 Posts

    Re: Sortable Enum Value from DataObject Link to this post

    Hi UncleCheese,

    The thing is I have two DataObject which already bring to CMS and has many is the relationship beftween those dataobject.

    - Project
    - ActivityPhoto

    I would like to know the trick how to create filter which allow user to select Project Code from Project DataObject before inserting new record for ActivityPhoto. http://www.cambodia-wildlife-adventures.org/filter.jpg

    Once again, thanks for your advice and contribution.

    Bunheng

    Update
    Now i can bring up the filter but it doesn't work properly.

    <?php

    class Activity extends Page {

    static $icon = "activities/images/activity";
    static $db = array(
    );
    static $has_many = array(
    'ActivityPhotos' => 'ActivityPhoto',
    'Projects' => 'Project'
    );

    function getCMSFields() {

    $fields = parent::getCMSFields();
    $manager = new ImageDataObjectManager(
    $this,
    'ActivityPhotos',
    'ActivityPhoto',
    'Photo',
    array('Title' => 'Title'),
    'getCMSFields_forPopup'
    );

    $manager->setFilter('ProjectID', 'Choose Project Code', $this->Projects()->toDropdownMap('ID', 'Code'));
    $items = new DataObjectManager(
    $this,
    'Projects',
    'Project'
    );
    $fields->addFieldsToTab("Root.Content.Projects", $items);
    $fields->addFieldToTab("Root.Content.Activity", $manager);
    $fields->removeFieldFromTab("Root.Content", 'Photo');

    if ($this->Projects()->Count() > 0)
    $this->ActivityPhotos()->filter = "ProjectID_" . $this->Projects()->First()->ID;
    $manager->setAddTitle("Photos to " . $this->CurrentProjectCode());
    $manager->filter_empty_string = false;
    return $fields;
    }

    function getProjectID() {
    return str_replace("ProjectID_", "", $this->ActivityPhotos()->filter);
    }

    function CurrentProjectCode() {
    return DataObject::get_one("Project", $this->getProjectID())->Code;
    }

    }

    class Activity_Controller extends Page_Controller {

    }

    ?>

  • UncleCheese
    Avatar
    4085 Posts

    Re: Sortable Enum Value from DataObject Link to this post

    What do you mean by "it doesn't work properly"?

    ---------------
    Silverstripe tips, tutorials, screencasts, and more. http://www.leftandmain.com

    956 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.