За последние 24 часа нас посетили 90479 программистов и 5662 робота. Сейчас ищет 2571 программист ...

PHP 5.3 до PHP 5.6

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

  1. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Ты когда решаешь что опубликовать у стеклянного шара совет спрашиваешь? :D Ты в нотпаде нашел вхождения в одних файлах а по запросу исходников вдруг даешь какие-то другие.
     
    Johhny нравится это.
  2. Johhny

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

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    PHP:
    1. <?php
    2. class COutputProcessor extends CFilterWidget
    3. {
    4.     public function init()
    5.     {
    6.         ob_start();
    7.         ob_implicit_flush(false);
    8.     }
    9.     public function run()
    10.     {
    11.         $output=ob_get_clean();
    12.         $this->processOutput($output);
    13.     }
    14.  
    15.     public function processOutput($output)
    16.     {
    17.         if($this->hasEventHandler('onProcessOutput'))
    18.         {
    19.             $event=new COutputEvent($this,$output);
    20.             $this->onProcessOutput($event);
    21.             if(!$event->handled)
    22.                 echo $output;
    23.         }
    24.         else
    25.             echo $output;
    26.     }
    27.     public function onProcessOutput($event)
    28.     {
    29.         $this->raiseEvent('onProcessOutput',$event);
    30.     }
    31. }
    --- Добавлено ---
    Надо было уточнять какие :D
    --- Добавлено ---
    Они слишком большие что-бы кинуть их тут...
    Говори точнее, я скину...
     
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Слишком большие файлы можно через различные пейстбины передать. Те файлы, в которых ты нашел вхождение строки бакс-сабытемс
     
    Johhny нравится это.
  4. Johhny

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

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
  5. Johhny

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

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    $subitems - встречается лишь в двух файлов. Первый который Menu.php а второй SiteController.php, я его кинул выше...
    Не знаю вообщем как решить...
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.213
    Симпатии:
    1.711
    Адрес:
    Молдова, г.Кишинёв
    https://php.ru/forum/threads/php-5-3-do-php-5-6.58960/#post-474212
    ошибка в файле Monitors.php и других,
    например ты дал исходник FrapsyNavbar.php тут https://php.ru/forum/threads/php-5-3-do-php-5-6.58960/#post-474223
    там сразу видна возможная ошибка:
    PHP:
    1. $val[items]
    константа items не объявлена и возможно имелось ввиду

    PHP:
    1. $val['items']
    вот таких ошибок много, имена ключей массива передаются как константы, а не строки
     
    Johhny нравится это.
  7. 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']]);
    Вроде всё правильно. А в SiteController встречается $subitems как:
    PHP:
    1. $subitems = array();
    И это пустой массив и всё больше в него ничего не записывается
     
  8. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.178
    Симпатии:
    161
    Адрес:
    GABRIEL
    У тебя в этой строчке ошибка ? Если да раскинь массив по строчно вот так.
    PHP:
    1. $items[$val['id']] = array(
    2.    'id'=>$val['id'],
    3.    'label'=>$val['label'],
    4.    'url'=>$val['url'],
    5.    'items'=>$subitems[$val['id']]
    6. );
    И в которой, у тебя ошибка, значит у тебя просто нет такого ключа в массиве, значит где то до где ты клал этот ключ у тебя вот тоже самое

    PHP:
    1. $val[items]
    Дебаж код. Вставляй echo выводи переменные смотри, что показывает php дебаг.

    Если у тебя не существует или же не объвлена какая то переменна, то он тебе скажет об этом, а там смотри по логике. Возьми сначала где у тебя стартует код, и поехал строчка за строчкой, что куда к чему видёт, следуй логике написаного тобой алгоритма выполнения. И ищи где ошибся, я так часто делаю, когда не могу понять откуда вылезла то или другое. Но правда я пользуюсь для этого x-debug им намного быстрее отладить код на ошибки.
     
    Johhny нравится это.
  9. Johhny

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

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Всё так-же сайт ругается на $subitems, а особенно на эту строчку:
    PHP:
    1. 'items'=>$subitems[$val['id']]
    $val[items] был лишь в одном файле, и был он без кавычек, вот как-то так стало:
    PHP:
    1.     protected function renderMenu($items) {
    2.         echo '<div class="icons"><ul>';
    3.         foreach($items as $val) {
    4.             if(isset($val['items'])) {
    5.                 echo '<li><a href="#">'.$val['label'].'</a>';
    6.                 echo '<ul>';
    7.                 foreach($val[items] as $sub) {
    8.                     if(!preg_match('/(http|https)/',$sub['url']))
    9.                         echo '<li><a href="'.Yii::app()->baseUrl.$sub['url'].'">'.$sub['label'].'</a></li>';
    10.                     else
    11.                         echo '<li><a href="'.$sub['url'].'">'.$sub['label'].'</a></li>';
    12.                 }
    13.                 echo '</ul></li>';
    14.             } else {
    15.                 if(!preg_match('/(http|https)/',$val['url']))
    16.                     echo '<li><a href="'.Yii::app()->baseUrl.$val[url].'">'.$val['label'].'</a></li>';
    17.                 else
    18.                     echo '<li><a href="'.$val['url'].'">'.$val['label'].'</a></li>';
    19.             }
    20.         }
    21.         echo '</ul></div>';
    22.     }
    23. }
     
  10. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.870
    Симпатии:
    955
    Просто объяви эту переменную перед циклом.
     
    Johhny нравится это.
  11. Johhny

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

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    PHP:
    1.     public static function getMenuItems() {
    2.  
    3.         $menu = self::model()->findAll(array('order'=>'parent_id DESC, id'));
    4.  
    5.         if($menu !== null) {
    6.  
    7.             $items = array();
    8.             $subitems = array();//добавил
    9.  
    10.             foreach($menu as $val) {
    11.  
    12.                 if($val['parent_id']) {
    13.  
    14.                     if($val['label'] !== 'divider')
    15.  
    16.                         $subitems[$val['parent_id']][] = array('id'=>$val['id'],'label'=>$val['label'],'url'=>$val['url']);
    17.  
    18.                     else
    19.  
    20.                         $subitems[$val['parent_id']][] = array('id'=>$val['id'],'class'=>$val['label']);
    21.  
    22.                 } else {
    23.  
    24.                     $items[$val['id']] = array(
    25.                         'id'=>$val['id'],
    26.                         'label'=>$val['label'],
    27.                         'url'=>$val['url'],
    28.                         'items'=>$subitems[$val['id']]
    29.                     );
    30.  
    31.                 }
    32.  
    33.             }
    34.  
    35.             return $items;          
    Вот что сейчас:
    [​IMG]
    --------Update---------
    Это массив, а мне нужна переменная, тупанул...
    -------Update---------
    Добавил
    PHP:
    1. $subitems = NULL;
    Вроде та ошибка исчезла, теперь появилась новая, но хотя-бы первоначальная страница загружается)
     
    #36 Johhny, 23 июн 2016
    Последнее редактирование: 23 июн 2016
  12. Johhny

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

    С нами с:
    7 авг 2015
    Сообщения:
    34
    Симпатии:
    0
    Всё работает, спасибо всем :3