/** * Add js and css components to the current web page * * @static * @since 2.0b1 * @param string $names A comma separated list of ui components to include. Avail since 3.5. */ public static function LoadComponents($names = '') { \gp\tool\Output::$components .= ',' . $names . ','; \gp\tool\Output::$components = str_replace(',,', ',', \gp\tool\Output::$components); }
public function GetSection(&$section_num) { global $langmessage; if (!isset($this->file_sections[$section_num])) { trigger_error('invalid section number'); return; } $curr_section_num = $section_num; $section_num++; $content = ''; $section_data = $this->file_sections[$curr_section_num]; //make sure section_data is an array $type = gettype($section_data); if ($type !== 'array') { trigger_error('$section_data is ' . $type . '. Array expected'); return; } $section_data += array('attributes' => array(), 'type' => 'text'); $section_data['attributes'] += array('class' => ''); $orig_attrs = $section_data['attributes']; $section_data['attributes']['data-gp-section'] = $curr_section_num; $section_types = \gp\tool\Output\Sections::GetTypes(); if (\gp\tool\Output::ShowEditLink() && \gp\admin\Tools::CanEdit($this->gp_index)) { if (isset($section_types[$section_data['type']])) { $title_attr = $section_types[$section_data['type']]['label']; } else { $title_attr = sprintf($langmessage['Section %s'], $curr_section_num + 1); } $attrs = array('title' => $title_attr, 'data-cmd' => 'inline_edit_generic', 'data-arg' => $section_data['type'] . '_inline_edit'); $link = \gp\tool\Output::EditAreaLink($edit_index, $this->title, $langmessage['edit'], 'section=' . $curr_section_num, $attrs); $section_data['attributes']['data-gp-area-id'] = $edit_index; //section control links if ($section_data['type'] != 'wrapper_section') { ob_start(); echo '<span class="nodisplay" id="ExtraEditLnks' . $edit_index . '">'; echo $link; echo \gp\tool::Link($this->title, $langmessage['Manage Sections'], 'cmd=ManageSections', array('class' => 'manage_sections', 'data-cmd' => 'inline_edit_generic', 'data-arg' => 'manage_sections')); echo '<span class="gp_separator"></span>'; echo \gp\tool::Link($this->title, $langmessage['rename/details'], 'cmd=renameform&index=' . urlencode($this->gp_index), 'data-cmd="gpajax"'); echo \gp\tool::Link($this->title, $langmessage['Revision History'], 'cmd=ViewHistory', array('data-cmd' => 'gpabox')); echo '<span class="gp_separator"></span>'; echo \gp\tool::Link('Admin/Menu', $langmessage['file_manager']); echo '</span>'; \gp\tool\Output::$editlinks .= ob_get_clean(); } $section_data['attributes']['id'] = 'ExtraEditArea' . $edit_index; } $content .= $this->SectionNode($section_data, $orig_attrs); if ($section_data['type'] == 'wrapper_section') { for ($cc = 0; $cc < $section_data['contains_sections']; $cc++) { $content .= $this->GetSection($section_num); } } else { \gp\tool\Output::$nested_edit = true; $content .= \gp\tool\Output\Sections::RenderSection($section_data, $curr_section_num, $this->title, $this->file_stats); \gp\tool\Output::$nested_edit = false; } if (!isset($section_data['nodeName'])) { $content .= '<div class="gpclear"></div>'; $content .= '</div>'; } else { $content .= \gp\tool\Output\Sections::EndTag($section_data['nodeName']); } return $content; }