Beispiel #1
0
 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;
 }
Beispiel #2
0
     }
     preg_match('!' . $_REQUEST['page'] . '\\s*~\\s*(.*?)\\s*~!', $page['transfer_codes'], $m);
     if ($m[1]) {
         eval($m[1] . ';');
     }
 }
 if ($requested_page) {
     //        Определяем новый адрес
     $new_address = explode('/', $data[0]);
     $new_address = array_pad($new_address, -3, '');
     for ($i = 0; $i < 3; $i++) {
         $address[$i] = $new_address[$i] ? $new_address[$i] : $address[$i];
     }
     $_SESSION['current_page'] = implode('/', $address);
     $_SESSION['current_page'] = tools::decipher_address($_SESSION['current_page']);
     $page = tools::getPage($_SESSION['current_page']);
 }
 //        Берем новую страницу и смотрим, есть ли на ней коды
 if ($page['code'] && $_SESSION['page_last_code_executed'] != $_SESSION['current_page']) {
     eval($page['code'] . ';');
 }
 $_SESSION['page_last_code_executed'] = $_SESSION['current_page'];
 //        Если это - очередная страница гипносеквенса, отрезаем от гипносеквенса первый элемент
 if ($_SESSION['current_page'] == $_SESSION['labels']['hypno_page_sequence'][0]) {
     $_SESSION['labels']['hypno_page_sequence'] = array_slice($_SESSION['labels']['hypno_page_sequence'], 1);
 }
 // Костыль для эксперимента: получение бонуса
 if (tools::startswith($_SESSION['current_page'], 'common/experiment/death_after')) {
     # Определяем бонус
     //        $bonus = $bonuses[$_SESSION['patient']['color']][$_SESSION['exp']['drug']];
     $penalty_prx = 'Что-то в тебе неуловимо изменилось... <br>';