$tpl->setVariable('ENTRY-TITLE', $lay[$value]['name']); $tpl->parseCurrentBlock(); } } } if (!empty($lay[$idlay]['description'])) { $tpl->setCurrentBlock('TPL-CONF_DESCRIPTION'); $tpl_data['LNG_LAYOUT-DESCRIPTION'] = $cms_lang['tpl_description']; $tpl_data['LAYOUT-DESCRIPTION'] = htmlentities($lay[$idlay]['description']); $tpl->setVariable($tpl_data); $tpl->parseCurrentBlock(); unset($tpl_data); } // wenn Layout gew�hlt if ($idlay) { $list = browse_layout_for_containers($idlay); $tpl->setCurrentBlock('HIDDEN-FIELDS_FIELD'); $tpl->setVariable('FIELD-NAME', 'changed'); $tpl->setVariable('FIELD-VALUE', '0'); $tpl->parseCurrentBlock(); $tpl->setVariable('FIELD-NAME', 'container'); $tpl->setVariable('FIELD-VALUE', implode(',', $list['id'])); $tpl->parseCurrentBlock(); $temp_output_for_backend = ob_get_contents(); ob_end_clean(); ob_start(); // Container auflisten if (is_array($list)) { include_once $cfg_cms['path_base'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/tpl_mod_config.php'; natsort($list['id']); foreach ($list['id'] as $value) {
function con_config_tpl_save($idtpl, $idlay, $idcatlang, $idsidelang, $idtplconf, $have_perm_save_configdata = true) { global $db, $cms_db, $cfg_client, $configtpl; if (!(is_numeric($idtpl) || is_int($idtpl))) { return; } if (!(is_numeric($idtplconf) || is_int($idtplconf))) { return; } $is_new_tpl = false; // Array der alten Container erstellen $used_container = browse_template_for_module('0', $idtplconf); if (!is_array($used_container['id'])) { $used_container['id']['0'] = '0'; } // Eintrag in 'tpl_conf' Tabelle if ($idtplconf == '0') { if ($idtpl != '0') { // Template erstellen $sql = "INSERT INTO {$cms_db['tpl_conf']} (idtpl) VALUES ('{$idtpl}')"; mysql_query($sql); //print_r($db); $idtplconf = mysql_insert_id(); //echo mysql_insert_id(); $is_new_tpl = true; //echo "<br>new tpl idtpl: $idtpl idtplconf: $idtplconf<br>"; } else { return; } } else { if ($idtpl != '0' && $idtpl != $configtpl) { // Template ändern $sql = "UPDATE {$cms_db['tpl_conf']} SET idtpl='{$idtpl}' WHERE idtplconf='{$idtplconf}'"; $db->query($sql); $is_new_tpl = true; } elseif ($idtpl == '0') { // Template löschen $sql = "DELETE FROM {$cms_db['container_conf']} WHERE idtplconf='{$idtplconf}'"; $db->query($sql); $sql = "DELETE FROM {$cms_db['tpl_conf']} WHERE idtplconf='{$idtplconf}'"; $db->query($sql); // Status der 'code' Tabelle ändern $list = get_idcode_by_idtplconf($idtplconf); change_code_status($list, '1'); unset($list); // Containerinhalt löschen $list = get_idsidelang_by_idtplconf($idtplconf); $sql = "DELETE FROM {$cms_db['content']} WHERE idsidelang IN(" . implode(',', $list) . ")"; $db->query($sql); $sql = "DELETE FROM {$cms_db['content_external']} WHERE idsidelang IN(" . implode(',', $list) . ")"; $db->query($sql); unset($list); $idtplconf = '0'; } } // Content aus Cache löschen sf_factoryCallMethod('UTILS', 'DbCache', null, null, 'flushByGroup', array('frontend', 'content')); // Template bei Seite oder Ordner eintragen if ($idcatlang) { $sql = "UPDATE {$cms_db['cat_lang']} SET idtplconf='{$idtplconf}' WHERE idcatlang='{$idcatlang}'"; } else { $sql = "UPDATE {$cms_db['side_lang']} SET idtplconf='{$idtplconf}' WHERE idsidelang='{$idsidelang}'"; } if ($idcatlang || $idsidelang) { //print_r($GLOBALS); //echo $lang."zzy"; exit; $db->query($sql); } if ($idtplconf == '0') { return; } // Array der neuen Container erstellen // ein vorhandenes template wird neu konfiguriert und benutzer hat das recht dazu if ($idlay && $have_perm_save_configdata) { $list = browse_layout_for_containers($idlay); if (is_array($list['id'])) { foreach ($list['id'] as $i) { global ${'C' . $i . 'MOD_VAR'}, ${'c' . $i}, ${'cview' . $i}, ${'cedit' . $i}; if (${'c' . $i}) { $container['id'][] = $i; } if (${'C' . $i . 'MOD_VAR'}) { $cconfig[$i] = make_array_to_urlstring(${'C' . $i . 'MOD_VAR'}); } } } //Ein neues Template wird angelegt - recht des benutzers ist egal } else { if (!$idlay) { //idlay ist bei zu wenig rechten nicht vorhanden, prüfen ob neues Template if (!$is_new_tpl && !$have_perm_save_configdata) { return; } // Templatevorlage kopieren $sql = "SELECT container, config, view, edit FROM {$cms_db['container']} A LEFT JOIN {$cms_db['container_conf']} B\n USING(idcontainer) WHERE A.idtpl='{$idtpl}' AND B.idtplconf='0'"; $db->query($sql); while ($db->next_record()) { $container['id'][] = $db->f('container'); $cconfig[$db->f('container')] = $db->f('config'); ${'cview' . $db->f('container')} = $db->f('view'); ${'cedit' . $db->f('container')} = $db->f('edit'); } //es wurde kein neues template angelegt -> benutzer hat nicht das recht weiterzumachen } else { return; } } if (!is_array($container['id'])) { $container['id']['0'] = '0'; } foreach ($container['id'] as $value) { if ($value != '0') { // neue Container hinzufügen if (!in_array($value, $used_container['id'])) { $sql = "SELECT idcontainer FROM {$cms_db['container']} WHERE idtpl='{$idtpl}' AND container='{$value}'"; $db->query($sql); $db->next_record(); $sql = "INSERT INTO {$cms_db['container_conf']} (idtplconf, idcontainer, config, view, edit)\n VALUES ('{$idtplconf}', '" . $db->f('idcontainer') . "', '{$cconfig[$value]}', '" . ${'cview' . $value} . "', '" . ${'cedit' . $value} . "')"; $db->query($sql); $change = 'true'; } // geänderte Container updaten if (in_array($value, $used_container['id'])) { // Modulkonfiguration hat sich geändert if ($used_container[$value]['config'] != $cconfig[$value] || $used_container[$value]['view'] != ${'cview' . $value} || $used_container[$value]['edit'] != ${'cedit' . $value}) { $sql = "UPDATE {$cms_db['container_conf']} SET config='" . $cconfig[$value] . "', view='" . ${'cview' . $value} . "', edit='" . ${'cedit' . $value} . "' WHERE idcontainer='" . $used_container[$value]['idcontainer'] . "' AND idtplconf='{$idtplconf}'"; $db->query($sql); $change = 'true'; } // Modul hat sich durch Templatewechsel geändert if ($idtpl != $configtpl) { $sql = "SELECT idcontainer FROM {$cms_db['container']} WHERE idtpl='{$idtpl}' AND container='{$value}'"; $db->query($sql); $db->next_record(); $sql = "UPDATE {$cms_db['container_conf']} SET idcontainer='" . $db->f('idcontainer') . "'\n WHERE idcontainer='" . $used_container[$value]['idcontainer'] . "' AND idtplconf='{$idtplconf}'"; $db->query($sql); if ($used_container[$value]['idmod'] != ${'c' . $value}) { $empty_container[] = $value; } } } } } // alte Container löschen foreach ($used_container['id'] as $value) { if ($value != '0') { if (!in_array($value, $container['id'])) { $sql = "DELETE FROM {$cms_db['container_conf']} WHERE idcontainer='" . $used_container[$value]['idcontainer'] . "'\n AND idtplconf='{$idtplconf}'"; $db->query($sql); $change = 'true'; $empty_container[] = $value; } } } // Status der 'code' Tabelle ändern if ($change) { $list = get_idcode_by_idtplconf($idtplconf); change_code_status($list, '1'); unset($list); } // Containerinhalt löschen if (is_array($empty_container)) { $list = get_idsidelang_by_idtplconf($idtplconf); if (is_array($list)) { $sql = "DELETE FROM {$cms_db['content']} WHERE idsidelang IN(" . implode(',', $list) . ")\n AND container IN(" . implode(',', $empty_container) . ")"; $db->query($sql); $sql = "DELETE FROM {$cms_db['content_external']} WHERE idsidelang IN(" . implode(',', $list) . ")\n AND container IN(" . implode(',', $empty_container) . ")"; $db->query($sql); unset($list); } } }
public function getBackendEditForm($cms_path, $lang_charset, $cfg_cms, $idcatside, $lang, $sess, $cfg_client, $con_tree, $con_side, $cms_lang, $idside) { //echo "$cms_path, $lang_charset, $cfg_cms, $idcatside, $lang, $sess, $cfg_client, $con_tree, $con_side, $cms_lang, $idside";exit; $cfg = sf_api('LIB', 'Config'); $this->cfg->setVal('env', 'current_container_editable', TRUE); $enable_code_editor = (bool) $this->cfg->cms('enable_code_editor'); // Formularelemente includieren include_once $cms_path . 'inc/fnc.type_forms.php'; $code .= '<head>' . "\n"; $code .= '<title>Sefrengo | Edit-Mode</title>' . "\n"; $code .= '<meta http-equiv="content-type" content="text/html; charset=' . $lang_charset . '" />' . "\n"; $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/css/sefrengo-theme/jquery-ui.custom.css" />' . "\n"; $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/css/styles.css" />' . "\n"; if ($enable_code_editor) { $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/editor/codemirror/lib/codemirror.css" />' . "\n"; $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/editor/codemirror/theme/default.css" />' . "\n"; $code .= '<link rel="stylesheet" type="text/css" href="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/editor/codemirror/sefrengo/sf_codemirror.css" />' . "\n"; } $code .= '<script type="text/javascript" src="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/init.sefrengo.js"></script>' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/lib/jquery.min.js"></script>' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/lib/jquery-ui.custom.min.js"></script>' . "\n"; $code .= "<script type=\"text/javascript\">/* <![CDATA[ */\n\t\t\t\t\tvar \$jqsf = jQuery;\n\t\t\t\t\t//var \$jqsf = \$.noConflict(true); // currently the jQuery plugins won\\'t work in this mode \n\t\t\t\t\t\n\t\t\t\t\tSF.Config.debug = false;\n\t\t\t\t\tSF.Config.backend_dir = '" . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . "'; // e.g. /backend/\n\t\t\t\t\tSF.Config.js_dir = SF.Config.backend_dir + 'tpl/" . $cfg_cms['skin'] . "/js/';\n\t\t\t\t\tSF.Config.css_dir = SF.Config.backend_dir + 'tpl/" . $cfg_cms['skin'] . "/css/';\n\t\t\t\t\tSF.Config.img_dir = SF.Config.backend_dir + 'tpl/" . $cfg_cms['skin'] . "/img/';\n\t\t\t\t/* ]]> */</script>"; if ($enable_code_editor) { $code .= '<script type="text/javascript" src="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/jquery.frontend.js"></script>' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/editor/codemirror/lib/codemirror-compressed.js"></script>' . "\n"; $code .= '<script type="text/javascript" src="' . $cfg_cms['path_base_http'] . $cfg_cms['path_backend_rel'] . 'tpl/' . $cfg_cms['skin'] . '/js/editor/codemirror/sefrengo/jquery.sf_codemirror.js"></script>' . "\n"; } //disable selector content sync $copycontent_disabled = true; $code .= '<script type="text/javascript"> try { window.parent.con_nav.sf_setCurrentIdcatside(' . $idcatside . ', ' . $copycontent_disabled . ', ' . $lang . ') } catch (e) { } </script>'; $code .= '</head>' . "\n"; $code .= '<body id="con-edit2">' . "\n"; $code .= '<!-- inc.con_edit.php -->' . "\n"; $code .= '<div id="main">' . "\n"; $code .= " <form name=\"editcontent\" method=\"post\" action=\"" . $sess->url($cfg_client['contentfile']) . "\">\n"; $code .= " <input type=\"hidden\" name=\"view\" value=\"edit\" />\n"; $code .= " <input type=\"hidden\" name=\"lang\" value=\"{$lang}\" />\n"; $code .= " <input type=\"hidden\" name=\"action\" value=\"save\" />\n"; $code .= " <input type=\"hidden\" name=\"entry\" value=\"" . $_REQUEST['entry'] . "\" />\n"; $code .= " <input type=\"hidden\" name=\"idcatside\" value=\"{$idcatside}\" />\n"; $code .= " <input type=\"hidden\" name=\"content\" value=\"" . $_REQUEST['content'] . "\" />\n"; $code .= " <table class=\"config\" cellspacing=\"1\">\n"; $con_type['1'] = array('type' => 'text', 'descr' => $cms_lang['type_text'], 'input' => 'type_form_text'); $con_type['2'] = array('type' => 'wysiwyg', 'descr' => $cms_lang['type_wysiwyg'], 'input' => 'type_form_wysiwyg'); $con_type['3'] = array('type' => 'textarea', 'descr' => $cms_lang['type_textarea'], 'input' => 'type_form_textarea'); $con_type['4'] = array('type' => 'image', 'descr' => $cms_lang['type_image'], 'input' => 'type_form_img'); $con_type['5'] = array('type' => 'imgdescr', 'descr' => $cms_lang['type_image_desc'], 'input' => 'type_form_imgdescr'); $con_type['6'] = array('type' => 'link', 'descr' => $cms_lang['type_link'], 'input' => 'type_form_link'); $con_type['7'] = array('type' => 'linkdescr', 'descr' => $cms_lang['type_link_name'], 'input' => 'type_form_linkdescr'); $con_type['8'] = array('type' => 'linktarget', 'descr' => $cms_lang['type_link_target'], 'input' => 'type_form_linktarget'); $con_type['9'] = array('type' => 'sourcecode', 'descr' => $cms_lang['type_sourcecode'], 'input' => 'type_form_sourcecode'); $con_type['10'] = array('type' => 'file', 'descr' => $cms_lang['type_file'], 'input' => 'type_form_file'); $con_type['11'] = array('type' => 'filedescr', 'descr' => $cms_lang['type_file_desc'], 'input' => 'type_form_filedescr'); $con_type['12'] = array('type' => 'filetarget', 'descr' => $cms_lang['type_file_target'], 'input' => 'type_form_filetarget'); $con_type['13'] = array('type' => 'wysiwyg2', 'descr' => $cms_lang['type_wysiwyg'], 'input' => 'type_form_wysiwyg2'); $con_type['14'] = array('type' => 'select', 'descr' => $cms_lang['type_select'], 'input' => 'type_form_select'); $con_type['15'] = array('type' => 'hidden', 'descr' => $cms_lang['type_hidden'], 'input' => 'type_form_hidden'); $con_type['16'] = array('type' => 'checkbox', 'descr' => $cms_lang['type_checkbox'], 'input' => 'type_form_checkbox'); $con_type['17'] = array('type' => 'radio', 'descr' => $cms_lang['type_radio'], 'input' => 'type_form_radio'); $con_type['18'] = array('type' => 'date', 'descr' => $cms_lang['type_date'], 'input' => 'type_form_date'); $con_type['20'] = array('type' => 'checkboxsave', 'descr' => $cms_lang['type_checkbox'], 'input' => 'type_form_checkboxsave'); // Content-Array erstellen $sql = "SELECT\n\t\t\t\t\tA.idcontent, container, number, idtype, typenumber, value\n\t\t\t\tFROM\n\t\t\t\t\t{$this->dbnames[content]} A\n\t\t\t\t\tLEFT JOIN {$this->dbnames[side_lang]} B USING(idsidelang)\n\t\t\t\tWHERE\n\t\t\t\t\tB.idside='{$idside}'\n\t\t\t\t\tAND B.idlang='{$lang}'"; $this->db->query($sql); while ($this->db->next_record()) { $content_array[$this->db->f('container')][$this->db->f('number')][$this->db->f('idtype')][$this->db->f('typenumber')] = array($this->db->f('idcontent'), htmlentities($this->db->f('value'), ENT_COMPAT, 'UTF-8')); } // Module finden $idtplconf = $con_side[$idcatside]['idtplconf']; if ($con_side[$idcatside]['idtplconf'] == '0') { $idtplconf = $con_tree[$con_side[$idcatside]['idcat']]['idtplconf']; } $modlist = browse_template_for_module('0', $idtplconf); // Containernamen suchen $sql = "SELECT idlay FROM {$this->dbnames[tpl_conf]} A LEFT JOIN {$this->dbnames[tpl]} B USING(idtpl) WHERE A.idtplconf='{$idtplconf}'"; $this->db->query($sql); $this->db->next_record(); $idlay = $this->db->f('idlay'); $list = browse_layout_for_containers($idlay); // Bearbeitungsarray erstellen $content = $_REQUEST['content']; //TODO $con_content = explode(';', $content); unset($content); // Einzelne Container auflisten foreach ($con_content as $value) { // Konfiguration einlesen $con_config = explode('.', $value); $con_container = $con_config['0']; $con_contnbr = explode(',', $con_config[1]); $con_content_type = explode(',', $con_config[2]); // Konfigurationsparameter mod_values extahieren und aufbereiten $sql = "SELECT\n\t\t\t\t\t\tcontainer_conf.config\n\t\t\t\t\tFROM\n\t\t\t\t\t\t" . $this->dbnames['container_conf'] . " container_conf\n\t\t\t\t\t\tLEFT JOIN " . $this->dbnames['tpl_conf'] . " tpl_conf USING(idtplconf)\n\t\t\t\t\t\tLEFT JOIN " . $this->dbnames['container'] . " container USING(idtpl)\n\t\t\t\t\tWHERE\n\t\t\t\t\t\tcontainer_conf.idtplconf = {$idtplconf}\n\t\t\t\t\t\tAND container = {$con_container}\n\t\t\t\t\t\tAND container_conf.idcontainer = container.idcontainer"; $this->db->query($sql); $this->db->next_record(); $tpl_config_vars = $this->db->f('config'); // mod_values aus Container ersetzen $container = $modlist[$con_container]['output']; $config = preg_split('/&/', $tpl_config_vars); foreach ($config as $key1 => $value1) { $tmp2 = explode('=', $value1); if ($tmp2['1'] != '') { // $mod_value Array schreiben $cms_mod['value'][$tmp2['0']] = cms_stripslashes(urldecode($tmp2['1'])); // MOD_VALUE[x] ersetzen $container = str_replace('MOD_VALUE[' . $tmp2['0'] . ']', str_replace("\\'", "'", urldecode($tmp2['1'])), $container); //' } unset($tmp2); } // nicht benutzte Variablen strippen $container = preg_replace('/MOD_VALUE\\[\\d*\\]/', '', $container); if (stristr($container, '<cms:mod constant="tagmode" />')) { $container = str_replace('<cms:mod constant="tagmode" />', '', $container); $container = cms_stripslashes($container); //todo: 2remove } elseif (stristr($container, '<dedi:mod constant="tagmode" />')) { $container = str_replace('<dedi:mod constant="tagmode" />', '', $container); $container = cms_stripslashes($container); } // Moduloutput simulieren, zum generieren der CMS-Tag Informationen $sefrengotag_config = extract_cms_tags($container, 'type'); // Rowspan für Containertabelle berechnen $rowspan = 1; foreach ($con_contnbr as $con_containernumber) { $rowspan++; foreach ($con_content_type as $value3) { $rowspan++; $rowspan++; } } $code .= " <tr>\n"; // Containername $code .= " <td class=\"head\" width=\"110\" rowspan=\"{$rowspan}\"><p>"; if (!empty($list[$con_container]['title'])) { $code .= $list[$con_container]['title']; } else { $code .= "{$con_container}. " . $cms_lang['tpl_container']; } $code .= "</p></td>\n"; unset($rowspan); foreach ($con_contnbr as $con_containernumber) { // neues Modul erstellen? if ($con_containernumber == '-1') { $print_containernumber = ''; } else { $print_containernumber = $con_containernumber . '. '; } // Modulname $modname = ($modlist[$con_container]['verbose'] != '' ? $modlist[$con_container]['verbose'] : $modlist[$con_container]['modname']) . (empty($modlist[$con_container]['version']) ? '' : ' (' . $modlist[$con_container]['version'] . ')'); $code .= " <td class=\"header\"><!-- {$print_containernumber} -->" . $modname . "</td>\n"; $code .= " </tr>\n"; foreach ($con_content_type as $value3) { $value3 = explode('-', $value3); $con_contype = $value3['0']; $con_typenumber = $value3['1']; // Name f�r Eingabefeld // Nicht anzeigen bei Dateilink, wenn hidetarget auf true gesetzt ist if ($GLOBALS['filetarget_is_hidden'] == 'true' && $con_contype == 12) { $code .= " <td></td>\n"; $code .= " </tr>\n"; $code .= " <tr>\n"; // } elseif ($con_contype == 15) { // $code .=""; } elseif ($con_contype == 20) { $code .= " <td height=\"0\">"; $code .= " </td>\n"; $code .= " </tr>\n"; $code .= " <tr>\n"; } else { if (in_array($con_contype, array(1, 2, 3, 4, 6, 9, 10, 13, 14, 15, 16, 17, 18))) { $code .= " <tr class=\"fomrstitle\">\n"; } else { $code .= " <tr>\n"; } $code .= " <td>"; if (!empty($sefrengotag_config[$con_type[$con_contype]['type']][$con_typenumber]['title'])) { $code .= $sefrengotag_config[$con_type[$con_contype]['type']][$con_typenumber]['title']; } else { $code .= $con_type[$con_contype]['descr']; } $code .= ":</td>\n"; $code .= " </tr>\n"; $code .= " <tr>\n"; } // Name des Formularfeldes $formname = 'content_' . $con_container . '_' . $con_containernumber . '_' . $con_contype . '_' . $con_typenumber; // Variable f�r den Content $content = $content_array[$con_container][$con_containernumber][$con_contype][$con_typenumber]['1']; $type_config = $sefrengotag_config[$con_type[$con_contype]['type']][$con_typenumber]; if ($con_contype == '16') { $type_config['saved'] = $content_array[$con_container][$con_containernumber]['20'][$con_typenumber]['1']; } //make element $code .= $con_type[$con_contype]['input']($formname, $content, $type_config); unset($content); unset($formname); $code .= " </tr>\n"; } } } $code .= " <tr>\n"; $code .= " <td class='content7' colspan='2' style='text-align:right'>\n"; $code .= " <input type='submit' value='" . $cms_lang['gen_save'] . "' class=\"sf_buttonAction\" />\n"; $code .= " <input type='submit' value='" . $cms_lang['gen_apply'] . "' class=\"sf_buttonAction\" onclick=\"document.editcontent.action.value='saveedit'\" />\n"; $code .= " <input type='button' value='" . $cms_lang['gen_cancel'] . "' class=\"sf_buttonActionCancel\" onclick=\"window.location='" . $sess->url("" . $cfg_client['contentfile'] . "?lang={$lang}&action=abort&view=edit&idcatside={$idcatside}") . "'\" />\n"; $code .= " </tr>\n"; $code .= " </table>\n"; $code .= " </form>\n"; $code .= '</div>' . "\n"; $code .= '</body>' . "\n"; $code .= '</html>' . "\n"; return $code; }