public static function renderPage($address) { global $MAIN_DIR; $item = tools::getPage($address); $template = file_get_contents('templates/athlas.htm'); // Если это не неведомое, не песочница и не меморизы - обрезаем сцену под коэффициент if (!tools::startswith($address, 'unknown') && !tools::startswith($address, 'common/memories') && $_SESSION['doctor_skills']['text_size']) { $item['scen'] = tools::splice_text($item['scen'], $_SESSION['doctor_skills']['text_size']); } if (!$_SESSION['labels']['memories_passed']) { $_SESSION['labels']['memories_passed'] = array(); } // Если это меморизы, и на этой странице уже были - разрешаем второй раз не читать if (strpos($_SESSION['current_page'], 'memories') && in_array($_SESSION['current_page'], $_SESSION['labels']['memories_passed'])) { $arr = tools::split_text($item['scen']); // print_r($arr); if (count($arr) > 9) { $item['scen'] = join('', array_slice($arr, 0, 5)) . "{3mm}...{3mm}" . join("", array_slice($arr, -4)); } } $out = $template; if (!$item['image']) { $item['image'] = $item['page'] . '.jpg'; } $item['athlas_page'] = ''; $sack = new cStoneSet($_SESSION['sack']); $item['sack_stones'] = $sack->getStonesText(); $heap = new cStoneSet($_SESSION['heap']); $item['heap_stones'] = $heap->getStonesText(); $patient = $_SESSION['patient']; if ($item['todos']) { $item['todos'] = "<img src='../images/question.png' class=img_question>" . $item['todos']; } foreach ($item as $key => $value) { $out = str_replace("{" . $key . "}", $value, $out); } $out = tools::replace_hiddens($out); $out = tools::replace_template_conditions($out); $out = tools::replace_page_fog($out); $out = tools::replace_template_conditions($out); // Заменяем hypno_next if (count($_SESSION['labels']['hypno_page_sequence'])) { $out = str_replace('{hypno_next}', 'Иди {page:' . $_SESSION['labels']['hypno_page_sequence'][0] . '}', $out); } else { $out = str_replace('{hypno_next}', '{hypno_end}', $out); } $out = preg_replace('~\\{awake:(.*?)\\}~', 'Перейди {page:unknown/sandbox/random_\\1}', $out); $out = preg_replace('~\\{page:(.*?)\\}~', '<div class=button><a onclick="transfer(\'\\1\');">НА СЛЕДУЮЩУЮ СТРАНИЦУ</a></div>', $out); $repl = file_get_contents($MAIN_DIR . "replacements.py"); $repl = substr($repl, strpos($repl, '{')); $repl = json_decode($repl, 1); foreach ($repl as $key => $value) { $out = str_replace("{" . $key . "}", $value, $out); } // die("<pre>".$out."</pre>"); return $out; }
$_SESSION['start_sack'] = $sack; if ($_SESSION['current_page'] == 'hypnomap') { die('{success:true,hypnomap:true}'); } else { die('{success: true}'); } break; case 'extra_awake': tools::log(" -> extra_awake"); $_SESSION['labels']['extra_awake'] = 1; header('Location: awake.php'); break; case 'athlas': // Вытаскиваем мешок и кучу из сессии $sack = new cStoneSet($_SESSION['sack']); $heap = new cStoneSet($_SESSION['heap']); $patient = $_SESSION['patient']; $doctor_skills = $_SESSION['doctor_skills']; $requested_page = $_REQUEST['page']; if ($requested_page == 'next' && strpos($_SESSION['current_page'], 'experiment') > 0) { $requested_page = $_SESSION['exp']['scenes'][0]; } // Отрезаем от адреса страницы номер $data = explode('#', $requested_page); $page = tools::getPage($_SESSION['current_page']); // Берем страницу, с которой мы уходим, и смотрим, есть ли на ней коды для перехода if ($page['transfer_codes'] && $_REQUEST['page']) { if (substr(trim($page['transfer_codes']), -1, 1) != '~') { $page['transfer_codes'] .= '~'; } preg_match('!' . $_REQUEST['page'] . '\\s*~\\s*(.*?)\\s*~!', $page['transfer_codes'], $m);
public function pass(&$where, $line = '', $forbidden_rand = 'K') { if ($line == '') { $line = $this->_stones; } $taken = $this->take($line, $forbidden_rand); if (!$where) { $where = new cStoneSet($taken); } else { $where->add($taken->getStones()); } return $this; }
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel=stylesheet href='styles/main.css'> <link rel=stylesheet href='styles/login.css'> </head> <h2>Результаты сеанса:</h2> <? if(strpos($_SESSION['current_page'], 'experiment/')===FALSE) { ?> <div id="hypno_results" class='roundrect'> <div class=block_caption style='width:200px'>РЕСУРСЫ ПСИХИКИ</div> <div class=comment>БЫЛО</div> <? $sack = new cStoneSet($_SESSION['sack']); $start_sack = new cStoneSet($_SESSION['start_sack']); $diff = $sack->diff($_SESSION['start_sack'], true); foreach (tools::$COLORS as $letter => $col) echo "<div class=stone_result> <img src=images/gem_{$col}_2.png><br>".$start_sack->getCount($letter)." </div>\n"; ?> <div class=clear></div><hr> <div class=comment>СТАЛО</div> <? foreach (tools::$COLORS as $letter => $col) { $was = $start_sack->getCount($letter); $now = $sack->getCount($letter); echo "<div class=stone_result> <img src=images/gem_{$col}_2.png><br>"; if ($now == $was)