- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 
                        // если пользователь авторизован
if($user->get('id')) { 
    $_SESSION['city-select'] = '';
    // если пользователь авторизован - определяем город
    $profile = $user->getOne('Profile');
    if ($profile) {
        $city = $profile->get('city');
    }
    
    // проходим все города и ищем подходящий
    $cities = $modx->runSnippet('pdoResources', array(
        'parents' => 205,
        'limit'   => 0,
        'includeTVs' => 'setCityForHome',
        'where'   => '{ "template" : "25" }',
        'tpl'     => '@CODE:{"id":"[[+id]]","city":"[[+tv.setCityForHome]]"}',
        'outputSeparator' => ','
    ));
    $redirectTo = 0;
    if($cities) { 
        $cities = $modx->fromJson('['.$cities.']');
        foreach( $cities as $c ) {
            if($c['city'] == $city) {
                $redirectTo = $c['id'];
                break;
            }
        }    
    }
} else {
    // если не авторизован - проверяем сессию
    
    $session = $_SESSION['city-select'];
    
    // если сессия пустая - проверяем, на какой странице находимся
    // если страница города и пустая сессия - записываем в сессию
    if($modx->resource->get('template') == 25) {
        $_SESSION['city-select'] = $modx->resource->get('pagetitle');
        $city = $modx->resource->get('pagetitle');
    } else {
        $city = (!empty($_SESSION['city-select']))? $_SESSION['city-select'] : $city;
    }
}
                                 
        
            Сумрачный гений, сука. Строки 11-28 особенно примечательны.
        
        
~спрыснул смузи~
Другое дело, что изменения довольно минимальны, и если вы с самого начала писали код качественно, не увлекаясь например преобразованием строк типа «abc» в int и не пытаясь получить $foo['bar'] где $foo === null, есть шанс что вы их вообще не заметите.
Кстати, а что за расширение там выпилилили? mysql?
А про расширение не знаю, мне просто комменты понравились, особенно:
> PHP любят не за какие-то его классные фишки а как раз за его обратную совместимость
> Так обратной совместимости уже давно нет
Кстати, у меня в IDE bluefish, если я правильно помню название, есть кнопка «python 2 --> 3», который переводит print'ы в print()'ы.