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

Packages

  • 1c
    • exchange
      • catalog
  • auth
  • Booking
  • building
    • company
  • cart
    • shipping
    • steppedcheckout
  • Catalog
    • monument
  • 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         return $this->controller->{$this->joinField};
19     }
20     
21     function saveInto(DataObject $record) {
22         $fieldName = $this->name;
23         $fieldNameID = $fieldName . 'ID';
24         
25         $record->$fieldNameID = 0;
26         if($val = $this->value[ $this->htmlListField ]) {
27             if($val != 'undefined')
28                 $record->$fieldNameID = $val;
29         }
30         
31         $record->write();
32     }
33     
34     function setOneToOne() {
35         $this->isOneToOne = true;
36     }
37     
38     function isChildSet($childID) {
39         return DataObject::get($this->controllerClass(), '"' . $this->joinField . "\" = '$childID'");
40     }
41     
42     function ExtraData() {
43         $val = $this->getControllerJoinID() ? $this->getControllerJoinID() : '';
44         $inputId = $this->id() . '_' . $this->htmlListEndName;
45         return <<<HTML
46         <input id="$inputId" name="{$this->name}[{$this->htmlListField}]" type="hidden" value="$val"/>
47 HTML;
48     }
49 }
50 
51 /**
52  * Single record of a {@link HasOneComplexTableField} field.
53  * @package forms
54  * @subpackage fields-relational
55  */
56 class HasOneComplexTableField_Item extends ComplexTableField_Item {
57     
58     function MarkingCheckbox() {
59         $name = $this->parent->Name() . '[]';
60         
61         $isOneToOne = $this->parent->isOneToOne;
62         $joinVal = $this->parent->getControllerJoinID();
63         $childID = $this->item->ID;
64                         
65         if($this->parent->IsReadOnly || ($isOneToOne && $joinVal != $childID && $this->parent->isChildSet($childID)))
66             return "<input class=\"radio\" type=\"radio\" name=\"$name\" value=\"{$this->item->ID}\" disabled=\"disabled\"/>";
67         else if($joinVal == $childID)
68             return "<input class=\"radio\" type=\"radio\" name=\"$name\" value=\"{$this->item->ID}\" checked=\"checked\"/>";
69         else
70             return "<input class=\"radio\" type=\"radio\" name=\"$name\" value=\"{$this->item->ID}\"/>";
71     }
72 }
73 
74 ?>
[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.2 API Docs API documentation generated by ApiGen 2.8.0