Как поместить одну функцию в другой?

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
426
Реакции
444
Всем привет! Имею php скрипт.

Есть две функции. Одна определяет правую колонку сайта и ее содержимое (функция1). вторая эта кнопка (функция 2). Как мне поместить содержимое функции 2 в функцию 1?

Функция 1
Код:
function sidepanel()
        {
            $this->output('<div class="king-sidepanel">');
            $this->nav_user_search();
            $this->widgets('side', 'top');
            $this->sidebar();
            $this->widgets('side', 'high');
            $this->nav('cat', 1);
            $this->widgets('side', 'low');
            $this->output_raw(@$this->content['sidepanel']);
            $this->feed();
            $this->widgets('side', 'bottom');
            $this->output('<script src="'.$this->rooturl.'sticky.js"></script>');           
            $this->output('</div>', '');
        }

Функция 2

Код:
function kingsubmit()   
        {
        $this->output('<li>');
        $this->output('<div class="king-submit">');       
        $this->output('<div class="kingadd">Add</div>');
        $this->output('<div class="king-dropdown2">');
        $this->output('<div class="arrow"></div>');
        if (qa_opt('nav_ask')) {
        $this->output('<a href="'.qa_path_html('ask').'" class="kingaddimg">Image</a>');
        }
        if (qa_opt('nav_unanswered')) {   
        $this->output('<a href="'.qa_path_html('video').'" class="kingaddvideo">Media</a>');
        }
        $this->output('</div>');       
        $this->output('</div>');
        $this->output('</li>');
        }

Если я делаю так
Код:
function sidepanel()
        {
            $this->output('<li>');
        $this->output('<div class="king-submit">');       
        $this->output('<div class="kingadd">Add</div>');
        $this->output('<div class="king-dropdown2">');
        $this->output('<div class="arrow"></div>');
        if (qa_opt('nav_ask')) {
        $this->output('<a href="'.qa_path_html('ask').'" class="kingaddimg">Image</a>');
        }
        if (qa_opt('nav_unanswered')) {   
        $this->output('<a href="'.qa_path_html('video').'" class="kingaddvideo">Media</a>');
        }
        $this->output('</div>');       
        $this->output('</div>');
        $this->output('</li>');
            $this->output('<div class="king-sidepanel">');
            $this->nav_user_search();
            $this->widgets('side', 'top');
            $this->sidebar();
            $this->widgets('side', 'high');
            $this->nav('cat', 1);
            $this->widgets('side', 'low');
            $this->output_raw(@$this->content['sidepanel']);
            $this->feed();
            $this->widgets('side', 'bottom');
            $this->output('<script src="'.$this->rooturl.'sticky.js"></script>');           
            $this->output('</div>', '');
        }
то кнопка переноситься но не работает((
 
тут судить сложно. не работает что? где можно глянуть пример? и как должно работать? функции - это методы одного объекта или разных? как они исполняются? последовательно? изначально кнопка идет ДО элемента списка, или ПОСЛЕ, в каких файлах? как вызываются? У Вас не работает javascript? или появляется ошибка php? По верстке на первый взгляд есть следующая проблема: у Вас будет кнопка дублироваться много раз при таком подходе. Вы после каждого элемента ненумерованного списка <li> вставляете Вашу кнопку. А надо как минимум после закрытия списка </ul> вставлять. Или в определенном элементе <li> это делать. Но пока что понять сложно, что у Вас происходит-)
 
Ошибок нет. Кнопка не работает. Т.е. ничего не происходит при нажатии. Сайт на локальном сервере.
Вот файлик. Может яснее будет. Строки 469 и 891
 

Вложения

  • king-theme.rar
    12,1 KB · Просмотры: 5
Вам яснее станет, когда код страницы глянете, у вас функции выводят код в разные секции, из этого следует что код не на своих местах
 
Не понял?) Код работает верно. Сайт работает исправно. Вы про какой код говорите?
 
Не понял?) Код работает верно. Сайт работает исправно. Вы про какой код говорите?
Исходный код страницы посмотрите, думаю там будет видно. Вы же в классе видите что вызовы функций происходят в разных местах и далее вставляются в разные секции страницы. Как написали выше идет не верная очередность отработки кода методов.
 
может так?

function sidepanel()
{
$this->output('<div class="king-sidepanel">');
$this->nav_user_search();
$this->widgets('side', 'top');
$this->sidebar();
$this->widgets('side', 'high');
$this->nav('cat', 1);
$this->widgets('side', 'low');
$this->output_raw(@$this->content['sidepanel']);
$this->feed();
$this->widgets('side', 'bottom');
$this->output('<script src="'.$this->rooturl.'sticky.js"></script>');
$this->output('</div>', '');

$this->kingsubmit();
}
 
Назад
Сверху