Skip to content

Instantly share code, notes, and snippets.

@hailwood
Created March 9, 2015 23:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hailwood/2ed8cf5dc4297ac791be to your computer and use it in GitHub Desktop.
Save hailwood/2ed8cf5dc4297ac791be to your computer and use it in GitHub Desktop.
<?php
class OurPeoplePage extends Page {
private static $many_many = array(
'Team' => 'TeamMember'
);
private static $many_many_extraFields=array(
'Team'=>array(
'SortOrder'=>'Int'
)
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$config = new GridFieldConfig_RelationEditor();
$config->addComponent(new GridFieldSortableRows('SortOrder'));
$config->addComponent($uploader = new GridFieldBulkUpload());
$uploader->setUfSetup('setFolderName', 'TeamMembers');
$config->addComponent(new GridFieldBulkManager());
$config->addComponent(new GridFieldGalleryTheme('Image'));
$config->getComponentByType('GridFieldAddExistingAutocompleter')
->setSearchFields(array('Title', 'Position', 'Email'))
->setResultsFormat('$Title');
$fields->addFieldToTab('Root.TeamMembers', new GridField('Team Members', null, $this->Team(), $config));
return $fields;
}
public function Team() {
return $this->getManyManyComponents('Team')->sort('SortOrder');
}
}
<?php
class TeamMember extends DataObject {
private static $belongs_many_many = [
'OurPeoplePages' => 'OurPeoplePage',
'ContactPages' => 'ContactPage',
];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment