Webylon 3.1 API Docs
  • Package
  • Class
  • Tree
  • Deprecated
  • Download
Version: current
  • 3.2
  • 3.1

Packages

  • auth
  • Booking
  • cart
    • shipping
    • steppedcheckout
  • Catalog
  • cms
    • assets
    • batchaction
    • batchactions
    • bulkloading
    • comments
    • content
    • core
    • export
    • newsletter
    • publishers
    • reports
    • security
    • tasks
  • Dashboard
  • DataObjectManager
  • event
  • faq
  • forms
    • actions
    • core
    • fields-basic
    • fields-dataless
    • fields-datetime
    • fields-files
    • fields-formatted
    • fields-formattedinput
    • fields-relational
    • fields-structural
    • transformations
    • validators
  • googlesitemaps
  • guestbook
  • installer
  • newsletter
  • None
  • photo
    • gallery
  • PHP
  • polls
  • recaptcha
  • sapphire
    • api
    • bulkloading
    • control
    • core
    • cron
    • dev
    • email
    • fields-formattedinput
    • filesystem
    • formatters
    • forms
    • i18n
    • integration
    • misc
    • model
    • parsers
    • search
    • security
    • tasks
    • testing
    • tools
    • validation
    • view
    • widgets
  • seo
    • open
      • graph
  • sfDateTimePlugin
  • spamprotection
  • stealth
    • captha
  • subsites
  • userform
    • pagetypes
  • userforms
  • webylon
  • widgets

Classes

  • AssetManager
  • CartTableListField_Item
  • ComplexTableField
  • ComplexTableField_Item
  • ComplexTableField_ItemRequest
  • ComplexTableField_Popup
  • CountryDropdownField
  • DataObjectManager
  • DataObjectManager_Item
  • DataObjectManager_ItemRequest
  • DocumentPageFiles_Manager
  • FileDataObjectManager
  • FileDataObjectManager_Item
  • FileDataObjectManager_ItemRequest
  • HasManyComplexTableField
  • HasManyComplexTableField_Item
  • HasManyDataObjectManager
  • HasManyDataObjectManager_Item
  • HasManyFileDataObjectManager
  • HasManyFileDataObjectManager_Item
  • HasOneComplexTableField
  • HasOneComplexTableField_Item
  • HasOneDataObjectManager
  • HasOneDataObjectManager_Item
  • HasOneFileDataObjectManager
  • HasOneFileDataObjectManager_Item
  • ImageAssetManager
  • ImageDataObjectManager
  • ImageDataObjectManager_Item
  • ImageDataObjectManager_ItemRequest
  • LanguageDropdownField
  • ManyManyComplexTableField
  • ManyManyComplexTableField_Item
  • ManyManyDataObjectManager
  • ManyManyDataObjectManager_Item
  • ManyManyFileDataObjectManager
  • ManyManyFileDataObjectManager_Item
  • Mediaweb3DPageFiles_Manager
  • MediawebPageFiles_Manager
  • MediawebPagePhoto_Manager
  • MediawebPageTexture_Manager
  • PhotoAlbumManager
  • ScaffoldingComplexTableField_Popup
  • SubpageListField_Item
  • SubPageListField_ItemRequest
  • SubsiteAgnosticTableListField
  • TableField
  • TableField_Item
  • TableListField
  • TableListField_Item
  • TableListField_ItemRequest
  • TreeDropdownField
  • TreeDropdownField_Readonly
  • TreeMultiselectField
  • TreeMultiselectField_Readonly
  • TreeSelectorField
 1 <?php
 2 /**
 3  * ComplexTableField with a radio button column, designed to edit a has_one join.
 4  * @package forms
 5  * @subpackage fields-relational
 6  */
 7 class HasOneComplexTableField extends HasManyComplexTableField {
 8     
 9     public $itemClass = 'HasOneComplexTableField_Item';
10     
11     public $isOneToOne = false;
12     
13     function getParentIdName($parentClass, $childClass) {
14         return $this->getParentIdNameRelation($parentClass, $childClass, 'has_one');
15     }
16             
17     function getControllerJoinID() {
18         $fieldName = $this->name;
19         $fieldNameID = $fieldName . 'ID';       
20         return $this->controller->{$fieldNameID};
21     }
22     
23     function saveInto(DataObject $record) {
24         $fieldName = $this->name;
25         $fieldNameID = $fieldName . 'ID';       
26         $record->$fieldNameID = 0;
27         if($val = $this->value[ $this->htmlListField ]) {
28             if($val != 'undefined')
29                 $record->$fieldNameID = $val;
30         }
31         
32         $record->write();
33     }
34     
35     function setOneToOne() {
36         $this->isOneToOne = true;
37     }
38     
39     function isChildSet($childID) {
40         return DataObject::get($this->controllerClass(), '"' . $this->joinField . "\" = '$childID'");
41     }
42     
43     function ExtraData() {
44         $val = $this->getControllerJoinID() ? $this->getControllerJoinID() : '';
45         $inputId = $this->id() . '_' . $this->htmlListEndName;
46         return <<<HTML
47         <input id="$inputId" name="{$this->name}[{$this->htmlListField}]" type="hidden" value="$val"/>
48 HTML;
49     }
50 }
51 
52 /**
53  * Single record of a {@link HasOneComplexTableField} field.
54  * @package forms
55  * @subpackage fields-relational
56  */
57 class HasOneComplexTableField_Item extends ComplexTableField_Item {
58     
59     function MarkingCheckbox() {
60         $name = $this->parent->Name() . '[]';
61         
62         $isOneToOne = $this->parent->isOneToOne;
63         $joinVal = $this->parent->getControllerJoinID();
64         $childID = $this->item->ID;
65                         
66         if($this->parent->IsReadOnly || ($isOneToOne && $joinVal != $childID && $this->parent->isChildSet($childID)))
67             return "<input class=\"radio\" type=\"radio\" name=\"$name\" value=\"{$this->item->ID}\" disabled=\"disabled\"/>";
68         else if($joinVal == $childID)
69             return "<input class=\"radio\" type=\"radio\" name=\"$name\" value=\"{$this->item->ID}\" checked=\"checked\"/>";
70         else
71             return "<input class=\"radio\" type=\"radio\" name=\"$name\" value=\"{$this->item->ID}\"/>";
72     }
73 }
74 
75 ?>
[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -
Webylon 3.1 API Docs API documentation generated by ApiGen 2.8.0