/** * Constructor * * @param string $content_id Content id * * @return void */ protected function __construct($content_id) { parent::__construct($content_id); $criteria_array = array(array('isContentType', array(array('SimplePicture')))); $allowed_content_types = ContentTypeFilter::getObject($criteria_array); $this->setAllowedContentTypes($allowed_content_types); $this->predefinedSizes = array('300px/250px' => _('300x250 - IAB Medium Rectangle'), '250px/250px' => _('250x250 - IAB Square Pop-Up'), '240px/400px' => _('240x400 - IAB Vertical Rectangle'), '336px/280px' => _('336x280 - IAB Large Rectangle'), '180px/150px' => _('180x150 - IAB Rectangle'), '468px/60px' => _('468x60 - IAB Full Banner'), '234px/60px' => _('234x60 - IAB Half Banner'), '88px/31px' => _('88x31 - IAB Micro Bar'), '120px/90px' => _('120x90 - IAB Button 1'), '120px/60px' => _('120x60 - IAB Button 2'), '120px/240px' => _('120x240 - IAB Vertical Banner'), '125px/125px' => _('125x125 - IAB Square Button'), '728px/90px' => _('728x90 - IAB Leaderboard'), '160px/600px' => _('160x600 - IAB Wide Skyscraper'), '120px/600px' => _('120x600 - IAB Skyscraper'), '300px/600px' => _('300x600 - IAB Half Page Ad')); }
/** * Retreives the admin interface of this object. Anything that overrides * this method should call the parent method with it's output at the END of * processing. * @param string $subclass_admin_interface HTML content of the interface * element of a children. * @return string The HTML fragment for this interface. */ public function getAdminUI($subclass_admin_interface = null, $title = null) { $db = AbstractDb::getObject(); $html = ''; if (!(User::getCurrentUser()->DEPRECATEDisSuperAdmin() || $this->DEPRECATEDisOwner(User::getCurrentUser()))) { $html .= $this->getListUI(); $html .= ' ' . _("(You do not have access to edit this piece of content)"); } else { $html .= "<fieldset class='admin_container " . get_class($this) . "'>\n"; if (!empty($title)) { $html .= "<legend>{$title}</legend>\n"; } $html .= "<ul class='admin_element_list'>\n"; if ($this->getObjectType() == 'Content') { // The object hasn't yet been typed. $html .= _("You must select a content type: "); $i = 0; foreach (self::getAvailableContentTypes() as $classname) { $tab[$i][0] = $classname; $tab[$i][1] = $classname; $i++; } $html .= FormSelectGenerator::generateFromArray($tab, null, "content_" . $this->id . "_content_type", "Content", false); } else { $criteria_array = array(array('isSimpleContent')); $metadada_allowed_content_types = ContentTypeFilter::getObject($criteria_array); // Content metadata if ($this->isSimpleContent() == false || $this->isPersistent()) { $html .= "<fieldset class='admin_element_group'>\n"; $html .= "<legend>" . sprintf(_("%s MetaData"), get_class($this)) . "</legend>\n"; /* title_is_displayed */ $html_title_is_displayed = _("Display the title?") . ": \n"; $name = "content_" . $this->id . "_title_is_displayed"; $this->titleShouldDisplay() ? $checked = 'CHECKED' : ($checked = ''); $html_title_is_displayed .= "<input type='checkbox' name='{$name}' {$checked}>\n"; /* title */ $html .= "<li class='admin_element_item_container admin_section_edit_title'>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->content_row['title'])) { $html .= self::getNewContentUI("title_{$this->id}_new", $metadada_allowed_content_types, _("Title:")); $html .= "</div>\n"; } else { $html .= $html_title_is_displayed; $title = self::getObject($this->content_row['title']); $html .= $title->getAdminUI(null, _("Title:")); $html .= "</div>\n"; $html .= "<div class='admin_element_tools admin_section_delete_title'>\n"; $name = "content_" . $this->id . "_title_erase"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("title"), get_class($title)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; } if ($this->isSimpleContent() == false) { /* description */ $html .= "<li class='admin_element_item_container admin_section_edit_description'>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->content_row['description'])) { $html .= self::getNewContentUI("description_{$this->id}_new", $metadada_allowed_content_types, _("Description:")); $html .= "</div>\n"; } else { $description = self::getObject($this->content_row['description']); $html .= $description->getAdminUI(null, _("Description:")); $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "content_" . $this->id . "_description_erase"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("description"), get_class($description)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; /* long description */ $html .= "<li class='admin_element_item_container admin_section_edit_long_description'>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->content_row['long_description'])) { $html .= self::getNewContentUI("long_description_{$this->id}_new", $metadada_allowed_content_types, _("Long description:")); $html .= "</div>\n"; } else { $description = self::getObject($this->content_row['long_description']); $html .= $description->getAdminUI(null, _("Long description:")); $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "content_" . $this->id . "_long_description_erase"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("long description"), get_class($description)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; /* project_info */ $html .= "<li class='admin_element_item_container admin_section_edit_project'>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->content_row['project_info'])) { $html .= self::getNewContentUI("project_info_{$this->id}_new", $metadada_allowed_content_types, _("Information on this project:")); $html .= "</div>\n"; } else { $project_info = self::getObject($this->content_row['project_info']); $html .= $project_info->getAdminUI(null, _("Information on this project:")); $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "content_" . $this->id . "_project_info_erase"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("project information"), get_class($project_info)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; } //End content medatada if ($this->isSimpleContent() == false || $this->isPersistent()) { $html .= "</fieldset>\n"; } if ($this->isSimpleContent() == false || $this->isPersistent()) { $html .= "<fieldset class='admin_element_group'>\n"; $html .= "<legend>" . sprintf(_("%s access control"), get_class($this)) . "</legend>\n"; /* is_persistent */ $html .= "<li class='admin_element_item_container admin_section_edit_persistant'>\n"; $html .= "<div class='admin_element_label'>" . _("Is part of reusable content library (protected from deletion)?") . ": </div>\n"; $html .= "<div class='admin_element_data'>\n"; $name = "content_" . $this->id . "_is_persistent"; $this->isPersistent() ? $checked = 'CHECKED' : ($checked = ''); $html .= "<input type='checkbox' name='{$name}' {$checked} onChange='submit();'>\n"; $html .= "</div>\n"; $html .= "</li>\n"; /* content_has_owners */ $html .= "<li class='admin_element_item_container content_has_owners'>\n"; $html .= "<div class='admin_element_label'>" . _("Content owner list") . "</div>\n"; $html .= "<ul class='admin_element_list'>\n"; $db = AbstractDb::getObject(); $sql = "SELECT * FROM content_has_owners WHERE content_id='{$this->id}'"; $db->execSql($sql, $content_owner_rows, false); if ($content_owner_rows != null) { foreach ($content_owner_rows as $content_owner_row) { $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_data'>\n"; $user = User::getObject($content_owner_row['user_id']); $html .= $user->getListUI(); $name = "content_" . $this->id . "_owner_" . $user->GetId() . "_is_author"; $html .= " Is content author? "; $content_owner_row['is_author'] == 't' ? $checked = 'CHECKED' : ($checked = ''); $html .= "<input type='checkbox' name='{$name}' {$checked}>\n"; $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "content_" . $this->id . "_owner_" . $user->GetId() . "_remove"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . _("Remove owner") . "'>"; $html .= "</div>\n"; $html .= "</li>\n"; } } $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_data'>\n"; $add_button_name = "content_{$this->id}_add_owner_submit"; $add_button_value = _("Add owner"); $html .= User::getSelectUserUI("content_{$this->id}_new_owner", $add_button_name, $add_button_value); $html .= "</div>\n"; $html .= "</li>\n"; $html .= "</ul>\n"; $html .= "</li>\n"; $html .= "</fieldset>\n"; } } $html .= $subclass_admin_interface; $html .= "</ul>\n"; $html .= "</fieldset>\n"; } return $html; }
/** * Shows the administration interface for ContentGroupElement * * @param string $subclass_admin_interface HTML code to be added after the * administration interface * * @return string HTML code for the administration interface */ public function getAdminUI($subclass_admin_interface = null, $title = null) { // Init values $html = ''; $html .= "<li class='admin_element_item_container'>\n"; $html .= "<fieldset class='admin_element_group'>\n"; $html .= "<legend>" . get_class($this) . " [" . $this->getDisplayOrder() . "]</legend>\n"; $html .= "<ul class='admin_element_list'>\n"; // display_order $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Display order") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $name = "profile_template_field_{$this->_id}_display_order"; $html .= "<input type='text' name='{$name}' value='" . $this->getDisplayOrder() . "' size='2'>\n"; $html .= "</div>\n"; $html .= "</li>\n"; $metadata_criteria_array = array(array('isSimpleContent')); $metadada_allowed_content_types = ContentTypeFilter::getObject($metadata_criteria_array); // content_type_filter_id $html .= "<li class='admin_element_item_container'>\n"; if ($this->getContentTypeFilter() == null) { $html .= "<div class='errormsg'>" . _("Sorry, content type filter is missing.") . "</div>\n"; } else { $html .= "<div class='admin_element_label'>" . _("Content type filter") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $label = $this->getContentTypeFilter()->getLabel(); $html .= empty($label) ? "[" . _("No label") . "] - " . $this->getContentTypeFilter()->getId() : $label; $html .= "</div>\n"; } $html .= "</li>\n"; // display_label_content_id $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Display label") . ":</div>\n"; if (empty($this->profile_template_field_row['display_label_content_id'])) { $html .= Content::getNewContentUI("profile_template_field_{$this->_id}_new_display_label_content", $metadada_allowed_content_types); $html .= "</li>\n"; } else { $display_label_content = Content::getObject($this->profile_template_field_row['display_label_content_id']); $html .= $display_label_content->getAdminUI(null, sprintf(_("%s display label (%s)"), get_class($this), get_class($display_label_content))); $html .= "<div class='admin_element_tools'>\n"; $name = "profile_template_field_{$this->_id}_erase_display_label_content"; $html .= "<input type='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("display label"), get_class($display_label_content)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; // admin_label_content_id $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Admin label") . ":</div>\n"; if (empty($this->profile_template_field_row['admin_label_content_id'])) { $html .= "<li class='admin_element_item_container'>\n"; $html .= Content::getNewContentUI("profile_template_field_{$this->_id}_new_admin_label_content", $metadada_allowed_content_types); $html .= "</li>\n"; } else { $admin_label_content = Content::getObject($this->profile_template_field_row['admin_label_content_id']); $html .= $admin_label_content->getAdminUI(null, sprintf(_("%s admin label (%s)"), get_class($this), get_class($admin_label_content))); $html .= "<div class='admin_element_tools'>\n"; $name = "profile_template_field_{$this->_id}_erase_admin_label_content"; $html .= "<input type='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("admin label"), get_class($admin_label_content)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; // semantic_id $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Semantic ID") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $name = "profile_template_field_{$this->_id}_semantic_id"; $html .= "<input type='text' name='{$name}' value='" . $this->getSemanticId() . "' size='15'>\n"; $semantic_id_presets = array("---" => "", "foaf:name - " . _("Full name") => "foaf:name", "foaf:nick - " . _("Nickname") => "foaf:nick", "foaf:mbox - " . _("E-mail") => "foaf:mbox", "foaf:mbox_sha1sum - " . _("Hashed e-mail") => "foaf:mbox_sha1sum", "foaf:img - " . _("Picture") => "foaf:img", "foaf:weblog - " . _("URL of a blog") => "foaf:weblog", "foaf:homepage - " . _("URL of a homepage") => "foaf:homepage"); $html .= "<select onchange=\"this.form.{$name}.value = this.value;\">"; foreach ($semantic_id_presets as $label => $value) { $value == $this->getSemanticId() ? $selected = 'SELECTED' : ($selected = ''); $html .= "<option value=\"{$value}\" {$selected}>{$label}"; } $html .= "</select>\n"; $html .= "</div>\n"; $html .= "</li>\n"; $html .= "</ul>\n"; $html .= "</li>\n"; $html .= "</fieldset>\n"; $html .= "</li>\n"; return $html; }
public function getAdminUI($subclass_admin_interface = null, $title = null) { $html = null; /*display_num_items*/ $displayNumItems = $this->getDisplayNumItems(); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . "Number of shouts to display in the list (0 means no limit)" . ": </div>\n"; $html .= "<div class='admin_element_data'>\n"; $name = "shoutbox_{this->getId()}_display_num_items"; $html .= "<input type='text' size='6' value='{$displayNumItems}' name='{$name}'>\n"; $html .= "</div>\n"; $html .= "</li>\n"; /*max_shout_chars*/ $maxShoutChars = $this->getMaxShoutChars(); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . "Maximum number of characters for each shouts (0 means no limit)" . ": </div>\n"; $html .= "<div class='admin_element_data'>\n"; $name = "shoutbox_{this->getId()}_max_num_chars"; $html .= "<input type='text' size='6' value='{$maxShoutChars}' name='{$name}'>\n"; $html .= "</div>\n"; $html .= "</li>\n"; /*shout_field_size*/ $shoutFieldSize = $this->getShoutFieldSize(); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . "Size (num characters) of the shout field" . ": </div>\n"; $html .= "<div class='admin_element_data'>\n"; $name = "shoutbox_{this->getId()}_shout_field_size"; $html .= "<input type='text' size='6' value='{$shoutFieldSize}' name='{$name}'>\n"; $html .= "</div>\n"; $html .= "</li>\n"; /* OnclickContent */ $criteria_array = array(array('isTextualContent'), array('isSimpleContent')); $onclick_allowed_content_types = ContentTypeFilter::getObject($criteria_array); $content = $this->getOnClickContent(); $html .= "<li class='admin_element_item_container admin_section_edit_description'>\n"; $html .= "<div class='admin_element_data'>\n"; $onclick_title = _("Shout button 'onclick=' value (optionnal):"); if (!$content) { $name = "shoutbox_" . $this->id . "_onclick_content_new"; $html .= self::getNewContentUI($name, $onclick_allowed_content_types, $onclick_title); $html .= $hint; } else { $html .= $content->getAdminUI(null, $onclick_title); $html .= "<div class='admin_section_hint'>" . sprintf(_("Note that the onclick parameter will appear inside double quotes in html. They must be properly encoded fot that context. You can access the shout text in Javascript with: %s"), "document.getElementById('shout_text').value") . "</div>\n"; $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "shoutbox_" . $this->id . "_onclick_content_erase"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("onclick parameter"), get_class($content)) . "'>"; } $html .= "</div>\n"; $html .= "</li>\n"; return parent::getAdminUI($html, $title); }
/** * Retreives the admin interface of this object * * @return string The HTML fragment for this interface */ public function getAdminUI() { Security::requirePermission(Permission::P('SERVER_PERM_EDIT_ROLES'), Server::getServer()); $db = AbstractDb::getObject(); // Init values $html = ''; $html .= "<fieldset class='admin_container " . get_class($this) . "'>\n"; $html .= "<legend>" . _("User roles management") . "</legend>\n"; $html .= "<ul class='admin_element_list'>\n"; //stakeholder_type $_value = htmlspecialchars($this->_row['stakeholder_type_id'], ENT_QUOTES); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Stakeholder type") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $html .= $_value; $html .= "</div>\n"; $html .= "</li>\n"; //is_system_role if ($this->isSystemRole()) { $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("This role is a system role") . ":</div>\n"; $html .= "</li>\n"; } // role_id $_value = htmlspecialchars($this->getId(), ENT_QUOTES); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Role ID") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $html .= $_value; $html .= "</div>\n"; $html .= "</li>\n"; // role_description_content_id $criteria_array = array(array('isSimpleContent')); $description_allowed_content_types = ContentTypeFilter::getObject($criteria_array); $html .= "<li class='admin_element_item_container admin_section_edit_description'>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->_row['role_description_content_id'])) { $name = "role_{$this->id}_description_new"; $html .= Content::getNewContentUI($name, $description_allowed_content_types, _("Description:")); $html .= "</div>\n"; } else { $description = Content::getObject($this->_row['role_description_content_id']); $html .= $description->getAdminUI(null, _("Description:")); $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "role_{$this->id}_description_erase"; $html .= "<input type='submit' class='submit' name='{$name}' value='" . sprintf(_("Delete %s (%s)"), _("description"), get_class($description)) . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; // creation date $_value = htmlspecialchars($this->getCreationDate(), ENT_QUOTES); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Creation date") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $html .= $_value; $html .= "</div>\n"; $html .= "</li>\n"; $html .= "</ul>\n"; // Permissions $permissionsArray = Permission::getPermissions(array('stakeholderTypeId' => $this->_row['stakeholder_type_id'])); $idStr = $db->escapeString($this->getId()); $stakeholderTypeIdStr = $db->escapeString($this->_row['stakeholder_type_id']); $sql = "SELECT permissions.permission_id, stakeholder_type_id, role_id FROM permissions LEFT JOIN role_has_permissions ON (role_has_permissions.permission_id = permissions.permission_id AND role_id = '{$idStr}') WHERE stakeholder_type_id='{$stakeholderTypeIdStr}'"; $db->execSql($sql, $permission_rows, false); $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Permissions") . ":</div>\n"; $html .= "<div class='admin_element_data'>\n"; $html .= "<ul class='admin_element_list'>\n"; if ($permission_rows) { foreach ($permission_rows as $row) { $permission = Permission::getObject($row['permission_id']); $html .= "<li class='admin_element_item_container'>\n"; $name = "role_{$this->id}_permission_" . htmlspecialchars($row['permission_id'], ENT_QUOTES) . "_included"; !empty($row['role_id']) ? $checked = 'CHECKED' : ($checked = ''); $html .= "<input type='checkbox' name='{$name}' value='included' {$checked}/>"; $html .= $permission->getListUI(); $html .= "</li>\n"; } } $html .= "</ul>\n"; $html .= "</div>\n"; $html .= "</li>\n"; $html .= "</ul>\n"; $html .= "</fieldset>\n"; return $html; }
/** * Shows the administration interface for embedded content. * * @param string $subclass_admin_interface HTML code to be added after the * administration interface * * @return string HTML code for the administration interface */ public function getAdminUI($subclass_admin_interface = null, $title = null) { $html = ''; $html .= "<ul class='admin_element_list'>\n"; /* Embedded content Content */ $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Embedded content") . " : <br></div>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->embedded_content_row['embedded_file_id'])) { // Mandate File $criteria_array = array(array('isContentType', array(array('File')))); $html .= self::getNewContentUI("embedded_file_{$this->id}_new", ContentTypeFilter::getObject($criteria_array)); $html .= "</div>\n"; } else { $embedded_content_file = self::getObject($this->embedded_content_row['embedded_file_id']); $html .= $embedded_content_file->getAdminUI(); $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "embeddedcontent_" . $this->id . "_embedded_file_erase"; $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Attributes") . " : </div>\n"; $html .= "<div class='admin_element_data'>\n"; $html .= "<br><i>" . _("It is recommended to specify at least <b>width='x' height='y'</b> as attributes") . "</i><br>\n"; $html .= '<textarea name="embedded_content_attributes' . $this->getId() . '" cols="60" rows="3">' . htmlspecialchars($this->getAttributes(), ENT_QUOTES, 'UTF-8') . '</textarea>'; $html .= "</div>\n"; $html .= "</li>\n"; $html .= "<li class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Parameters") . " : </div>\n"; $html .= "<div class='admin_element_data'>\n"; $html .= '<br><textarea name="embedded_content_parameters' . $this->getId() . '" cols="60" rows="3">' . htmlspecialchars($this->getParameters(), ENT_QUOTES, 'UTF-8') . '</textarea>'; $html .= "</div>\n"; $html .= "</li>\n"; $html .= "<input type='submit' name='{$name}' value='" . _("Delete") . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; /* Fallback content */ $html .= "<div class='admin_element_item_container'>\n"; $html .= "<div class='admin_element_label'>" . _("Fallback content (Can be another embedded content to create a fallback hierarchy)") . " : <br></div>\n"; $html .= "<div class='admin_element_data'>\n"; if (empty($this->embedded_content_row['fallback_content_id'])) { //Textual content make sense for fallback content, su just exclude ContentGroup $criteria_array = array(array('isNotContentType', array(array('ContentGroup')))); $html .= self::getNewContentUI("fallback_content_{$this->id}_new", ContentTypeFilter::getObject($criteria_array)); $html .= "</div>\n"; } else { $fallback_content = self::getObject($this->embedded_content_row['fallback_content_id']); $html .= $fallback_content->getAdminUI(); $html .= "</div>\n"; $html .= "<div class='admin_element_tools'>\n"; $name = "fallback_content_" . $this->id . "_fallback_content_erase"; $html .= "<input type='submit' name='{$name}' value='" . _("Delete") . "'>"; $html .= "</div>\n"; } $html .= "</li>\n"; $html .= "</ul>\n"; $html .= $subclass_admin_interface; return parent::getAdminUI($html, $title); }