Exemplo n.º 1
0
Arquivo: login.php Projeto: philum/cms
function plug_login($p)
{
    req('pop');
    //return loged_j($_SESSION["USE"],$_SESSION["iq"],$t,10);
    $w = '.' . $_SERVER['HTTP_HOST'];
    $in .= divc('popbt', helps('new_user')) . br();
    $in .= balise("input", array(1 => "text", 2 => "user", 3 => "lgg", 8 => "log_finger('lgg');"), "") . ' ';
    if ($_SESSION["prmb"][11] > 5) {
        $in .= balise("label", array("for" => 'login', 6 => 15), $w) . br();
    } else {
        $in .= btn('" id="valid', nms(135)) . br() . br();
    }
    $in .= balise("input", array(1 => "text", 2 => "pass"), "") . ' ';
    $in .= balise("label", array("for" => 'pass', 6 => 15), nms(137)) . br() . br();
    $in .= balise("input", array(1 => "text", 2 => "mail"), "") . ' ';
    $in .= balise("label", array("for" => 'mail', 6 => 15), nms(136)) . br() . br();
    $in .= submitj('txtx', "login", nms(57));
    return '<form id="login" method="post" action="" onKeyPress="checkEnter(event,\'login\')">' . $in . ' </form>';
}
Exemplo n.º 2
0
Arquivo: pop.php Projeto: philum/cms
function loged($usr, $rg, $t)
{
    if ($t) {
        $ret = btn('popw', $t) . ' ';
    }
    if (!$_SESSION['USE'] or !is_numeric($rg)) {
        //nameofauthes(prmb(11))
        $nam = 'login';
        $sty = '" style="width:100px;';
        $ret .= autoclic('user" id="lgg" onkeyup="log_finger(\'lgg\');', $nam, 8, 100, 'search', 1) . ' ';
        $ret .= input2('password" size="8', 'pass', '', 'search') . ' ';
        if (rstr(59)) {
            $ret .= checkbox_j('cook', 1, '', 'permanent') . ' ';
        } else {
            $ret .= hidden('', 'cook', 1);
        }
        $ret .= submitj('poph" title="' . helps('login') . '', 'log', picto('logout'));
        return divd('valid', '<form id="log" name="log" action="javascript:login(\'log\')" onKeyPress="checkEnter(event,\'log\')">' . $ret . '</form>');
    } else {
        return lkc('popdel', htac('log') . 'out', picto('logout')) . br();
    }
}
Exemplo n.º 3
0
Arquivo: meta.php Projeto: philum/cms
function edit_tits($id, $prw)
{
    $css = 'poph';
    list($ib, $day, $src, $suj, $frm, $img, $thm, $re) = sql('ib,day,mail,suj,frm,img,thm,re', 'qda', 'r', 'id="' . $id . '"');
    $nk = 'checkEnter(event,\'formtit' . $id . '\');';
    $ret .= submitj('', 'formtit' . $id, pictxt('save', nms(57)));
    //save
    $ret .= select_j('ib' . $id, 'parent', $ib, '', picto('topo'), 1);
    $ret .= ljb($css, "jumpvalue", 'ib' . $id . '_/', picto('no')) . ' ';
    //if(auth(2))$ret.=btd('rdbt'.$id,prior_edit($re,$id)).' ';//priority
    $ret .= lj($css, 'popup_track___' . $id, picto('forum')) . '';
    $ret .= edit_dpl($id, $css) . '';
    //deploy
    if (auth(2)) {
        $ret .= btd('chday' . $id, lj('', 'chday' . $id . '_chday___' . $id, picto('time'))) . '';
    }
    $ret .= balise('textarea', array(3 => 'suj' . $id, 5 => 'console', 16 => 'height:34px; width:100%;'), $suj) . br();
    //suj
    $ret .= lj('poph', 'popup_placeim___' . $id, picto('img')) . balise("input", array('', 'text', '', 'img' . $id, $img, '', '36', 255, $nk), '') . lj('poph', 'img' . $id . '_recenseim__4_' . $id, pictit('up', 'update')) . lj('poph', 'img' . $id . '_orderim__4_' . $id, pictit('left', 'larger as thumb')) . br();
    //img
    $ret .= lj('poph', '', picto('link')) . balise("input", array('', 'text', '', 'src' . $id, $src, '', '36', 255, $nk), '') . ' ';
    //src
    $ret .= edit_frm($id, $frm);
    //$tags
    $ret .= art_options($id) . ' ';
    //art_options
    $dn = array('ib', 'suj', 'img', 'src', 'frm1');
    foreach ($_SESSION['art_options'] as $k => $v) {
        $dn[] = $v;
    }
    $r = explode(' ', prmb(26));
    if ($r) {
        foreach ($r as $k => $v) {
            $dn[] = 'lang' . $v;
        }
    }
    //lang
    $js = 'SaveTits(\'' . $id . '\',\'' . implode('|', $dn) . '\',\'' . $prw . '\')';
    $ret = '<form id="formtit' . $id . '" action="javascript:' . $js . '">' . $ret . '</form>';
    return divs('min-width:440px', $ret);
}
Exemplo n.º 4
0
Arquivo: admin.php Projeto: philum/cms
function adm_nodes($auth, $goto)
{
    connect();
    $valu = autoclic('qd', 'node', '15', '255', '') . ' ';
    $valu .= submitj('txtbox', 'create_node', 'create_node');
    $ret .= form($goto . '&node=install" id="create_node', btn('panel', $valu)) . br();
    $ret .= 'this will create a new Node of Hubs, at url: /?qd=node' . br();
    $ret .= 'write $qd="pub"; in _connectx to assign a domaine name to this node' . br() . br();
    $dblist = lstrc(rcptb($db));
    //p($dblist);
    if (is_array($dblist) && auth(7)) {
        foreach ($dblist as $k) {
            $qds[substr($k, 0, strpos($k, '_'))] += 1;
        }
        foreach ($qds as $k => $b) {
            $csb = $k == $_SESSION['qd'] ? 'active' : '';
            if ($k) {
                $ret .= lkc($csb, '/?qd=' . $k, $k) . br();
            }
        }
    }
    if ($_GET['node'] == 'install') {
        $_SESSION['first'] = 1;
        $ret .= plugin('install', $_POST['qd']);
    }
    return $ret;
}
Exemplo n.º 5
0
Arquivo: ajxf.php Projeto: philum/cms
function assistant($id, $j, $jv, $va, $chk)
{
    if ($jv) {
        if (strpos('iframeswf', $jv) !== false) {
            $dim = 1;
        }
    }
    $nk = 'checkEnter(event,\'chkenter' . $id . '\')';
    if ($jv) {
        $jx = '\'' . $jv . '\'';
    }
    $ret .= '<form id="chkenter' . $id . '" action="javascript:' . $j . '(' . $jx . ')">';
    if ($dim) {
        $p1 = 'cnp';
        $p2 = $id;
    } else {
        $p1 = $id;
        $p2 = 'cnp';
    }
    $idb = strdeb($jv, "'");
    //is_numeric($jv)?'import':
    if ($jv) {
        $help = msql_read('lang', 'connectors_all', $idb);
    }
    if ($help && !is_array($help)) {
        $bi = strpos($help, '§');
        //prop_detect
        $ret .= divc('small', nl2br($help));
    }
    $ret1 = goodarea($va, $p1, '', '', 40);
    //$nk//is_numeric($va)?$va:''
    //$ret1=balise($type,array('','text','',$p1,$va==1?url:$va,'',32,255,$nk),"").' ';
    if ($chk or $bi) {
        $ret2 = input(1, $p2, $chk, '') . ' ';
        $sep = '§';
    } else {
        $ret .= hidden('', 'cnp', '');
    }
    if ($dim) {
        $ret .= $ret2 . $sep . $ret1;
    } else {
        $ret .= $ret1 . $sep . $ret2;
    }
    $ret .= submitj('', 'chkenter' . $id, 'ok') . '</form>';
    return $ret;
}
Exemplo n.º 6
-1
Arquivo: art.php Projeto: philum/cms
function f_inp($mil, $link)
{
    $_SESSION['cur_div'] = 'content';
    $ip = hostname();
    $qda = $_SESSION['qda'];
    $USE = $_SESSION['USE'];
    $cont = $_GET['continue'];
    $read = $_SESSION['read'];
    $raed = $_SESSION['raed'];
    $frm = $_SESSION['frm'];
    if ($USE) {
        $us = $USE;
    } else {
        list($us, $ml) = sql('name,mail', 'qdi', 'r', 'host="' . $ip . '" ORDER BY id DESC LIMIT 1');
    }
    $currid = lastid('qda') + 1;
    if ($frm == "" or $frm == "Home") {
        $frm = "public";
    }
    //sections
    if ($_GET['edit'] == "=") {
        $cit = "&edit==";
    }
    $goto = '/?read=' . $read . $cit;
    if (substr($link, 0, 4) == 'http' && !$cont) {
        $link = https(utmsrc($link));
        //vacuum
        $_GET['urlsrc'] = $link;
        list($suj, $msg) = vacuum($link, '');
    }
    //elseif($read)$link=$_SESSION['rqt'][$read][9];
    if (!$cont) {
        $r['urlsrc'] = autoclic('urlsrc', "url", '10" id="urlsrc" onClick="SaveI(\'urlsrc\')" onContextMenu="SaveIt()" value="' . $link, '250', '') . btd('urledt', '');
    }
    //urlsrc
    if ($USE && !$cont) {
        $r['trkname'] = hidden('name', 'trkname', $USE) . hidden('mail', 'trkmail', '');
        $r['slcat'] = select_j('frm', 'category', $frm, '3', $frm, '');
    } elseif (!$USE) {
        $gn = '" onkeyup="log_goodname(\'trkname\');';
        $r['trkname'] = autoclic('name" id="trkname' . $gn, $us ? $us : nms(38), '8', '50', 'txtx');
        //name
        $r['trkmail'] = autoclic('mail" id="trkmail', $ml ? $ml : 'mail', '13', '50', 'txtx');
    }
    //mail
    if (!$cont) {
        $r['parent'] = select_jp('ib', 'parent', rstr(10) ? $read : '', '0', picto('topo'), '1');
    }
    //if(!$cont)$r['parent']=togbub();
    if (!$cont && auth(3)) {
        $r['publish'] = checkbox_j('pub', $_SESSION['auth'] < 4 ? 0 : rstr(11), nms(29));
    } else {
        $r['publish'] = hidden('pub', 'pub', 0);
    }
    if (!$cont) {
        //new
        $r['pstdat'] = select_j('postdat', 'date', date('y-m-d-H-i'), 0, picto('time'), 0);
        $r['pstsuj'] = balise('input', array('', '', 'suj', 'suj1', '', 'editor', 7 => 255, 16 => 'width:100%;', 23 => $suj ? $suj : nms(71)), '');
    }
    if ($cont) {
        $msg = sql('msg', 'qdm', 'v', 'id=' . $read);
        $btcntn = 'continue=ok#' . $read;
        $alrt = conn_correct($msg);
    } else {
        $goto = '/?read=' . $currid;
        $btcntn = 'insert=ok';
    }
    //&continue==#'.$currid
    $msg = str_replace("\r", "", $msg);
    //msg
    $msg = str_replace(array("<br />\n", "<br />", "<br>"), "\n", $msg);
    //save
    $ids = 'suj1|frm|urlsrc|postdat|trkname|trkmail|ib|pub';
    //|sub
    $c = 'popbt';
    $sav = ljb($c, 'SaveJb', 'socket_saveart_txtarea_id4_' . $read . '_no\',\'art' . $read . '_readart___' . $read, picto('save'));
    if ($cont && rstr(53)) {
        $sav .= ljb($c, 'SaveJb', 'txarea_saveart_txtarea_id4_' . $read . '\',\'art' . $read . '_readart___' . $read, nms(57)) . ' ';
    } elseif (!rstr(53)) {
        $sav .= submitj($c, 'sav', nms(57)) . ' ';
    } else {
        $sav .= lj($c, 'socket_newart_txtarea_' . (rstr(57) ? 7 : 9) . '_____' . $ids, nms(57)) . ' ';
    }
    //pop
    $btdt = lj('', 'popup_artwedit_txtarea__', pictit('editor', nms(107))) . ' ';
    $btdt .= ljb('' . '" title="test', 'captslct', 'preview', picto('valid')) . ' ';
    if ($cont && $read) {
        $btdt .= urledt_id($read);
    }
    //defcon//urledt($link)
    $ret = '<form method="POST" id="sav" action="' . $goto . '&' . $btcntn . '">' . "\n";
    //form
    $ret .= btd('bts' . $read, $sav) . ' ' . $btdt;
    $ret .= implode(' ', $r);
    $ret .= sesmk('conn_edit', '', '');
    //1
    $ret .= $alrt;
    $ret .= divd('txarea', txarea1($msg));
    //if(auth(4))$ret.=checkbox("randim","ok","rename_img",0);
    $ret .= ' </form>' . "\n";
    return $ret;
}
Exemplo n.º 7
-1
function plug_editor($reset = '')
{
    secure_inputs();
    if ($_SESSION["dev"] == "dev" or $_SESSION["dev"] == "lab") {
        $g = "b";
    }
    req('pop,spe,art,tri');
    Head::add('csscode', '.tabc{border:1px dotted grey;padding:10px;min-height:25px;width:550px;}');
    Head::add('jscode', '
function SaveIcpb(){//convert
	var opt=document.getElementById("txtareb").innerHTML;
	document.getElementById("txt").value=opt;
	SaveJ("txtarea_convhtml_txtareb_4");
	toggle_tab(\'tab-1\',2);}
function editab(p){
	var act=document.getElementById("edt").className;
	if(act=="txtx" || p==1){var arr=[true,"on","txtred",""];}
	else{var arr=[false,"off","txtx","none"];}
	document.getElementById("txtareb").contentEditable=arr[0];
	document.getElementById("txtareb").designMode="arr[1]"; void 0;
	document.getElementById("txtareb").focus;
	document.getElementById("edt").className=arr[2];
	document.getElementById("edtc").style.display=arr[3];}
');
    //Head::add('rel',array('shortcut icon',uicon('copy_16','edit2','/')));
    $out["head"] .= div(atd('popup') . ats('position:fixed;'), '');
    $out["head"] .= hidden('', 'socket', '');
    if ($_GET['switch_defcon']) {
        $_SESSION['rstr'][18] = $_SESSION['rstr'][18] == 0 ? 1 : 0;
    }
    $basedefs = $_SESSION['rstr'][18] == 0 ? 'public' : $_SESSION['qb'];
    if ($reset == 'reset_cache') {
        $_SESSION['vacuum'] = '';
    }
    ####
    if ($_GET["urlsrc"]) {
        $urlsrc = $_GET["urlsrc"];
        $_GET["urlsrc"] = $urlsrc = strdeb($urlsrc, '?utm_source');
        $urlsrc = str_replace("\$", "?", $urlsrc);
        foreach ($_GET as $k => $v) {
            if ($k == "rssurl") {
                $urlsrc = $v;
            } elseif ($k != 'urlsrc') {
                $urlsrc .= '&' . $k . '=' . $v;
            }
        }
    }
    if ($_POST["urlsrc"]) {
        $urlsrc = $_POST["urlsrc"];
        // && $_POST["txt"]==""
        $_POST["urlsrc"] = $urlsrc = strdeb($urlsrc, '?utm_source');
    }
    if ($_POST["suj"]) {
        $title = $_POST["suj"];
    }
    if (strpos($urlsrc, "http") === false && $urlsrc) {
        $urlsrc = 'http://' . $urlsrc;
    }
    if ($urlsrc && $_POST["txt"] == "") {
        list($title, $reb, $ret, $defid, $defs) = vacuum($urlsrc, "");
    }
    //echo txarea('',$ret,20,4);
    ####
    //see h-number in html(mnu)
    $tabnam = 'tbmdtab-1';
    if ($_POST["urlsrc"] or $_POST["txt"] or $_POST["txb"]) {
        $_SESSION[$tabnam] = '2';
        $npb = $_SESSION['npnb'];
    } elseif ($_POST["urlsrc"] && !$_POST["txt"]) {
        $_SESSION[$tabnam] = '1';
    }
    //else $_SESSION[$tabnam]='0';//current_tab
    if ($_POST["txt"]) {
        $ret = stripslashes($_POST['txt']);
    }
    //html
    if ($_POST["txb"]) {
        $reb = stripslashes($_POST['txb']);
    }
    //conn
    if ($_POST["title"]) {
        $title = stripslashes($_POST['title']);
    }
    if ($_POST["convent"]) {
        $ret = html_entity_decode($ret);
    }
    if ($_POST["convutf"]) {
        $ret = utf8_decode($ret);
    }
    if ($_POST["convurl"]) {
        $ret = urldecode($ret);
    }
    if ($_POST["urlencode"]) {
        $ret = urlencode($ret);
    }
    if ($_POST["table2array"]) {
        $reb = plugin_func('table2array', 'table2array_build', $reb);
    }
    if ($ret && !$reb) {
        //if(!strpos($ret,'<br />') && strpos($ret,"\r"))$ret=nl2br($ret);
        $reb = converthtml($ret);
        //htmlentities //htmlspecialchars
        $reb = html_entity_decode_b($reb);
        $reb = html_entity_decode($reb);
        $reb = convertmail($reb);
        $reb = embed_links($reb);
    } elseif (!$ret) {
        $ret = format_txt(stripslashes($reb), 0, "");
    }
    //if(!$ret)
    $ree = clean_br($ret);
    #edit
    //transformers
    if ($_POST['repla']) {
        if ($_POST['rec_prg']) {
            $reb = ereg_replace(stripslashes($_POST['repla']), stripslashes($_POST['replb']), $reb);
        } else {
            $reb = str_replace(stripslashes($_POST['repla']), stripslashes($_POST['replb']), $reb);
        }
    }
    if ($_POST['del_tab']) {
        $reb = del_tables($reb);
    }
    //if($_POST['conn_to_del']){$reb=correct_txt($reb,$_POST['conn_to_del'],'correct');
    //	$reb=str_replace(array("¬","|"),"",$reb); $reb=clean_br($reb);}
    if ($_POST['del_n'] == "ok") {
        $reb = del_n($reb);
    }
    if ($_POST['clean_mail']) {
        $reb = convertmail($reb);
    }
    if ($_POST["clean_punct"]) {
        $reb = clean_punct($reb);
    }
    if ($_POST["add_punct"] == "ok") {
        $reb = add_lines($reb);
    }
    if ($_POST['clean_br'] or $urlsrc) {
        $reb = clean_br($reb);
    }
    /*----------------------*/
    //import
    if ($_SESSION["dev"]) {
        $dv = ' ' . btn('txtsmall', $_SESSION["dev"]);
    }
    $out['head'] .= lkc("txtx", "/plug/editor", picto('editxt', 16) . $dv) . ' ';
    //'&#8362;'
    //defcons
    if (!$defid) {
        $defid = str_replace(array('http://', 'www.'), '', $urlsrc);
        $defid = substr($defid, 0, strpos($defid, '/'));
    }
    $defcon .= msqlink('users', $basedefs . '_defcons');
    if ($_SESSION['rstr'][18] == 1 && $_SESSION['auth'] > 4) {
        $defcon .= lkc("txtblc", '?switch_defcon==', "switch") . ' ';
        $defcon .= lkt("txtblc", '/msql/users/' . $basedefs . '_defcons&append=users/public_defcons', "herit_from_public") . ' ';
        $defcon .= lkt("txtblc", '/msql/users/public_defcons&append=users/' . $_SESSION["qb"] . '_defcons', "inform_public") . ' ';
    } else {
        $defcon .= btn('txtsmall', 'public_defcons') . ' ';
    }
    if ($defid) {
        $defcon .= lj("txtred", 'popup_editmsql___users/' . $basedefs . '*defcons_' . $defid, "edit");
    }
    $otab['html'] .= '<form id="form1" name="coded" method="post" action="/plug/editor">';
    $otab['html'] .= ljb('txtbox', 'document.coded.txt.select()', '', '::');
    $otab['html'] .= submitj('txtbox', 'codeb', 'convert') . ' ';
    $otab['html'] .= input2("text", "urlsrc", $urlsrc, '" size="36') . ' ';
    if ($urlsrc) {
        $otab['html'] .= lkt('txtx', $urlsrc, 'go') . ' ';
    }
    $otab['html'] .= br();
    $otab['html'] .= '<textarea name="txt" id="txt" class="console" rows="21" cols="61">' . $ret . '</textarea>' . br();
    //htmlentities
    $otab['html'] .= $defcon . ' ';
    $otab['html'] .= checkbox("objects", "ok", "objects", 0) . ' ';
    //$otab['html'].=checkbox("jump","ok","not_convert",0).br();
    $otab['html'] .= checkbox("nobr", "ok", "br", 0);
    $otab['html'] .= checkbox("convent", "ok", "entities", 0) . ' ';
    $otab['html'] .= checkbox("convutf", "ok", "utf8", 0) . ' ';
    $otab['html'] .= checkbox("convurl", "ok", "url", 0) . ' ';
    $otab['html'] .= checkbox("see", "ok", "show_work", 0) . br();
    $otab['html'] .= lkt("txtblc", "/plug/converts", "conversions") . ' ';
    $otab['html'] .= lkt("txtblc", "/plug/pad", "notepad") . ' ';
    $otab['html'] .= lkt("txtblc", "/plug/ifram", "iframe") . ' ';
    $otab['html'] .= lkc('txtblc', '/plug/editor/reset_cache', 'reset_cache') . ' ';
    $otab['html'] .= '</form>';
    //notepad
    if ($_SESSION['USE']) {
        $otab['connectors'] .= divs('position:absolute; right:0; top:0;', plugin('txt', $npb, 1));
    }
    $otab['connectors'] .= btn('txtit', $title);
    $otab['connectors'] .= '<form name="converted" method="post" action="">';
    $otab['connectors'] .= ljb('txtbox', 'document.converted.txb.select()', '', '::');
    $otab['connectors'] .= submitj('txtbox', 'converted', 'modif') . ' ';
    $otab["connectors"] .= div('', conn_correct($reb));
    //local_reparation
    $otab['connectors'] .= div(ats('width:630px;'), conn_edit(""));
    $otab['connectors'] .= input(0, 'title', $title, '');
    $otab['connectors'] .= '<textarea name="txb" id="txtarea" class="tab" rows="16" cols="68" wrap="VIRTUAL" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" ondblclick="storeCaret(this);" onChange="clip.setText(this.value)">' . $reb . '</textarea><br>';
    $otab['connectors'] .= '<div class="txtsmall2">';
    $otab['connectors'] .= $defcon . ' ';
    $otab['connectors'] .= checkbox("clean_mail", "ok", "clean_mail", 0) . ' ';
    $otab['connectors'] .= checkbox("clean_br", "ok", "clean_br", 0) . ' ';
    $otab['connectors'] .= checkbox("del_n", "ok", "del_nl", 0) . ' ';
    $otab['connectors'] .= checkbox("add_punct", "ok", "add_nl", 0) . ' ';
    $otab['connectors'] .= checkbox("clean_punct", "ok", "typo_rules", 0) . ' ';
    $otab['connectors'] .= checkbox("del_tab", "ok", "del_tables", 0) . ' ';
    $otab['connectors'] .= checkbox("table2array", "ok", "table2array", 0) . ' ';
    //$otab['connectors'].='<label>delete:</label>'.balise("select",array(2=>"conn_to_del",5=>"txtblc"),batch_defil_kv(connectors_reference_lite(),"","vv")).' ';
    $otab['connectors'] .= '</div>';
    $otab['connectors'] .= divc('txtsmall2', 'replace by:') . '' . txarea("repla", $_POST['repla'], 15, 1) . ' ' . txarea("replb", $_POST['replb'], 15, 1) . ' ' . checkbox("rec_prg", "ok", "preg", 0);
    $otab['connectors'] .= '</form>';
    $otab['connectors'] .= lkt("txtblc", "/plug/converts", "converts") . ' ';
    $otab['connectors'] .= lkt("txtblc", "/plug/pad", "notepad") . ' ';
    $otab['connectors'] .= lkt("txtblc", "/plug/buildtable", "buildtable") . ' ';
    //wysiwyg
    //if($title)$otab["render"].=btn("txtit",$title).br();
    $otab['render'] .= btd('bts', ljb('txtbox', 'SaveIcpb()', '', 'convert')) . ' ';
    $otab['render'] .= ljb('txtx" id="edt', 'editab(0)', '', 'editable') . ' ';
    $otab['render'] .= txareacb($ree, 'tabc panel justy');
    $otab['render'] .= btd('bts', ljb('txtbox', 'SaveIcpb()', '', 'convert')) . ' ';
    $otab['render'] .= ljb('txtx" id="edt', 'editab(0)', '', 'editable') . ' ';
    $otab['render'] .= divd('popup', '') . "\n";
    $otab['render'] .= divd('popw', '') . "\n";
    $otab['render'] .= hidden('', 'socket', '');
    $out["end"] .= '</body>' . "\n" . '</html>';
    return implode("", $out) . make_tabs($otab);
}