1

Тема: Навигация в расширениях

Создаю для себя расширение. Меня интересует вопрос: как сделать в расширении ссылку вида mysite.com/mypage?act=about
То есть я хочу в созданной странице, сделать подразделы этой страницы с помощью расширения.
В integration_page.dat я написал примерно следующее:

<?php
if(isset($_GET['act'])){$act = $_GET['act'];}elseif(isset($_POST['act'])){$act = $_POST['act'];}else{$act='index';}
function photo_menu(){
    if($act=='about')
    {echo'hello world!';}
}
$return = photo_menu();

return $return;
?>

Но не работает
Админ, надеюсь на твою помощь)

2

Re: Навигация в расширениях

Есть массив $URL, каждый индекс массива это фрагмент адреса по которому открылась страница. Пример если перейти по адресу mysite.com/mypage/about/test то значения $URL будут такие

echo $URL[1]; // Выведет mypage
echo $URL[2]; // Выведет about
echo $URL[3]; // Выведет test

Исходя из этого подразделы для модуля можно создать так : в файле модуля integration_page.php

<?php
if($URL[2] == 'about'){
// Страница mysite.com/mypage/about
}elseif($URL[2] == 'setting'){
// Страница mysite.com/mypage/setting
}else{
// Страница mysite.com/mypage
}
?>

3

Re: Навигация в расширениях

Большое спасибо. А дополнительные глобальные файлы подключать нужно?

4

Re: Навигация в расширениях

нет. При выполнении файл integration_page.dat подключается к index.php , а там уже все нужное есть

5

Re: Навигация в расширениях

Сделал так:

<?php
function photo_menu(){
if($URL[2] == 'about'){echo 'hello world!';}
}
$return = photo_menu();

return $return;
?>

Но ничего не выходит.

6

Re: Навигация в расширениях

главное что файл integration_page.dat должен чтото возвращать конструкцией return , если окажется что ничего возвращать ненадо то пишите так :

 return "";

7

Re: Навигация в расширениях

<?php
function photo_menu(){
global $URL;
if($URL[2] == 'about'){return 'hello world!';}
}
$return = photo_menu();

return $return;
?>

Создавая функции вы создаете новую область видимости , если нужно чтобы в новую область видимости что-то попадало из вне, то используйте конструкцию global.
И еще , никакие echo в integration_page.dat быть не должно , только return

8 (2017-05-13 20:48:10 отредактировано Davides)

Re: Навигация в расширениях

Понял, спасибо, сейчас попробую

9

Re: Навигация в расширениях

Все работает. Спасибо за помощь, если что то интересное получится, выложу сюда)

10

Re: Навигация в расширениях

ок

11

Re: Навигация в расширениях

А почему когда я подключаю файл вот так:

<?php
function photo_menu(){
global $URL;
if($URL[2] == 'about'){return require('about.dat');}
}
$return = photo_menu();

return $return;
?>

Содержимое файла about.dat выводится в самом верху сайта, а не интегрировано в страницу?

12

Re: Навигация в расширениях

<?php
function photo_menu(){
global $URL;
if($URL[2] == 'about'){return file_get_contents ('about.dat');}
}
$return = photo_menu();

return $return;
?>

13 (2017-05-15 23:09:33 отредактировано Davides)

Re: Навигация в расширениях

Спасибо.
Есть еще один момент. Хочу в каждой категории так же менять keywords и description. Делаю так:

<?php
function photo_menu(){
global $URL;
global $page;
if($URL[2] == 'about')
{
return file_get_contents ('about.dat');
return $page->keywords = 'информация о нас';
}
}
$return = photo_menu();

return $return;
?>

Но не меняется. Остается keywords из $URL[1].

14

Re: Навигация в расширениях

<?php
function photo_menu(){
    global $URL, $page;
    if($URL[2] == 'about')
    {
       $page->keywords = 'информация о нас';
       return file_get_contents ('about.dat');
    }
}
$return = photo_menu();

return $return;
?>