Example #1
0
function processAdminRequest($url)
{
    global $modulesMgr, $structureMgr, $authenticationMgr, $permissionsMgr, $cacheMgr, $templatesMgr;
    $userID = $authenticationMgr->getUserID();
    $userGroupID = $authenticationMgr->getUserGroup();
    // Если пользователь - гость, то отправить логиниться
    if ($userID == 1 || $userGroupID != 5) {
        header('Status: 302 Moved');
        header('Location: /login');
        exit;
    }
    SetCfg('InAdmin', true);
    //$pageID = isset($_GET['pageID']) ? $_GET['pageID'] : -1;
    if ($url == '/') {
        $pageID = -1;
    } else {
        //direct link is provided to edit some content
        $pageID = $structureMgr->getPageIDByPath($url);
        //$md = $structureMgr->getMetaData($pageID);
        if (!$pageID) {
            trigger_error('Admin 404 will be provided later. But now it is just a fatal error.', PM_FATAL);
        }
        if (!$permissionsMgr->canUpdate($pageID, $userID)) {
            trigger_error('Beautiful 403 will be provided later. But now it is just a fatal error.', PM_FATAL);
        }
    }
    include '_kernel.edit.php';
    $tpl = $templatesMgr->getTemplate(-1, GetCfg('TemplatesPath') . '/admin/page.html');
    $tpl = str_replace('%site_name%', GetCfg('SiteName'), $tpl);
    $res = '';
    $cmd = _var('cmd');
    if ($pageID == -1) {
        $pageID = _var('pageID');
        if (!$pageID) {
            $pageID = $structureMgr->getRootPageID();
        }
        //print 'pageID='.$pageID;
        if ($permissionsMgr->canUpdate($pageID, $userID) == false) {
            trigger_error('Beautiful 403 will be provided later. But now it is just a fatal error.', PM_FATAL);
        }
        if (!$cmd) {
            $res .= navi($pageID, false);
            $res .= structure($pageID);
            // this very evil function. Very slowed.
        } else {
            $res .= processAdminCommand($cmd, $pageID);
        }
    } else {
        if ($permissionsMgr->canUpdate($pageID, $userID) == false) {
            trigger_error('Beautiful 403 will be provided later. But now it is just a fatal error.', PM_FATAL);
        }
        $res .= processAdminCommand('editPage', $pageID);
    }
    $admMenu = admMenu($cmd);
    $tpl = str_replace('%content%', $res, $tpl);
    $tpl = str_replace('%adm_menu%', $admMenu, $tpl);
    print $tpl;
}
Example #2
0
<?php

// 建立 .cer/.pfx 证书文件
function _var($mixed, $is_dump = false)
{
    if ($is_dump) {
        var_dump($mixed);
    }
}
$dn = array("countryName" => "CN", "stateOrProvinceName" => "Beijing", "localityName" => "Beijing", "organizationName" => "Eyou", "organizationalUnitName" => "Develop team", "commonName" => "Li Bo", "emailAddress" => "*****@*****.**");
$config = array('config' => '/etc/pki/tls/openssl.cnf', 'encrypt_key' => 1, 'private_key_type' => OPENSSL_KEYTYPE_RSA, "digest_alg" => "sha1", 'x509_extensions' => 'v3_ca', 'private_key_bits' => 1024, "encrypt_key_cipher" => OPENSSL_CIPHER_AES_256_CBC);
$privkey = openssl_pkey_new($config);
var_dump($privkey);
$csr = openssl_csr_new($dn, $privkey);
var_dump($csr);
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
var_dump($sscert);
exit;
$path = __DIR__ . '/keys';
$path_pub = "{$path}/cert-x509.crt";
$path_priv = "{$path}/cert-pkcs12.pfx";
openssl_csr_export($csr, $csrout) and _var($csrout);
openssl_x509_export_to_file($sscert, $path_pub);
// export to pfx style
// PKCS #12(公钥加密标准 #12)是业界格式,适用于证书及相关私钥的传输、备份和还原。
$pub_key = file_get_contents($path_pub);
openssl_pkcs12_export_to_file($pub_key, $path_priv, $privkey, 'mypassword', $config);
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
echo "ok, create certificate/private-key";
Example #3
0
function editPage($pageID)
{
    global $structureMgr, $modulesMgr, $templatesMgr;
    $specificLines = "";
    if ($pageID != -1) {
        $md = $structureMgr->getMetaData($pageID);
        $md["ShortTitle"] = str_replace("\"", "&quot;", $md["ShortTitle"]);
        $pageTemplate = "";
        $templates = $templatesMgr->getTemplates();
        $pageTemplate .= "<select name=\"tplID\">";
        foreach ($templates as $tID => $tname) {
            $pageTemplate .= "<option value=\"{$tID}\"";
            if ($tID == $md["tplID"]) {
                $pageTemplate .= " selected";
            } else {
                if ($tID == 5) {
                    $pageTemplate .= " selected";
                }
            }
            $pageTemplate .= ">{$tname}</option>\n";
        }
        $pageTemplate .= "</select>\n";
        $submit = "Обновить";
        $dt = $modulesMgr->execute($md["ModuleName"], "getItemType", array($md["DataType"]), false);
        $idesc = $modulesMgr->execute($md["ModuleName"], "getItemDesc", array($md["DataType"]), false);
        $specDesc = $modulesMgr->execute($md["ModuleName"], "getSpecificBlockDesc", array($md["DataType"]), false);
        $eVars = $modulesMgr->execute($md["ModuleName"], "getSpecificDataForEditing", array($md["sID"]), false);
        if ($md["isHidden"]) {
            $isHidden = "checked";
        } else {
            $isHidden = "";
        }
        $content = $structureMgr->getData($pageID);
        $header = "Обновление " . $dt[2];
        $title = "Общие сведения";
        $mtags = "Мета-теги";
        $hiddenForAdding = "";
    } else {
        $md["ShortTitle"] = "";
        $md["Title"] = "";
        $md["URLName"] = "";
        $md["MetaDesc"] = "";
        $md["MetaKeywords"] = "";
        $isHidden = "";
        $content = "";
        $pageTemplate = "";
        $templates = $templatesMgr->getTemplates();
        $tplID = $templatesMgr->getDefaultTplID();
        $pageTemplate .= "<select name=\"tplID\">";
        foreach ($templates as $tID => $tname) {
            $pageTemplate .= "<option value=\"{$tID}\"";
            if ($tID == $tplID) {
                $pageTemplate .= " selected";
            }
            $pageTemplate .= ">{$tname}</option>\n";
        }
        $pageTemplate .= "</select>\n";
        $submit = "Добавить";
        $dt = $modulesMgr->execute(_var("ModuleName"), "getItemType", array(_var("DataType")), false);
        $idesc = $modulesMgr->execute(_var("ModuleName"), "getItemDesc", array(_var("DataType")), false);
        $specDesc = $modulesMgr->execute(_var("ModuleName"), "getSpecificBlockDesc", array(_var("DataType")), false);
        $eVars = $modulesMgr->execute(_var("ModuleName"), "getSpecificDataForEditing", array(-1, _var("DataType"), _var("pageID")), false);
        $header = "Добавление " . $dt[2];
        $title = "Общие сведения";
        $mtags = "Мета-теги";
        $md["pms_sID"] = _var("pageID");
        $hiddenForAdding = "<input type=hidden name=\"ModuleName\" value=\"" . _var("ModuleName") . "\">\n" . "<input type=hidden name=\"DataType\" value=\"" . _var("DataType") . "\">\n";
    }
    //    $fromPost = array("ShortTitle", "Title", "URLName", "MetaDesc", "MetaKeywords", "isHidden", "Content");
    $specificLines = renderProperties(&$eVars);
    $active_color = "#DEEBFA";
    $back_color = "#EEFBFF";
    if ($specificLines) {
        $spec_link = "\n        \t\t\t<td class=\"tl1\"><a href=# onclick=\"show('specific'); return false;\">{$specDesc}</a></td>\n        ";
        $spec_active = "\n                   <td class=\"tl1a\"><strong>{$specDesc}</strong></td>\n        ";
        $specJS = ", \"specific\"";
    } else {
        $spec_link = "";
        $spec_active = "";
        $specJS = "";
    }
    if ($idesc) {
        /*         
                 $editorDIV = <<<DIV
                	    <div class="tmenulevel_1">
                	    <table cellspacing="0" cellpadding="3"><tr>
                			<td class="tl1"><a href=# onclick="show('maindata'); return false;">$title</a></td>
                			<td class="tl1a"><strong>$idesc</strong></td>
                			<td class="tl1"><a href=# onclick="show('metadata'); return false;">$mtags</a></td>
                			$spec_link
                			</tr></table>
                		</div>
                		<div class="tmenulevel_2">
                            <textarea name="Content" id="Content" cols=80 rows=30>111</textarea>
                		</div>
        DIV;
        */
        $editorDIV = <<<DIV
        \t    <div class="tmenulevel_1">
        \t    <table cellspacing="0" cellpadding="3"><tr>
        \t\t\t<td class="tl1"><a href=# onclick="show('maindata'); return false;">{$title}</a></td>
        \t\t\t<td class="tl1a"><strong>{$idesc}</strong></td>
        \t\t\t<td class="tl1"><a href=# onclick="show('metadata'); return false;">{$mtags}</a></td>
        \t\t\t{$spec_link}
        \t\t\t</tr></table>
        \t\t</div>
        \t\t<div class="tmenulevel_2">
                    <textarea name="Content" id="Content" cols=80 rows=30  class="widgEditor nothing">{$content}</textarea>
        \t\t</div>
DIV;
        $content = str_replace("\"", "\\\"", $content);
        $content = str_replace("\r\n", "\" + \r\n\"\\n", $content);
        //         $editorLink = "initialSetContent();";
        $editorLink = "";
        /*
                 $editorJS = <<<JS
            <script language="javascript" type="text/javascript" src="/js/tiny_mce/tiny_mce_src.js"></script>
            <script language="javascript" type="text/javascript">
            	tinyMCE.init({
            		theme : "advanced",
            		mode : "exact",
            		cleanup: false,
            		language : "ru",
            		elements : "Content",
            		content_css : "/css/carumba.css",
            		width: "640",
            		height: "300",
            		plugins : "table",
            		relative_urls : false,
            		visual :  false,
            		theme_advanced_buttons3_add_before : "tablecontrols,separator",
            		theme_advanced_toolbar_location : "top",
            		theme_advanced_toolbar_align : "left",
            		theme_advanced_statusbar_location : "bottom",
            		debug : false
            	});
        
            	var contentWasSet = false;
        
            	function initialSetContent()
            	{
            	    if (!contentWasSet)
            	    {
                        tinyMCE.setContent("$content");
                        contentWasSet = true;
                    }
            	}
        
            </script>	
        JS;
        */
        $editorJS = <<<JS
<style type="text/css" media="all">
\t@import "/js/widg/css/info.css";
\t@import "/js/widg/css/main.css";
\t@import "/js/widg/css/widgEditor.css";
</style>

<script type="text/javascript" src="/js/widg/widgEditor.js"></script>
<script type="text/javascript">

    \tvar contentWasSet = false;

    \tfunction initialSetContent()
    \t{
    \t    if (!contentWasSet)
    \t    {
                tinyMCE.setContent("{$content}");
                contentWasSet = true;
            }
    \t}
</script>
JS;
    } else {
        $editorJS = "";
        $editorDIV = "";
        $editorLink = "";
    }
    $res = <<<EF
    <style>
        .tmenulevel_1 
        { margin: 0px; border: 0; padding: 5px; padding-bottom: 0px; position: relative; }
        .tmenulevel_2
        { margin-top: 0px; margin-left: 0px; border: 0; padding: 10px; padding-top: 8px; background-color: {$active_color}; position: relative; }
        .tl1a { background-color: {$active_color}; font-size: 12px; font-weight: bold;}
        .tl1  { font-size: 12px; }
    </style>
    
    <script>
        function hideAll()
        {
            ids = new Array("maindata", "dcontent", "metadata"{$specJS});
            for (i=0; i < ids.length; i++)
            {
                d = document.getElementById(ids[i]);
                d.style.display = "none";
            }
        }

        function show(a)
        {
            hideAll();
            d = document.getElementById(a);
            d.style.display = "block";
        }

    </script>

    <div style="border: double #A0A0A0; padding: 5px; margin: 0px; background-color: #ffFFA0">
        <form action="/admin/" method="POST">
            <input type=hidden name=cmd value=updatePage>
            <input type=hidden name=pageID value="{$pageID}">
            <input type=hidden name=pms_sID value="{$md['pms_sID']}">
            {$hiddenForAdding}
            <h4>{$header}</h4>
            
            <div id="maindata">
        \t    <div class="tmenulevel_1">
        \t    <table cellspacing="0" cellpadding="4"><tr>
        \t\t\t<td class="tl1a"><strong>{$title}</strong></td>
        \t\t\t<td class="tl1"><a href=# onclick="show('dcontent');{$editorLink} return false;">{$idesc}</a></td>
        \t\t\t<td class="tl1"><a href=# onclick="show('metadata'); return false;">{$mtags}</a></td>
        \t\t\t{$spec_link}
        \t\t\t</tr></table>
        \t\t</div>
        \t\t<div class="tmenulevel_2">
                    <table>
                        <tr>
                            <td>Заголовок</td><td><input type=text name="ShortTitle" value="{$md['ShortTitle']}" size=80></td></tr>
                        <tr>
                            <td>URL</td><td><input type=text name="URLName" value="{$md['URLName']}" size=80></td></tr>
                        <tr>
                            <td>&lt;Title&gt;</td><td><input type=text name="Title" value="{$md['Title']}" size=80></td></tr>
                        <tr>
                            <td>Шаблон страницы</td><td>{$pageTemplate}</td></tr>
                        <tr>
                            <td>Скрывать</td><td><input type=checkbox name="isHidden" value="1" {$isHidden}></td></tr>
                    </table>
        \t\t</div>
\t        </div>

            <div id="dcontent" style="display:none;">
                {$editorDIV}
\t        </div>
    {$editorJS}

            <div id="metadata" style="display:none;">
        \t    <div class="tmenulevel_1">
        \t    <table cellspacing="0" cellpadding="3"><tr>
        \t\t\t<td class="tl1"><a href=# onclick="show('maindata'); return false;">{$title}</a></td>
        \t\t\t<td class="tl1"><a href=# onclick="show('dcontent');{$editorLink} return false;">{$idesc}</a></td>
        \t\t\t<td class="tl1a"><strong>{$mtags}</strong></td>
        \t\t\t{$spec_link}
        \t\t\t</tr></table>
        \t\t</div>
        \t\t<div class="tmenulevel_2">
                    <table>
                        <tr>
                            <td>Ключевые слова</td><td><input type=text name="MetaKeywords" value="{$md['MetaKeywords']}" size=80></td></tr>
                        <tr>
                            <td valign=top>Описание</td><td><textarea name="MetaDesc" cols=60 rows=8>{$md['MetaDesc']}</textarea></td></tr>
                    </table>
        \t\t</div>
\t        </div>
            
            <div id="specific" style="display:none;">
        \t    <div class="tmenulevel_1">
        \t    <table cellspacing="0" cellpadding="3"><tr>
        \t\t\t<td class="tl1"><a href=# onclick="show('maindata'); return false;">{$title}</a></td>
        \t\t\t<td class="tl1"><a href=# onclick="show('dcontent');{$editorLink} return false;">{$idesc}</a></td>
        \t\t\t<td class="tl1"><a href=# onclick="show('metadata'); return false;">{$mtags}</a></td>
        \t\t\t{$spec_active}
        \t\t\t</tr></table>
        \t\t</div>
        \t\t<div class="tmenulevel_2">
                    {$specificLines}
        \t\t</div>
\t        </div>

            <br>
            <input type=submit value="{$submit}">
        </form>
    </div>
EF;
    return $res;
}
_step("Function call");
$func();
_mem();
$funcAlias = $func;
_step("Function call again via alias");
$funcAlias();
_mem();
_step("Function remove");
unset($func);
_mem();
_step("Function alias remove");
unset($funcAlias);
_mem();
$loop = 5;
for ($i = 1; $i <= $loop; $i++) {
    _step("Loop [{$i}/{$loop}] function create");
    $func = create_function('', <<<'FUNC'
    static $static = 0;
    $static = _data(1);
    $dynamic = _data(1);
    echo " --- in function ----" . PHP_EOL;
    _mem();
    echo " -------------------------" . PHP_EOL;
FUNC
);
    _mem();
    _step("Loop [{$i}/{$loop}] function call [loop]");
    $func();
    _mem();
    _var('func');
}
Example #5
0
 function getItemsListByPageID($pageID, &$branch)
 {
     global $structureMgr, $templatesMgr;
     $prodIDs = _varByPattern('/p-\\d+/');
     $propVals = _varByPattern('/propVal-\\d+/');
     $res = "";
     $pager = "";
     $topContent = $structureMgr->getData($pageID);
     $metaData = $structureMgr->getMetaData($pageID);
     $from = _get("from");
     $to = _get("to");
     $propID = _get("propID");
     $order = _get("order");
     $filterTpl = $templatesMgr->getTemplate(-1, GetCfg("TemplatesPath") . "/" . "Catalogue/filterMenu.html");
     $br = $structureMgr->getChildrenDataTypesForPageID($this->getParentPageID($pageID), 1);
     //echo $pageID;
     $catFilter = "";
     $propsArray = array();
     $bsIDArray = array();
     for ($i = 0; $i < count($branch); $i++) {
         $bsID = $branch[$i]["sID"];
         $URL = $structureMgr->getPathByPageID($branch[$i]["sID"], false);
         $chCount = $structureMgr->getChildrenCount($branch[$i]["sID"]);
         if ($chCount > 0) {
             $catFilter .= "<img src=\"/images/arr_gray2.gif\" width=\"7\" height=\"9\"  alt=\"\" /><a  href=\"?c-{$i}={$bsID}\" >" . $branch[$i]["Title"] . " ({$chCount})</a><br/>\n";
         }
         $bsIDArray[] = $bsID;
     }
     $subCats = $this->getSubCategoris($this->getParentPageID($pageID), $bsIDArray, $this->FILTER_CONSTANT_ARRAY[$pageID]['otherParamId']);
     foreach ($subCats as $key => $value) {
         $propsArray[$key] = $value;
     }
     $pageIDList = array();
     for ($i = 0; $i < count($br); $i++) {
         $pageIDList[] = $br[$i]["sID"];
     }
     $prodList = array();
     if (count($pageIDList) > 0) {
         $prodList = $structureMgr->getProducersByPageIDList($pageIDList);
     }
     $prods = "";
     foreach ($prodList as $prodItem) {
         $prods .= "<option value=\"" . $prodItem[0] . "\" " . (in_array($prodItem[0], $prodIDs) ? "selected" : "") . ">" . $prodItem[1] . "</option>";
     }
     $filterTpl = str_replace("%prods%", $prods, $filterTpl);
     $propsValues = "";
     foreach ($propsArray as $propsArrayItem) {
         $propsValues .= "<option value=\"" . $propsArrayItem['propListID'] . "\" " . ($propsArrayItem['propListID'] == $propID ? "selected" : "") . ">" . $propsArrayItem['propValue'] . "</option>";
     }
     $filterTpl = str_replace("%propsValues%", $propsValues, $filterTpl);
     $filterTpl = str_replace("%filter_result%", $this->FILTER_CONSTANT_ARRAY[$pageID]['result'], $filterTpl);
     $filterTpl = str_replace("%from%", $from, $filterTpl);
     $filterTpl = str_replace("%to%", $to, $filterTpl);
     //$filterTpl = str_replace("%ShortTitle%", $ShortTitle, $filterTpl);
     //$filterTpl = str_replace("%actionUrl%", $_SERVER['QUERY_STRING'], $filterTpl);
     $props = array();
     $filterArray = array();
     $podborArray = array();
     $hidenInputArray = array();
     foreach ($propVals as $key => $value) {
         if ($value) {
             $param = explode("_", $value);
             $props['props'][] = "pp.propValue = '" . $param[1] . "' && s.pms_sID = '" . $param[0] . "'";
             //$props['p.accCatID'][] = $param[0];
             $podborArray['prop'][] = $param[1];
             $filterArray[] = $key . "=" . $value;
             $hidenInputArray[] = '<input type="hidden" name="' . $key . '" value="' . $value . '">' . "\n";
         }
     }
     foreach ($prodIDs as $key => $value) {
         if ($value) {
             $props['prods'][] = "ap.accPlantID = '" . $value . "'";
             $filterArray[] = $key . "=" . $value;
             $query = "SELECT * FROM pm_as_producer WHERE accPlantID='" . $value . "'";
             $result = mysql_query($query);
             $row = mysql_fetch_assoc($result);
             $podborArray['prod'][] = $row['accPlantName'];
             $hidenInputArray[] = '<input type="hidden" name="' . $key . '" value="' . $value . '">';
         }
     }
     if (count($podborArray)) {
         $catFilter = "<p><img src=\"/images/arr_gray2.gif\" width=\"7\" height=\"9\"  alt=\"\" />" . implode(', ', $podborArray['prod']) . " " . (count($podborArray['prod']) && count($podborArray['prop']) ? ":" : "") . " " . implode(', ', $podborArray['prop']) . "</p>" . "\n<p>" . $catFilter . "</p>";
     }
     if (count($hidenInputArray)) {
         $catFilter .= implode("\n", $hidenInputArray);
     }
     $filterTpl = str_replace("%catFilter%", $catFilter, $filterTpl);
     $filter = $_SERVER['QUERY_STR'];
     $filter .= "&amp;" . implode("&amp;", $filterArray);
     $pNum = $structureMgr->getPageNumberByPageID($pageID);
     $URL = $structureMgr->getPathByPageID($pageID, false);
     $carIDFilter = _var("carID");
     if ("" == $carIDFilter) {
         $carIDFilter = "0";
     }
     $producerIDFilter = _var("producerID");
     $prodIDFilter = _varByPattern('/p-\\d+/');
     $perPage = GetCfg("Catalogue.perPage");
     $startFrom = ($pNum - 1) * $perPage;
     $endAt = $startFrom + $perPage - 1;
     $cnt = count($branch);
     if ($endAt >= $cnt) {
         $endAt = $cnt - 1;
     }
     $pagesCount = ceil($cnt / $perPage);
     if ($pagesCount < $pNum) {
         trigger_error("Invalid pageNumber [{$pNum} of {$pagesCount}] - possibly hacking or serious change in DB", PM_ERROR);
     } else {
         if ($pagesCount > 1) {
             $tpl = $templatesMgr->getTemplate(-1, GetCfg("TemplatesPath") . "/" . "pager.html");
             $purePager = "";
             $filter = "";
             if ($carIDFilter != "" && count($prodIDFilter) == 0) {
                 $filter .= "carID={$carIDFilter}";
             }
             if ($producerIDFilter != "") {
                 if ($filter) {
                     $filter .= "&amp;";
                 }
                 $filter .= "producerID={$producerIDFilter}";
             } else {
                 if (count($prodIDFilter) > 0) {
                     foreach ($prodIDFilter as $prod => $_p) {
                         if ($filter) {
                             $filter .= "&amp;";
                         }
                         $filter .= "{$prod}={$_p}";
                     }
                 }
             }
             $cats = _varByPattern('/c' . $carIDFilter . '-\\d+/');
             if (count($cats) > 0) {
                 foreach ($cats as $cat => $v) {
                     if ($filter) {
                         $filter .= "&amp;";
                     }
                     $filter .= "{$cat}={$v}";
                 }
             }
             for ($i = 1; $i <= $pagesCount; $i++) {
                 if ($i > 1) {
                     $purePager .= " - ";
                     $u = $URL . "/page" . $i;
                 } else {
                     $u = $URL;
                 }
                 if ($filter) {
                     $u .= "?" . $filter;
                 }
                 if ($i == $pNum) {
                     $purePager .= $i;
                 } else {
                     $purePager .= "<a href=\"{$u}\" class=\"levm\">" . $i . "</a>";
                 }
             }
             $pager = str_replace("%links%", $purePager, $tpl);
             $filterTpl = str_replace("%links%", "Страницы: " . $purePager, $filterTpl);
         } else {
             $filterTpl = str_replace("%links%", "", $filterTpl);
         }
         for ($i = $startFrom; $i <= $endAt; $i++) {
             switch ($branch[$i]["DataType"]) {
                 case "CatItem":
                     $items = true;
                     $ci = $this->getCatItemByPageID($branch[$i]["sID"]);
                     $style = $i > $startFrom ? "mid" : "up";
                     $res .= $this->getFilledItemTemplate($ci, $style);
                     break;
             }
         }
     }
     return " {$filterTpl}\n              <div class=\"items\"><table width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#DCDDE0\" class=\"items-table\">\n              {$res}\n              </table></div>\n              <img src=\"/images/pix.gif\" width=\"1\" height=\"10\" alt=\"\"  />\n              {$pager}\n              ";
 }
require_once 'lib.php';
_step("GC Cyclic Start!");
_mem();
_step("Bruce come");
$someData = _data();
$bruce = new User('bruce', '1960-12-26');
$bruce->store($someData);
_mem();
_var('someData');
_var('bruce');
_step("Robin come and talk to bruce");
$robin = new User('robin', '1970-10-14');
$robin->store($someData);
$bruce->talk($robin);
$robin->talk($bruce);
_mem();
_var('someData');
_var('bruce');
_var('robin');
_step("Clear all");
unset($robin);
unset($bruce);
unset($someData);
_mem();
_var('someData');
_var('bruce');
_var('robin');
_step("Collecting cycles");
gc_collect_cycles();
_mem();
Example #7
0
function _var($mixed, $is_dump = false)
{
    if ($is_dump) {
        var_dump($mixed);
    }
}
$dn = array("countryName" => "CN", "stateOrProvinceName" => "Beijing", "localityName" => "Beijing", "organizationName" => "Eyou", "organizationalUnitName" => "Develop team", "commonName" => "Li Bo", "emailAddress" => "*****@*****.**");
$config = array('config' => '/etc/pki/tls/openssl.cnf', 'encrypt_key' => 1, 'private_key_type' => OPENSSL_KEYTYPE_RSA, "digest_alg" => "sha1", 'x509_extensions' => 'v3_ca', 'private_key_bits' => 1024, "encrypt_key_cipher" => OPENSSL_CIPHER_AES_256_CBC);
$privkey = openssl_pkey_new($config);
$csr = openssl_csr_new($dn, $privkey);
$sscert = openssl_csr_sign($csr, null, $privkey, 365);
openssl_csr_export($csr, $csrout) and _var($csrout);
openssl_x509_export($sscert, $cer_x509) and _var($cer_x509);
openssl_pkey_export($privkey, $pkeyout, "mypassword", $config) and _var($pkeyout);
openssl_pkcs12_export($cer_x509, $pkcs12, $privkey, 'mypassword', $config) && _var(base64_encode($pkcs12));
openssl_pkcs12_read($pkcs12, $cert, 'mypassword') && _var($cert);
//_var(getenv('OPENSSL_CONF'));
// Show any errors that occurred here
//while (($e = openssl_error_string()) !== false) {
//    echo $e . "\n";
//}
//exit;
$cleartext = '1234 5678 9012 3456';
echo "\nClear txt: \n{$cleartext}\n";
$pub_key = $cert['cert'];
$priv_key = $cert['pkey'];
openssl_public_encrypt($cleartext, $crypttext, $pub_key);
echo "\nCrypt text:\n" . base64_encode($crypttext) . "\n";
openssl_private_decrypt($crypttext, $decrypted, $priv_key);
echo "\nDecrypted text:\n{$decrypted}\n\n";
//print_r(openssl_x509_parse($certout));
    $all[] = $data;
    _mem();
}
_mem();
_var('data');
_step("Pass string value to read");
dataSize($data);
_mem();
_var('data');
_step("Pass array value to read");
dataSize($all);
_mem();
_var('all');
_step("Pass string value to change");
changeValueOf($data);
_mem();
_var('data');
_step("Pass array value to change");
changeValueOf($all);
_mem();
_var('all');
// passing by reference to immutable values uses more memory in this case!
_step("Pass string reference to change");
changeValueOfReference($data);
_mem();
_var('data');
_step("Pass array reference to change");
changeValueOfReference($all);
_mem();
_var('all');
    /**
     * Эта функция использует "некрасивые" URL-пераметры. Ее нужно переписать
     *
     * @param array $cats
     * @param array $prodIDs
     * @param array $propVals
     * @param array $carID
     * @return string
     */
    function getTitleFromParams($cats = 0, $prodIDs = 0, $propVals = 0, $carID = 0)
    {
        if (!$cats) {
            $cats = _varByPattern('/c-\\d+/');
        }
        if (!$prodIDs) {
            $prodIDs = _varByPattern('/p-\\d+/');
        }
        if (!$propVals) {
            $propVals = _varByPattern('/propVal-\\d+/');
        }
        if (!$carID) {
            $carID = _var('carID');
        }
        $shownCats = array();
        $shownProds = array();
        $shownProps = array();
        $resArray = array();
        foreach ($cats as $pageID) {
            if (!in_array($pageID, $shownCats)) {
                $metaData = $this->getMetaData($pageID);
                $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle'];
                $shownCats[] = $pageID;
            }
        }
        foreach ($propVals as $prop) {
            $val = explode('_', $prop);
            if (!in_array($val[0], $shownCats)) {
                $metaData = $this->getMetaData($val[0]);
                $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle'];
                $shownCats[] = $val[0];
            }
        }
        if ($carID) {
            $query = 'SELECT pm_as_cars.carName, pm_as_cars.carModel,
				                 pm_as_autocreators.plantName 
				            FROM pm_as_cars, pm_as_autocreators 
				            WHERE pm_as_cars.plantID = pm_as_autocreators.plantID 
				                AND pm_as_cars.carID = \'' . $carID . '\'';
            $result = mysql_query($query);
            $row = mysql_fetch_assoc($result);
            $resArray['other'][] = $row['plantName'] . ' ' . ($row['carName'] ? $row['carModel'] . $row['carName'] : $row['carModel']);
        }
        foreach ($prodIDs as $prodID) {
            if (!in_array($prodID, $shownProds)) {
                $query = 'SELECT * FROM pm_as_producer WHERE accPlantID=\'' . $prodID . '\'';
                $result = mysql_query($query);
                $row = mysql_fetch_assoc($result);
                $resArray['other'][] = $row['accPlantName'];
                $shownProds[] = $prodID;
            }
        }
        foreach ($propVals as $prop) {
            $val = explode('_', $prop);
            if (!in_array($val[1], $shownProps)) {
                $resArray['other'][] = $val[1];
                $shownProps[] = $val[0];
            }
        }
        /*
        			if ( empty($resArray) ) {
        			    die('yes');
        			} else {
        			    die('no');
        			}
        */
        if (!empty($resArray['other']) || !empty($resArray['cats'])) {
            if (count($resArray['other']) || count($resArray['cats'])) {
                $str = trim(implode(", ", $resArray['cats'])) . (count($resArray['other']) && count($resArray['cats']) ? ': ' : '') . implode(', ', $resArray['other']);
            }
            return $str;
        } else {
            return '';
        }
    }
Example #10
0
 /**
  * Handle automatic client-side updates via the CLX
  */
 public function handleClientUpdates()
 {
     $h = '';
     $delim = '<<' . time() . '>>';
     if ($this->_clientElms) {
         foreach ($this->_clientElms as $sel => $content) {
             $p = strrpos($sel, '|');
             $h = '';
             $mode = substr($sel, $p + 1);
             $selector = substr($sel, 0, $p);
             if ($content instanceof DOMNode) {
                 $h = trim($this->nodeContent($content, true));
             } else {
                 if (is_array($content)) {
                     foreach ($content as $elm) {
                         $h .= trim($this->nodeContent($elm, true));
                         if ($mode == 'update') {
                             $h .= $delim;
                         }
                     }
                 } else {
                     $h = (string) $content;
                 }
             }
             if ($mode == 'append') {
                 C($selector)->append($h);
             } else {
                 if ($mode == 'prepend') {
                     C($selector)->prepend($h);
                 } else {
                     if ($mode == 'before') {
                         C($selector)->before($h);
                     } else {
                         if ($mode == 'after') {
                             C($selector)->after($h);
                         } else {
                             if ($mode == 'replace') {
                                 C($selector)->replaceWith($h);
                             } else {
                                 if ($mode == 'update') {
                                     // setup custom action
                                     $a = 'Raxan.iUpdateClient(' . _var($selector) . ',' . _var($h) . ',"' . $delim . '");';
                                     array_unshift(RaxanWebPage::$actions, $a);
                                 } else {
                                     C($selector)->html($h);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $this;
 }
Example #11
0
function echo_date_fields($bd)
{
    ?>
<table>
<tr><td><?php 
    echo _('Month');
    ?>
:</td><td>
<?php 
    echo write_months_list($bd, _var($bd, 'month'));
    ?>
</td></tr>
<tr><td><?php 
    echo _('Day');
    ?>
:</td><td>
<?php 
    echo write_days_list($bd, _var($bd, 'day'));
    ?>
</td></tr>
<tr><td><?php 
    echo _('Year');
    ?>
:</td><td>
<input type="radio" name="<?php 
    echo $bd;
    ?>
yearRadio" value="0"<?php 
    echo _var($bd, 'yearRadio') == '0' ? ' CHECKED' : '';
    ?>
 /><?php 
    echo _('Unknown');
    ?>
<br/><input type="radio" name="<?php 
    echo $bd;
    ?>
yearRadio" value="1"<?php 
    echo _var($bd, 'yearRadio') == '1' ? ' CHECKED' : '';
    ?>
 onClick="this.form.<?php 
    echo $bd;
    ?>
year.focus();" /><?php 
    echo _('As entered');
    ?>
:
<input type="text" name="<?php 
    echo $bd;
    ?>
year" size="4" maxlength="4"<?php 
    echo _var($bd, 'yearRadio') == '1' ? ' VALUE="' . abs(_var($bd, 'year')) . '"' : '';
    ?>
 onFocus="this.form.<?php 
    echo $bd;
    ?>
yearRadio[1].checked=true;" />
<input type="checkbox" name="<?php 
    echo $bd;
    ?>
bc" value="yes"<?php 
    echo _var($bd, 'bc') ? ' CHECKED' : '';
    ?>
 /><?php 
    echo _('B. C.');
    ?>
</td></tr><tr><td><?php 
    echo _('Comments (in<br />English, please)');
    ?>
:</td><td><input type="text" size="20" maxlength="20" name="<?php 
    echo $bd;
    ?>
comments" value="<?php 
    echo attr_safe(_var($bd, 'comments'));
    ?>
" /> 
<?php 
    echo _('Handy links:') . ' ';
    ?>
<a href="javascript:setComments('<?php 
    echo $bd;
    ?>
', '');" onClick="false">Empty (Unknown)</A> | 
<a href="javascript:setComments('<?php 
    echo $bd;
    ?>
', '(circa)');" onClick="false">(circa)</A>
<?php 
    // 'Still alive' only if death-field.
    if ($bd == 'd') {
        echo " | <a href=\"javascript:setComments('{$bd}', 'Still alive');\" onClick=\"false\">Still alive</A>";
    }
    echo '</td></tr></table>';
}
Example #12
0
    function getTitleFromParamsTranslit($cats = 0, $prodIDs = 0, $propVals = 0, $carID = 0)
    {
        if (!$cats) {
            $cats = _varByPattern('/c-\\d+/');
        }
        if (!$prodIDs) {
            $prodIDs = _varByPattern('/p-\\d+/');
        }
        if (!$propVals) {
            $propVals = _varByPattern('/propVal-\\d+/');
        }
        if (!$carID) {
            $carID = _var('carID');
        }
        $shownCats = array();
        $shownProds = array();
        $shownProps = array();
        $resArray = array();
        foreach ($cats as $pageID) {
            if (!in_array($pageID, $shownCats)) {
                $metaData = $this->getMetaData($pageID);
                $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle'];
                $shownCats[] = $pageID;
            }
        }
        foreach ($propVals as $prop) {
            $val = explode('_', $prop);
            if (!in_array($val[0], $shownCats)) {
                $metaData = $this->getMetaData($val[0]);
                $resArray['cats'][] = $metaData['Title'] ? $metaData['Title'] : $metaData['ShortTitle'];
                $shownCats[] = $val[0];
            }
        }
        if ($carID) {
            $query = 'SELECT pm_as_cars.carName, pm_as_cars.carModel,
				                 pm_as_autocreators.plantName
				            FROM pm_as_cars, pm_as_autocreators
				            WHERE pm_as_cars.plantID = pm_as_autocreators.plantID
				                AND pm_as_cars.carID = "' . $carID . '"';
            $result = mysql_query($query);
            $row = mysql_fetch_assoc($result);
            $resArray['other'][] = $row['plantName'] . ' ' . ($row['carName'] ? $row['carModel'] . $row['carName'] : $row['carModel']);
        }
        foreach ($prodIDs as $prodID) {
            if (!in_array($prodID, $shownProds)) {
                $query = 'SELECT * FROM pm_as_producer WHERE accPlantID="' . $prodID . '"';
                $result = mysql_query($query);
                $row = mysql_fetch_assoc($result);
                $resArray['other'][] = $row['accPlantName'];
                $shownProds[] = $prodID;
            }
        }
        foreach ($propVals as $prop) {
            $val = explode('_', $prop);
            if (!in_array($val[1], $shownProps)) {
                $resArray['other'][] = $val[1];
                $shownProps[] = $val[0];
            }
        }
        if (isset($resArray['cats']) && count($resArray['cats'])) {
            $str = trim(implode(', ', $resArray['cats']));
            if (!empty($resArray['other']) && count($resArray['other'])) {
                foreach ($resArray['other'] as $key => $val) {
                    $query = sprintf("SELECT propValue FROM pm_as_parts_properties WHERE propValueTranslit = '%s' LIMIT 1", $val);
                    $result = mysql_query($query);
                    if (0 != mysql_num_rows($result)) {
                        $resArray['other'][$key] = mysql_result($result, 0);
                    }
                }
                $str .= ': ' . implode(', ', $resArray['other']);
            }
            return $str;
        } else {
            return '';
        }
    }