За последние 24 часа нас посетили 58890 программистов и 1771 робот. Сейчас ищут 860 программистов ...

PHP 5.3 до PHP 5.6

Тема в разделе "PHP для новичков", создана пользователем Johhny, 22 июн 2016.

  1. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Есть сайт на YII,он работает на версий PHP 5.3 (Denwer) и всё отлично, если поставить тот-же сайт на PHP 5.6(XAMPP) то при входе появляется такая ошибка:
    PHP:
    1. beginContent('//layouts/main'); echo $content; $this->endContent(); ?>
    Я пытался как-нибудь исправить это, но ничего не получилось. Не знаю что уже делать :/
    Думаю вы поможете...
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Как пытался-то?
     
    Johhny нравится это.
  3. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Google + еще написал на другом форуме, а там просто игнорят тему...
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    какие ошибки показывает?
     
    Johhny нравится это.
  5. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    При входе лишь это пишет:
    PHP:
    1. beginContent('//layouts/main'); echo $content; $this->endContent(); ?>
    И ничего больше, хотя на Denwer-e всё работает нормально..
     
    #5 Johhny, 22 июн 2016
    Последнее редактирование: 22 июн 2016
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    В php.ini поставьте short_open_tag On
     
    Johhny нравится это.
  7. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Работает, спасибо!!
     
  8. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Приучайте себя писать <?php везде, а не короткое <?
    Отключенный short_open_tag встречается часто и ставится по дефолту теперь в конфигах.
    <?= при этом можно использовать без проблем всегда
     
    Johhny нравится это.
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    до какой-то там версии оно считалось коротким тэгом и попадало под настройки. А потом его сделали коротким эхо и оно перестало попадать под настройки тэга.
     
    Johhny нравится это.
  10. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Да, но теперь сайт криво прогружаеться:
    Вот что пишет:
    PHP:
    1. [B]Notice[/B]: Use of undefined constant id - assumed 'id' in [B]C:\xampp\htdocs\protected\models\Monitors.php[/B] on line [B]59[/B]
    2.  
    3. [B]Notice[/B]: Use of undefined constant mon_name - assumed 'mon_name' in [B]C:\xampp\htdocs\protected\models\Monitors.php[/B] on line [B]59[/B]
    4.  
    5. [B]Notice[/B]: Use of undefined constant id - assumed 'id' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]22[/B]
    6.  
    7. [B]Notice[/B]: Use of undefined constant mon_name - assumed 'mon_name' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]23[/B]
    8.  
    9. [B]Notice[/B]: Use of undefined constant items - assumed 'items' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]61[/B]
    10.  
    11. [B]Notice[/B]: Use of undefined constant url - assumed 'url' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]79[/B]
    12.  
    13. [B]Notice[/B]: Use of undefined constant url - assumed 'url' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]80[/B]
    14.  
    15. [B]Notice[/B]: Use of undefined constant label - assumed 'label' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]80[/B]
    16. [*][URL='http://localhost/']Главная[/URL]
    17.  
    18. [B]Notice[/B]: Use of undefined constant items - assumed 'items' in[B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]61[/B]
    19.  
    20. [B]Notice[/B]: Use of undefined constant label - assumed 'label' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]64[/B]
    21. [*][URL='http://localhost/#']Составы [/URL]
    22.  
    23. [B]Notice[/B]: Use of undefined constant items - assumed 'items' in[B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]61[/B]
    24.  
    25. [B]Notice[/B]: Use of undefined constant url - assumed 'url' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]79[/B]
    26.  
    27. [B]Notice[/B]: Use of undefined constant url - assumed 'url' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]80[/B]
    28.  
    29. [B]Notice[/B]: Use of undefined constant label - assumed 'label' in [B]C:\xampp\htdocs\framework\zii\widgets\FrapsyNavbar.php[/B] on line [B]80[/B]
    30. [*][URL='http://localhost/site/login']Личный кабинет[/URL][B][SIZE=4][php][/SIZE][/B]
    31. [/LIST]
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @Johhny оно и раньше такое писало, просто был отключен вывод ошибок и предупреждений. Рискну предположить, что там в каждой из этих строк идёт обращение к ключу массива. Решение: взять название ключа в кавычки чтоб из константы образовалась строка.
     
    Johhny нравится это.
  12. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Тоесть, у нас есть строка:
    PHP:
    1. $items[$val['id']] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url'],'items'=>$subitems[$val['id']]);
    И мне нужно сделать так?
    PHP:
    1. "$items"[$val['id']] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url'],'items'=>$subitems[$val['id']]);
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Лол. Этого не может быть.
    Смотри:
    $var[id] - вот тут я написал ту ситуацию которая у тебя. Айди написано без кавычек. Пхп-машина будет искать такую константу и пытаться подставить её значение. Если не найдет - создаст константу значением которой будет имя константы и соответственно эту строку уже вернет как имя ключа. Но на это будет кинут нотис о неопределенной константе.
    Что еще тут может случиться?
    Неопределенный индекс массива. Да, константу развернуло в строку или получилось её значение но вот беда - в массиве нет такого индекса. Результат: нотис о потерянном ключе массива.
    И наконец: неопределенная переменная вар! Да, константу мы развернули, но при попытке обратиться к переменной вар в контексте массива вдруг выясняется что нет у нас такой переменной. Результат: нотис о неопределенной переменной.

    Итак. У нас есть три различных нотиса на все случаи жизни что называется. Теперь прочитай свои нотисы и подумай к какому случаю они относятся.
     
    Johhny нравится это.
  14. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    framework\zii\widgets\FrapsyNavbar.php - это что? Ты что, свои классы запихнул в структуру фреймворка? Так нельзя делать. Свой код держи у себя, фрейморк - as is он развернулся из дистрибутива.
     
    Johhny нравится это.
  15. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Вот что в нём находиться:
    PHP:
    1. <?php
    2.  
    3. class FrapsyNavbar extends CWidget
    4. {
    5.  
    6.     public function init() {
    7.         //
    8.     }
    9.     public function run() {
    10.         $items = array();
    11.         $items = Menu::getMenuItems();
    12.         $arr = Tops::getTops();
    13.         if(!empty($arr)) {
    14.             foreach($arr as $val) {
    15.                 $tops[] = array('label'=>$val[top_name],'url'=>'/tops/view/'.$val[id]);
    16.             }
    17.             $items[] = array('label'=>'Рейтинги','url'=>'#','items'=>$tops);                      
    18.         }
    19.         $arr = Monitors::getMonitors();
    20.         if(!empty($arr)) {
    21.             foreach($arr as $val) {
    22.                 if($val[id] == 1)
    23.                     $monitors[] = array('label'=>$val[mon_name],'url'=>'/monitor/fractions');
    24.                 else
    25.                     $monitors[] = array('label'=>$val[mon_name],'url'=>'/monitor/view/'.$val[id]);
    26.             }
    27.             $items[] = array('label'=>'Составы','url'=>'#','items'=>$monitors);                      
    28.         }
    29.         if(!Yii::app()->user->isGuest AND Yii::app()->user->admin >= Yii::app()->params->editor_level) {
    30.             $items[] = array('label'=>'Админ-панель','url'=>'#','items'=>array(
    31.                 array('label'=>'Параметры сайта','url'=>'/site/config'),
    32.                 array('label'=>'Файлы HTML и CSS','url'=>'/site/design/1'),                          
    33.                 array('label'=>'Настройка таблицы','url'=>'/site/settings/1'),
    34.                 array('label'=>'Сортировка полей','url'=>'/site/sort/1'),
    35.                 array('label'=>'Настройка названий','url'=>'/site/names'),
    36.                 array('label'=>'Изменение ников','url'=>'/changename/admin'),
    37.                 array('label'=>'Добавить новость','url'=>'/news/create'),
    38.                 array('label'=>'Создать топ-лист','url'=>'/tops/create'),
    39.                 array('label'=>'Создать мониторинг','url'=>'/monitor/create'),
    40.                 array('label'=>'Добавить таблицу','url'=>'/tables/create'),
    41.                 array('label'=>'Редактор меню','url'=>'/site/editmenu'),
    42.                 array('label'=>'Управление рейтингами','url'=>'/tops/admin'),
    43.                 array('label'=>'Управление мониторингами','url'=>'/monitor/admin'),
    44.                 array('label'=>'Управление таблицами','url'=>'/tables/'),
    45.             ));
    46.         }                  
    47.         if(Yii::app()->user->isGuest) {
    48.             $items[] = array('label'=>'Личный кабинет','url'=>'/site/login');
    49.         } else {
    50.             $items[] = array('label'=>'Личный кабинет','url'=>'#','items'=>array(
    51.                 array('label'=>'Просмотр','url'=>'/id'.Yii::app()->user->userid),                          
    52.                 array('label'=>'Настройки','url'=>'/users/change'),
    53.                 array('label'=>'Выйти','url'=>'/site/logout'),
    54.             ));
    55.         }
    56.         $this->renderMenu($items);
    57.     }
    58.     protected function renderMenu($items) {
    59.         echo '<ul class="nav navbar-nav navbar-center">';
    60.         foreach($items as $val) {
    61.             if(isset($val[items])) {
    62.                 echo '
    63.                    <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">'.
    64.                         $val[label].
    65.                     ' <i class="caret"></i></a>';
    66.                 echo '<ul class="dropdown-menu">';
    67.                 foreach($val[items] as $sub) {
    68.                     if(isset($sub['class'])) {
    69.                         echo '<li class='.$sub["class"].'></li>';
    70.                     } else {
    71.                         if(!preg_match('/(http|https)/',$sub[url]))
    72.                             echo '<li><a href="'.Yii::app()->baseUrl.$sub[url].'">'.$sub[label].'</a></li>';
    73.                         else
    74.                             echo '<li><a href="'.$sub[url].'">'.$sub[label].'</a></li>';
    75.                     }
    76.                 }
    77.                 echo '</ul></li>';
    78.             } else {
    79.                 if(!preg_match('/(http|https)/',$val[url]))
    80.                     echo '<li><a href="'.Yii::app()->baseUrl.$val[url].'">'.$val[label].'</a></li>';
    81.                 else
    82.                     echo '<li><a href="'.$val[url].'">'.$val[label].'</a></li>';
    83.             }
    84.         }
    85.         echo '</ul>';
    86.     }
    87.  
    88. }
     
  16. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Совершенно пофиг что в нем, он не должен быть в папке фреймворка, он должен быть в папке твоего проекта.

    echo'<li><a href="'.Yii::app()->baseUrl.$val[url].'">'.$val[label].'</a></li>';
    Без кавычек, о чем тебе и говорили выше.
     
    Johhny нравится это.
  17. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Остались лишь 3 ошибки, но я не знаю как их решить:

    Notice: Undefined variable: subitems in C:\xampp\htdocs\protected\models\Menu.php on line 71

    Notice: Use of undefined constant id - assumed 'id' in C:\xampp\htdocs\protected\models\Monitors.php on line 59

    Notice: Use of undefined constant mon_name - assumed 'mon_name' in C:\xampp\htdocs\protected\models\Monitors.php on line 59
    PHP:
    1. $items[$val["id"]] = array("id"=>$val["id"],"label"=>$val["label"],"url"=>$val["url"],"items"=>$subitems[$val["id"]]);//71
    PHP:
    1. if($val["parent_id" ]) {//59
     
  18. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну ты сам-то не видишь что в строках нотисов и в строках кода иногда нет ничего общего. что это с 59 строкой? где мон-нейм в ней?
     
    Johhny нравится это.
  19. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Проблема в том что я сам не знаю где этот mon_name, в файле Menu, его проста нету..
     
  20. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    он обязан быть в исходном коде, понимаешь? вот эта херота if($val["parent_id" ]) {//59 должна выглядеть как минимум как if($val["mon_name" ]) {//59 а далее уже содержать в себе ранее обсуждаемые проблемы. но у тебя написано иф+вал+парент-айди а ошибка говорит про мон-нейм - тебя вообще это не коробит
    ищи мон нейм в 59 строке файла C:\xampp\htdocs\protected\models\Monitors.php. пхп-машина всё что может делает чтоб ты быстро отладил своё приложение.
     
    Johhny нравится это.
  21. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Вроде-бы всё сделал, но осталась лишь 71-ая строка...
    Вот что сейчас получилось:
    [​IMG]
     
  22. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    А где эта переменная объявляется?
     
    Johhny нравится это.
  23. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Ошибка:Notice: Undefined variable: subitems in C:\xampp\htdocs\protected\models\Menu.php on line 71
    Напрямую связанно с subitems, она в этой строк:
    PHP:
    1. $items[$val['id']] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url'],'items'=>$subitems[$val['id']]);
    Но проблема в том что я уже больше 5 раз прочитал ваши сообщения и так и не понял как тут всё сделать, с остальными вроде справился, надеюсь что всё будет работать...

    PHP:
    1. Search "subitems" (51 hits in 4 files)
    2.   C:\xampp\htdocs\js\codemirror\mode\rst\index.html (1 hit)
    3.     Line 126:      * and some subitems
    4.   C:\xampp\htdocs\protected\controllers\SiteController.php (4 hits)
    5.     Line 25:         $subitems = array();
    6.     Line 29:                     $subitems[$val['parent_id']][] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url']);
    7.     Line 31:                     $subitems[$val['parent_id']][] = array('id'=>$val['id'],'class'=>$val['label']);
    8.     Line 34:                 $items[$val['id']] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url'],'items'=>$subitems[$val['id']]);
    9.   C:\xampp\htdocs\protected\models\Menu.php (3 hits)
    10.     Line 63:                         $subitems[$val['parent_id']][] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url']);
    11.     Line 67:                         $subitems[$val['parent_id']][] = array('id'=>$val['id'],'class'=>$val['label']);
    12.     Line 71:                     $items[$val['id']] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url'],'items'=>$subitems[$val['id']]);
    13.   C:\xampp\htdocs\protected\runtime\application.log (43 hits)
    14.     Line 5355: 2016/06/22 16:15:16 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    15.     Line 5379: 2016/06/22 16:15:54 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    16.     Line 5403: 2016/06/22 16:17:31 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    17.     Line 5427: 2016/06/22 16:19:28 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    18.     Line 5451: 2016/06/22 16:24:14 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    19.     Line 5475: 2016/06/22 16:26:09 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    20.     Line 5499: 2016/06/22 16:28:32 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    21.     Line 5523: 2016/06/22 16:34:28 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    22.     Line 5547: 2016/06/22 16:35:53 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    23.     Line 5571: 2016/06/22 16:36:59 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    24.     Line 5595: 2016/06/22 16:37:05 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    25.     Line 5627: 2016/06/22 16:45:31 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    26.     Line 5651: 2016/06/22 16:46:57 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    27.     Line 5675: 2016/06/22 16:48:59 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    28.     Line 5699: 2016/06/22 16:54:13 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    29.     Line 5723: 2016/06/22 16:56:30 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    30.     Line 5867: 2016/06/22 17:11:21 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    31.     Line 5915: 2016/06/22 17:20:45 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    32.     Line 5939: 2016/06/22 17:26:24 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    33.     Line 5963: 2016/06/22 17:27:39 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    34.     Line 5987: 2016/06/22 17:37:57 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    35.     Line 6011: 2016/06/22 17:38:10 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    36.     Line 6035: 2016/06/22 17:39:08 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    37.     Line 6059: 2016/06/22 17:39:46 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    38.     Line 6083: 2016/06/22 17:41:20 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    39.     Line 6107: 2016/06/22 17:41:56 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    40.     Line 6131: 2016/06/22 17:43:09 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    41.     Line 6155: 2016/06/22 17:43:27 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    42.     Line 6179: 2016/06/22 18:15:53 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    43.     Line 6203: 2016/06/22 18:31:57 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    44.     Line 6227: 2016/06/22 18:32:11 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    45.     Line 6251: 2016/06/22 18:32:24 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    46.     Line 6275: 2016/06/22 18:32:45 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    47.     Line 6299: 2016/06/22 18:33:06 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    48.     Line 6323: 2016/06/22 18:33:23 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    49.     Line 6347: 2016/06/22 18:33:50 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    50.     Line 6371: 2016/06/22 18:34:01 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    51.     Line 6395: 2016/06/22 18:34:41 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    52.     Line 6419: 2016/06/22 18:35:37 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    53.     Line 6443: 2016/06/22 18:35:44 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    54.     Line 6467: 2016/06/22 18:38:49 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    55.     Line 6501: 2016/06/22 18:45:29 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    56.     Line 6525: 2016/06/22 18:47:26 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    PHP:
    1. 2016/06/22 18:53:02 [error] [php] Undefined variable: subitems (C:\xampp\htdocs\protected\models\Menu.php:71)
    2. Stack trace:
    3. #0 C:\xampp\htdocs\protected\views\layouts\main2.php(53): LandingController->widget()
    4. #1 C:\xampp\htdocs\framework\web\CBaseController.php(126): require()
    5. #2 C:\xampp\htdocs\framework\web\CBaseController.php(95): LandingController->renderInternal()
    6. #3 C:\xampp\htdocs\framework\web\widgets\CContentDecorator.php(76): LandingController->renderFile()
    7. #4 C:\xampp\htdocs\framework\web\widgets\CContentDecorator.php(54): CContentDecorator->decorate()
    8. #5 C:\xampp\htdocs\framework\web\widgets\COutputProcessor.php(44): CContentDecorator->processOutput()
    9. #6 C:\xampp\htdocs\framework\web\CBaseController.php(206): CContentDecorator->run()
    10. #7 C:\xampp\htdocs\framework\web\CBaseController.php(300): LandingController->endWidget()
    11. #8 C:\xampp\htdocs\protected\views\layouts\landing.php(7): LandingController->endContent()
    12. #9 C:\xampp\htdocs\framework\web\CBaseController.php(126): require()
    13. #10 C:\xampp\htdocs\framework\web\CBaseController.php(95): LandingController->renderInternal()
    14. #11 C:\xampp\htdocs\framework\web\CController.php(797): LandingController->renderFile()
    15. #12 C:\xampp\htdocs\protected\controllers\LandingController.php(9): LandingController->render()
    16. #13 C:\xampp\htdocs\framework\web\actions\CInlineAction.php(49): LandingController->actionIndex()
    17. #14 C:\xampp\htdocs\framework\web\CController.php(318): CInlineAction->runWithParams()
    18. #15 C:\xampp\htdocs\framework\web\CController.php(296): LandingController->runAction()
    19. #16 C:\xampp\htdocs\framework\web\CController.php(275): LandingController->runActionWithFilters()
    20. #17 C:\xampp\htdocs\framework\web\CWebApplication.php(282): LandingController->run()
    21. #18 C:\xampp\htdocs\framework\web\CWebApplication.php(141): CWebApplication->runController()
    22. #19 C:\xampp\htdocs\framework\base\CApplication.php(180): CWebApplication->processRequest()
    23. #20 C:\xampp\htdocs\index.php(7): CWebApplication->run()
    24. REQUEST_URI=/index.php
     
  24. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Исходники давай
     
    Johhny нравится это.
  25. Johhny

    Johhny Активный пользователь

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    PHP:
    1. <?php
    2.  
    3. class Menu extends CActiveRecord {
    4.  
    5.     public function getDbConnection() {
    6.  
    7.         $connection = new CDbConnection(
    8.  
    9.             "mysql:host=".Yii::app()->params->mysql_host.";dbname=".Yii::app()->params->mysql_dbname,
    10.  
    11.             Yii::app()->params->mysql_user,
    12.  
    13.             Yii::app()->params->mysql_pass
    14.  
    15.         );
    16.  
    17.         $connection->charset = 'utf8';
    18.  
    19.         return $connection;
    20.  
    21.     }  
    22.  
    23.     public function tableName() {
    24.  
    25.         return 'frapsy_menu';
    26.  
    27.     }
    28.  
    29.     public function rules() {
    30.  
    31.         return array(
    32.  
    33.             array('label,url,parent_id','safe'),
    34.  
    35.         );
    36.  
    37.     }
    38.  
    39.     public static function getMenu() {
    40.  
    41.         $menu = self::model()->findAll(array('order'=>'parent_id DESC, id'));
    42.  
    43.         if($menu !== null) return $menu;
    44.  
    45.         else return null;
    46.  
    47.     }
    48.  
    49.     public static function getMenuItems() {
    50.  
    51.         $menu = self::model()->findAll(array('order'=>'parent_id DESC, id'));
    52.  
    53.         if($menu !== null) {
    54.  
    55.             $items = array();
    56.  
    57.             foreach($menu as $val) {
    58.  
    59.                 if($val["parent_id" ]) {
    60.  
    61.                     if($val['label'] !== 'divider')
    62.  
    63.                         $subitems[$val['parent_id']][] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url']);
    64.  
    65.                     else
    66.  
    67.                         $subitems[$val['parent_id']][] = array('id'=>$val['id'],'class'=>$val['label']);
    68.  
    69.                 } else {
    70.  
    71.                     $items[$val['id']] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url'],'items'=>$subitems[$val['id']]);
    72.  
    73.                 }
    74.  
    75.             }
    76.  
    77.             return $items;          
    78.  
    79.         }
    80.  
    81.         else return null;
    82.  
    83.     }  
    84.  
    85.     /*
    86.  
    87.     public static function deleteMenu($id) {
    88.  
    89.         $connect = self::getDbConnection();
    90.  
    91.         $connect->createCommand();
    92.  
    93.         $connect->delete(self::tableName(),'id = :id OR parent_id = :id',array(':id'=>$id));
    94.  
    95.     }
    96.  
    97.     */
    98.  
    99.     public static function model($className=__CLASS__) {
    100.  
    101.         return parent::model($className);
    102.  
    103.     }      
    104.  
    105. }
    106.  
    107. ?>
    --- Добавлено ---
    PHP:
    1. <?php
    2.     public function renderFile($viewFile,$data=null,$return=false)
    3.     {
    4.         $widgetCount=count($this->_widgetStack);
    5.         if(($renderer=Yii::app()->getViewRenderer())!==null && $renderer->fileExtension==='.'.CFileHelper::getExtension($viewFile))
    6.             $content=$renderer->renderFile($this,$viewFile,$data,$return);
    7.         else
    8.             $content=$this->renderInternal($viewFile,$data,$return);
    9.         if(count($this->_widgetStack)===$widgetCount)
    10.             return $content;
    11.         else
    12.         {
    13.             $widget=end($this->_widgetStack);
    14.             throw new CException(Yii::t('yii','{controller} contains improperly nested widget tags in its view "{view}". A {widget} widget does not have an endWidget() call.',
    15.                 array('{controller}'=>get_class($this), '{view}'=>$viewFile, '{widget}'=>get_class($widget))));
    16.         }
    17.     }
    18.  
    19.     public function renderInternal($_viewFile_,$_data_=null,$_return_=false)
    20.     {
    21.         // we use special variable names here to avoid conflict when extracting data
    22.         if(is_array($_data_))
    23.             extract($_data_,EXTR_PREFIX_SAME,'data');
    24.         else
    25.             $data=$_data_;
    26.         if($_return_)
    27.         {
    28.             ob_start();
    29.             ob_implicit_flush(false);
    30.             require($_viewFile_);
    31.             return ob_get_clean();
    32.         }
    33.         else
    34.             require($_viewFile_);
    35.     }
    36.  
    37.  
    38.     public function createWidget($className,$properties=array())
    39.     {
    40.         $widget=Yii::app()->getWidgetFactory()->createWidget($this,$className,$properties);
    41.         $widget->init();
    42.         return $widget;
    43.     }
    44.  
    45.     public function widget($className,$properties=array(),$captureOutput=false)
    46.     {
    47.         if($captureOutput)
    48.         {
    49.             ob_start();
    50.             ob_implicit_flush(false);
    51.             $widget=$this->createWidget($className,$properties);
    52.             $widget->run();
    53.             return ob_get_clean();
    54.         }
    55.         else
    56.         {
    57.             $widget=$this->createWidget($className,$properties);
    58.             $widget->run();
    59.             return $widget;
    60.         }
    61.     }
    62.  
    63.     /**
    64.     * Creates a widget and executes it.
    65.     * This method is similar to {@link widget()} except that it is expecting
    66.     * a {@link endWidget()} call to end the execution.
    67.     * @param string $className the widget class name or class in dot syntax (e.g. application.widgets.MyWidget)
    68.     * @param array $properties list of initial property values for the widget (Property Name => Property Value)
    69.     * @return CWidget the widget created to run
    70.     * @see endWidget
    71.     */
    72.     public function beginWidget($className,$properties=array())
    73.     {
    74.         $widget=$this->createWidget($className,$properties);
    75.         $this->_widgetStack[]=$widget;
    76.         return $widget;
    77.     }
    78.  
    79.     /**
    80.     * Ends the execution of the named widget.
    81.     * This method is used together with {@link beginWidget()}.
    82.     * @param string $id optional tag identifying the method call for debugging purpose.
    83.     * @return CWidget the widget just ended running
    84.     * @throws CException if an extra endWidget call is made
    85.     * @see beginWidget
    86.     */
    87.     public function endWidget($id='')
    88.     {
    89.         if(($widget=array_pop($this->_widgetStack))!==null)
    90.         {
    91.             $widget->run();
    92.             return $widget;
    93.         }
    94.         else
    95.             throw new CException(Yii::t('yii','{controller} has an extra endWidget({id}) call in its view.',
    96.                 array('{controller}'=>get_class($this),'{id}'=>$id)));
    97.     }
    98.  
    99.     /**
    100.     * Begins recording a clip.
    101.     * This method is a shortcut to beginning {@link CClipWidget}.
    102.     * @param string $id the clip ID.
    103.     * @param array $properties initial property values for {@link CClipWidget}.
    104.     */
    105.     public function beginClip($id,$properties=array())
    106.     {
    107.         $properties['id']=$id;
    108.         $this->beginWidget('CClipWidget',$properties);
    109.     }
    110.  
    111.     /**
    112.     * Ends recording a clip.
    113.     * This method is an alias to {@link endWidget}.
    114.     */
    115.     public function endClip()
    116.     {
    117.         $this->endWidget('CClipWidget');
    118.     }
    119.  
    120.     /**
    121.     * Begins fragment caching.
    122.     * This method will display cached content if it is availabe.
    123.     * If not, it will start caching and would expect a {@link endCache()}
    124.     * call to end the cache and save the content into cache.
    125.     * A typical usage of fragment caching is as follows,
    126.     * <pre>
    127.     * if($this->beginCache($id))
    128.     * {
    129.     *     // ...generate content here
    130.     *     $this->endCache();
    131.     * }
    132.     * </pre>
    133.     * @param string $id a unique ID identifying the fragment to be cached.
    134.     * @param array $properties initial property values for {@link COutputCache}.
    135.     * @return boolean whether we need to generate content for caching. False if cached version is available.
    136.     * @see endCache
    137.     */
    138.     public function beginCache($id,$properties=array())
    139.     {
    140.         $properties['id']=$id;
    141.         $cache=$this->beginWidget('COutputCache',$properties);
    142.         if($cache->getIsContentCached())
    143.         {
    144.             $this->endCache();
    145.             return false;
    146.         }
    147.         else
    148.             return true;
    149.     }
    150.  
    151.     /**
    152.     * Ends fragment caching.
    153.     * This is an alias to {@link endWidget}.
    154.     * @see beginCache
    155.     */
    156.     public function endCache()
    157.     {
    158.         $this->endWidget('COutputCache');
    159.     }
    160.  
    161.     /**
    162.     * Begins the rendering of content that is to be decorated by the specified view.
    163.     * @param mixed $view the name of the view that will be used to decorate the content. The actual view script
    164.     * is resolved via {@link getViewFile}. If this parameter is null (default),
    165.     * the default layout will be used as the decorative view.
    166.     * Note that if the current controller does not belong to
    167.     * any module, the default layout refers to the application's {@link CWebApplication::layout default layout};
    168.     * If the controller belongs to a module, the default layout refers to the module's
    169.     * {@link CWebModule::layout default layout}.
    170.     * @param array $data the variables (name=>value) to be extracted and made available in the decorative view.
    171.     * @see endContent
    172.     * @see CContentDecorator
    173.     */
    174.     public function beginContent($view=null,$data=array())
    175.     {
    176.         $this->beginWidget('CContentDecorator',array('view'=>$view, 'data'=>$data));
    177.     }
    178.  
    179.     /**
    180.     * Ends the rendering of content.
    181.     * @see beginContent
    182.     */
    183.     public function endContent()
    184.     {
    185.         $this->endWidget('CContentDecorator');
    186.     }
    187. }
    --- Добавлено ---
    PHP:
    1. <?php
    2. class CContentDecorator extends COutputProcessor
    3. {
    4.  
    5.     public $view;
    6.  
    7.     public $data=array();
    8.  
    9.     public function processOutput($output)
    10.     {
    11.         $output=$this->decorate($output);
    12.         parent::processOutput($output);
    13.     }
    14.  
    15.     protected function decorate($content)
    16.     {
    17.         $owner=$this->getOwner();
    18.         if($this->view===null)
    19.             $viewFile=Yii::app()->getController()->getLayoutFile(null);
    20.         else
    21.             $viewFile=$owner->getViewFile($this->view);
    22.         if($viewFile!==false)
    23.         {
    24.             $data=$this->data;
    25.             $data['content']=$content;
    26.             return $owner->renderFile($viewFile,$data,true);
    27.         }
    28.         else
    29.             return $content;
    30.     }
    31. }
    --- Добавлено ---
    PHP:
    1. <?
    2.  
    3.     $this->beginContent('//layouts/main2');
    4.  
    5.     echo $content;
    6.  
    7.     $this->endContent();
    8.  
    9. ?>