1 (03.05.2012 12:30 отредактировано zevilz13)

Тема: Добавление своего action в profile.php [решено]

Мне необходимо создать страницу в profile.php, которая будет доступна всем включая гостей.
При входе на страницу ссылка ее должна быть в виде

my.site/forums/profile.php?action=subscribeg

может так же принимать вид

my.site/forums/profile.php?action=subscribeg&subaction=*

Добавил код в profile.php сразу после секции if ($action == 'change_pass') {...}

else if ($action == 'subscribeg')
{

    // Setup breadcrumbs
    $forum_page['crumbs'] = array(
        array($forum_config['o_board_title'], forum_link($forum_url['index'])),
        $my_new_page)
    );

    ($hook = get_hook('pf_subscribeg_normal_pre_header_load')) ? eval($hook) : null;

    define('FORUM_PAGE', 'subscribeg');
    require FORUM_ROOT.'header.php';

    // START SUBST - <!-- forum_main -->
    ob_start();

    ($hook = get_hook('pf_subscribeg_normal_output_start')) ? eval($hook) : null;

?>
    <div class="main-head">
        <h2 class="hn"><span><?php echo $forum_page['own_profile'] ? $lang_profile['Change your password'] : sprintf($lang_profile['Change user password'], forum_htmlencode($user['username'])) ?></span></h2>
    </div>
    <div class="main-content main-frm">
<?php

    // If there were any errors, show them
    if (!empty($errors))
    {
        $forum_page['errors'] = array();
        foreach ($errors as $cur_error)
            $forum_page['errors'][] = '<li class="warn"><span>'.$cur_error.'</span></li>';

        ($hook = get_hook('pf_subscribeg_pre_errors')) ? eval($hook) : null;

?>
        <div class="ct-box error-box">
            <h2 class="warn hn"><?php echo $lang_profile['Change pass errors'] ?></h2>
            <ul class="error-list">
                <?php echo implode("\n\t\t\t\t", $forum_page['errors'])."\n" ?>
            </ul>
        </div>
<?php

    }

?>
    <div id="my_content">My content</div>
    </div>
<?php

    ($hook = get_hook('pf_subscribeg_end')) ? eval($hook) : null;

    $tpl_temp = forum_trim(ob_get_contents());
    $tpl_main = str_replace('<!-- forum_main -->', $tpl_temp, $tpl_main);
    ob_end_clean();
    // END SUBST - <!-- forum_main -->

    require FORUM_ROOT.'footer.php';
}

Вижу ошибку:

Неверный запрос. Ссылка, по которой вы пришли, неверна или устарела.

Пробовал прописать subscribeg в forum_urls.php во всех папках в папке forums/include/url - без изменений.
Ранее добавил новую секцию в профиль пользователя примерно тем же способом, отлично работает, а action - нет. В чем моя ошибка?

Поделиться

2 (29.04.2012 10:44 отредактировано zevilz13)

Re: Добавление своего action в profile.php [решено]

Немного упростил - разницы нет. На my.site/forums/profile.php?action=subscribeg зайти не могу
include/url/Default/forum_urls.php

    'subscribeg'                =>    'profile.php?action=subscribeg',

include/url/File_based/forum_urls.php

    'subscribeg'                =>    'subscribeg.html',

File_based_(fancy)

    'subscribeg'                =>    'subscribeg.html',

Folder_based

    'subscribeg'                =>    'subscribeg/',

Folder_based_(fancy)

    'subscribeg'                =>    'subscribeg/',

Поделиться

3

Re: Добавление своего action в profile.php [решено]

я думаю ваша ошибка в

$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id < 2)
    message($lang_common['Bad request']);

не заметил у вас в ссылке id

Добавлено спустя 5 минут 35 секунд:

при написании подобного включайте дебаг мод, чтобы он показывал ошибки и запросы sql. и анализируйте их.

а вообще правильно не лезть в ядро, а писать расширения.

(Please log in or register to see this URL) | Перед созданием темы => (Please log in or register to see this URL) | (Please log in or register to see this URL)

Сайт KANekT

Поделиться

4 (29.04.2012 20:39 отредактировано zevilz13)

Re: Добавление своего action в profile.php [решено]

а как обойтись без него? мне он не нужен. Так как эта страница для гостей

Поделиться

5

Re: Добавление своего action в profile.php [решено]

zevilz13 пишет:

а как обойтись без него? мне он не нужен. Так как эта страница для гостей

Вы объяснили что делаете, может вы вообще варите кашу из топора.

(Please log in or register to see this URL) | Перед созданием темы => (Please log in or register to see this URL) | (Please log in or register to see this URL)

Сайт KANekT

Поделиться

6

Re: Добавление своего action в profile.php [решено]

на сайте у меня интеграция с форумом. В профиле пользователя у меня добавлена секция подписки на новости сайта для зарегистрированных пользователей. Хочу сделать еще и страничку для гостей на основе profile.php, на которую будут заходить пользователи по ссылке на сайте. Для этого хочу добавить action subscribeg. id мне как бы вообще не нужен. Хотя если гость - это id=1, то можно и использовать id, но profile.php заблокирован для id=1. Вот и думаю как сделать это

Поделиться

7

Re: Добавление своего action в profile.php [решено]

Почему на основе страницы профиля?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

8 (30.04.2012 15:05 отредактировано zevilz13)

Re: Добавление своего action в profile.php [решено]

Хочется в стиле подписки зарегистрированных пользователей

Добавлено спустя 13 минут 51 секунду:

Вроде заработало:) Поправил код:

$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id < 2)
    message($lang_common['Bad request']);

$errors = array();

на

$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($action != "subscribeg") {
if ($id < 2)
    message($lang_common['Bad request']);

$errors = array();}
else {
if ($id != 1)
    message($lang_common['Bad request']);

$errors = array();
}

Только сейчас ссылка

my.site/forums/profile.php?action=subscribeg&id=1

В принципе, как раз доступна только для гостей

Поделиться

9

Re: Добавление своего action в profile.php [решено]

Сделал по другому.
зарегистрированные пользователи переходят по ссылке:

http://kenny.zz/forums/profile.php?section=subscribe&id=<id пользователя>

гости:

http://kenny.zz/forums/profile.php?section=subscribe&id=1

Поделиться

10 (30.04.2012 17:04 отредактировано Dima)

Re: Добавление своего action в profile.php [решено]

А если вообще по другому: ссылка будет доступна всем по адресу profile.php?section=subscribe

В место

if ($id < 2)
    message($lang_common['Bad request']);
if ($id < 2)
{
    if ($action == "subscribeg")
        $id = '1';
    else
        message($lang_common['Bad request']);
}

Поделиться

11

Re: Добавление своего action в profile.php [решено]

**********
В связи с ликвидацией часового подразделения фирмы - СУПЕР ПРЕДЛОЖЕНИЕ - (Please log in or register to see this URL) - мужские механические брендовые часы WEIGUAN с часовым механизмом высшего класса с автоподзаводом

Эти деловые часы ВЕГАН настящий хит сезона! Низкие цены. Ускоренная доставка. Гарантия настоящего качества!

Закажите часы ВЕГАН прямо сегодня - (Please log in or register to see this URL)

^^^^^^^^^^

Поделиться

12

Re: Добавление своего action в profile.php [решено]

**********
В связи с распродажей оптового склада - СУПЕР ПРЕДЛОЖЕНИЕ - (Please log in or register to see this URL) - мужские механические дизайнерские часы WEIGUAN с часовым механизмом с подзаводом

Эти брендовые часы ВЕГАН реальный хит сезона! Реальные цены. Ускоренная доставка. Гарантия высшего качества!

Закажите часы WEIGUAN прямо сегодня - (Please log in or register to see this URL)

^^^^^^^^^^

Поделиться

13

Re: Добавление своего action в profile.php [решено]

Предлагаем приобрести мелким и крупным оптом сумки (Please log in or register to see this URL) , которые нашей компанией доставляются в любые регионы России. Мы реализуем сумки собственного производства. Нацелены на крупный товарооборот, при этом неизменно предлагаем покупателям качественную продукцию и максимально возможный ассортимент. 
(Please log in or register to see this URL)

Поделиться

14

Re: Добавление своего action в profile.php [решено]

Компания Реал работает на российском рынке кожгалантерейной продукции начиная с 2000 года. Работа осуществляется с физическими и юридическими лицами. Мы специализируемся на изготовлении и продаже мужских и спортивных сумок (Please log in or register to see this URL) , которые реализуются мелким и крупным оптом. Нами налажены бесперебойные поставки товара, при этом мы предлагаем нашим клиентам полный ассортимент такой продукции.
(Please log in or register to see this URL)

Поделиться