/** * [Node] Add/Edit Form * * @param \IPS\Helpers\Form $form The form * @return void */ public function form(&$form) { $form->attributes['data-controller'] = 'membermap.admin.membermap.groupform'; /* Build form */ $form->add(new \IPS\Helpers\Form\Translatable('group_name', NULL, TRUE, array('app' => 'membermap', 'key' => $this->id ? "membermap_marker_group_{$this->id}" : NULL))); $form->add(new \IPS\Helpers\Form\YesNo('group_moderate', $this->id ? $this->moderate : FALSE, FALSE)); if ($this->type == 'custom') { $radioOpt = array(); $colours = array('red', 'darkred', 'lightred', 'orange', 'beige', 'green', 'darkgreen', 'lightgreen', 'blue', 'darkblue', 'lightblue', 'purple', 'darkpurple', 'pink', 'cadetblue', 'gray', 'lightgray', 'black', 'white'); $icon = $this->id ? $this->pin_icon : 'fa-globe'; $iconColour = $this->id ? $this->pin_colour : '#FFFFFF'; $bgColour = $this->id ? $this->pin_bg_colour : 'red'; /* Selected a valid colour? */ $bgColour = in_array($bgColour, $colours) ? $bgColour : 'red'; foreach ($colours as $c) { $radioOpt[$c] = \IPS\Theme::i()->resource("awesome-marker-icon-{$c}.png", "membermap", 'admin'); } $form->add(new \IPS\Helpers\Form\Text('group_pin_icon', $icon, TRUE)); $form->add(new \IPS\Helpers\Form\Color('group_pin_colour', $iconColour, TRUE)); $form->add(new \IPS\Helpers\Form\Radio('group_pin_bg_colour', $bgColour, TRUE, array('options' => $radioOpt, 'parse' => 'image', 'descriptions' => array('white' => \IPS\Member::loggedIn()->language()->addToStack('group_pin_bg_colour_white'))))); $form->addDummy('group_marker_example', "<span class='awesome-marker awesome-marker-icon-{$bgColour}' id='markerExample'><i class='fa fa-fw {$icon}' style='color: {$iconColour}'></i></span>"); } }