Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Ссылка на сторонний сайт для отдельного пункта графического меню с передачей по POST (http://forum.typo3.ru/showthread.php?t=9769)

Anlov 26.10.2011 12:52

Ссылка на сторонний сайт для отдельного пункта графического меню с передачей по POST
 
привет.
есть меню:
Код:

lib.topmenu = HMENU
lib.topmenu {
        special = list
        special.value = 90,91,92,93,94,96
          1 = GMENU
        1 {
                noBlur = 1
                No = 1
                NO {
                        imgParams = width="32"
                        imgParams = height="32"
                        imgParams = border="0"
                        altImgResource.import = uploads/media/
                        altImgResource.import.field = media
                        altImgResource.import.listNum = 0
                        subst_elementUid = 1
                        linkWrap = <div class="div_extra_menu_item">|</div>
                }
                ACT = 1
                ACT {
                        imgParams = width="32"
                        imgParams = height="32"
                        imgParams = border="0"
                        altImgResource.import = uploads/media/
                        altImgResource.import.field = media
                        altImgResource.import.listNum = 1
                        subst_elementUid = 1
                        linkWrap = <div class="div_extra_menu_item">|</div>
                        doNotShowLink = 1
                }
        }
}

как мне на пункт меню 91 прикрутить ссылку на чужой сайт, с передачей по этой ссылке данных по POST? Нужно, чтобы пользователь, нажав на ссылку, попадал на другой сайт и автоматически там логинился.

dmartynenko 26.10.2011 13:14

POST по ссылке? Прямо к сожалению никак, HTTP протокол такого не поддерживает.

Есть вариант POST через HTTP Redirect, но со своими минусами и заморочками.

http://stackoverflow.com/questions/4...instead-of-get
http://otvety.google.ru/otvety/threa...77c3a4ec5fc44c

Anlov 26.10.2011 13:30

Цитата:

POST по ссылке? Прямо к сожалению никак, HTTP протокол такого не поддерживает.
это понятно. а если сделать именно эту картинку (этот пункт) в меню кнопкой формы, тогда можно бы было хоть что передать, а не только логин и пароль FE_user.
То есть на этот пункт меню надо повесить просто свой HTML код, насколько я сейчас это себе представляю. А как?

dmartynenko 26.10.2011 13:52

Если вы на страниче сделаете скрытую форму, где в action=".." будет url стороннего сайта, а по JS на нажатие пункта меню будет обработчик onclick="my_hidden_form.submit(); return false;" то что-то может получиться. В полях скрытой формы добавите параметры логин, пароль и т.п.

Только, судя упоминаниям в интернете, при таком сабмите на сторонний сайт некоторые броузеры (например, Opera) могут выдавать окно предупреждения.

А специфический пункт меню можно разместить и без использования HMENU, например если он у вас 92 так:
Код:

lib.topmenu = COA
lib.topmenu.1 = HMENU
lib.topmenu.1 {
  special.value = 90,91
  ...
}
lib.topmenu.2 = HTML
lib.topmenu.2.value = хитрая ссылка
lib.topmenu.3 < lib.topmenu.1
lib.topmenu.3 {
  special.value = 93,94,96
}


Anlov 26.10.2011 14:14

Цитата:

Если вы на страниче сделаете скрытую форму, где в action=".." будет url стороннего сайта, а по JS на нажатие пункта меню будет обработчик onclick="my_hidden_form.submit(); return false;" то что-то может получиться. В полях скрытой формы добавите параметры логин, пароль и т.п.

Только, судя упоминаниям в интернете, при таком сабмите на сторонний сайт некоторые броузеры (например, Opera) могут выдавать окно предупреждения.
- это тоже известно. Все дело как раз в том, что сразу по нажатию на одну из кнопок меню, которое состоит из картинок (GMENU), должен происходить редирект с передачей логина и пароля FE пользователя, без загрузки какой-либо другой страницы. Т.е. нажал - и, вуаля, ты на другом сайте и уже залогинился.

Цитата:

А специфический пункт меню можно разместить и без использования HMENU, например если он у вас 92 так:
Код:
Код:

lib.topmenu = COA
lib.topmenu.1 = HMENU
lib.topmenu.1 {
  special.value = 90,91
  ...
}
lib.topmenu.2 = HTML
lib.topmenu.2.value = хитрая ссылка
lib.topmenu.3 < lib.topmenu.1
lib.topmenu.3 {
  special.value = 93,94,96
}


не, нужны картинки...

dmartynenko 26.10.2011 14:23

И в чем вопрос? onclick работает и на <img> тоже, картинки можно завернуть в <a onclick="..."></a>

Если происходит submit формы, то пользователь сразу оказывается на странице указанной в action формы. Тут вообще нет редиректа, просто переход на указанный URL с передачей параметров формы.

Anlov 26.10.2011 14:44

Сорри, вопрос в том, что я не знаю, как это сделать только для одной картинки-пункта меню из шести...
Как-то я тяжко сегодня объясняю... :confused:

dmartynenko 26.10.2011 14:57

Как-то так:

Вариант 1:
В TS:
Код:

lib.topmenu.1.NO.linkWrap = <div class="div_extra_menu_item" id="menu-item-{elementUid}">|</div>
В JS, с использованием jQuery, XX заменить на ID нужной страницы:
Код:

$('#menu-item-XX a').click(function() {
  $('#my-hiddden-form').submit();
});

Вариант 2:
Разбить меню на три части через COA, одна из которых состоит из единственного нужного пункта меню. Добавить для нее
Код:

lib.topmenu.X.1.NO.ATagParams = onclick="..."
Если бы ATagParams имел stdWrap, то можно было бы добавить в него через TS условия.

Anlov 26.10.2011 15:03

Спасибо, сейчас попробую.

Anlov 26.10.2011 20:18

мдa, не выходит каменный цветок... а казалось, что все так просто.
подключаю javascript, прямо в шаблоне уже нарисовал форму.
по клику на менюшке совершается переход на страницу с id=91.


Часовой пояс GMT +4, время: 21:50.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot