CMS  Version 3.9
ConnectableTableFieldRenderer Class Reference

Inherits FieldRenderer.

Public Member Functions

 __construct ($form, $field, $label, $targetClass)
 
 buildTable ()
 
 formatCheckbox ($item)
 
 renderScript ()
 
 renderField ($field)
 
 postProcess ($field="")
 

Public Attributes

 $table
 
 $field
 
 $label
 
 $targetClass
 
 $target
 
 $colspan = 2
 
 $related
 

Detailed Description

Definition at line 9 of file connectable_field_renderers.inc.

Constructor & Destructor Documentation

◆ __construct()

ConnectableTableFieldRenderer::__construct (   $form,
  $field,
  $label,
  $targetClass 
)

Definition at line 22 of file connectable_field_renderers.inc.

23  {
24  $this->FieldRenderer($form);
25 
26  $this->field = $field;
27  $this->label = $label;
28  $this->targetClass = $targetClass;
29 
30  $this->target = new $targetClass;
31 
32  $this->parent->add($this);
33 
34  $items = ConnectableManager::getConnectedItems($this->parent->data, $this->targetClass);
35  $this->related = reindexList($items, $this->target->getPrimaryKey());
36  $this->buildTable();
37  }
$form
$siteTree target
Definition: site_map.inc:56
static getConnectedItems($sourceItem, $targetClass, $constraint="")
Returns the connected items for the specified source that are of the specified class.
$openData field

Member Function Documentation

◆ buildTable()

ConnectableTableFieldRenderer::buildTable ( )

Definition at line 39 of file connectable_field_renderers.inc.

40  {
41  $this->table = new DataListView(null, "connectables");
42  $this->table->rowId = true;
43 
44  $this->table->pageSize = 5;
45  $this->table->filter = true;
46  $this->table->emptyMessage = "There are no ".$this->target->prettifyClassName(true)." to select from";
47 
48  $this->table->selectable = true;
49  $this->table->selector(array($this, 'formatCheckbox'));
50 
51  $this->target->populateSelectionTable($this->table);
52 
53  }

◆ formatCheckbox()

ConnectableTableFieldRenderer::formatCheckbox (   $item)

Definition at line 55 of file connectable_field_renderers.inc.

56  {
57  $pk = $item->getPrimaryKey();
58  $pkval = $item->get($pk);
59 
60  $checked = array_key_exists($pkval, $this->related) ? " checked='checked'" : "";
61 
62  return $item->format("<input type='checkbox' class='checkbox' name='{$pk}[]' id='{$pk}_{{$pk}}' value='{{$pk}}'{$checked}/>");
63  }

◆ postProcess()

ConnectableTableFieldRenderer::postProcess (   $field = "")

Definition at line 75 of file connectable_field_renderers.inc.

76  {
77  if (!$field) $field = $this->field;
78 
79  ConnectableManager::removeConnections($this->parent->data, $this->targetClass);
80 
81  $ids = $_POST[$this->target->getPrimaryKey()];
82 
83  foreach($ids as $id)
84  {
85  $target = new $this->target;
86  $target->load($id);
87  ConnectableManager::addConnection($this->parent->data, $target);
88  }
89 
90  return true;
91  }
$_POST["owner_id"]
Definition: blog_form.inc:54
static addConnection($source, $target)
Add a connection between the given source and target objects.
static removeConnections($source, $targetClass)
Remove any connection that exists between the source and objects of the specified target class (inclu...

◆ renderField()

ConnectableTableFieldRenderer::renderField (   $field)

Definition at line 70 of file connectable_field_renderers.inc.

71  {
72  echo $this->table->drawView();
73  }

◆ renderScript()

ConnectableTableFieldRenderer::renderScript ( )

Definition at line 65 of file connectable_field_renderers.inc.

66  {
67  echo $this->table->writeScript();
68  }

Member Data Documentation

◆ $colspan

ConnectableTableFieldRenderer::$colspan = 2

Definition at line 19 of file connectable_field_renderers.inc.

◆ $field

ConnectableTableFieldRenderer::$field

Definition at line 13 of file connectable_field_renderers.inc.

◆ $label

ConnectableTableFieldRenderer::$label

Definition at line 14 of file connectable_field_renderers.inc.

◆ $related

ConnectableTableFieldRenderer::$related

Definition at line 20 of file connectable_field_renderers.inc.

◆ $table

ConnectableTableFieldRenderer::$table

Definition at line 11 of file connectable_field_renderers.inc.

◆ $target

ConnectableTableFieldRenderer::$target

Definition at line 17 of file connectable_field_renderers.inc.

◆ $targetClass

ConnectableTableFieldRenderer::$targetClass

Definition at line 16 of file connectable_field_renderers.inc.


The documentation for this class was generated from the following file: