Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   создание Js окна (http://forum.typo3.ru/showthread.php?t=1833)

Tod 23.09.2006 02:02

создание Js окна
 
Тут недавно рылся в коде одного из экстеншенов (каляндаря - Cal) нашел место создания ссылки на отдельную страницу, где выводит инфа о конкретном событии... код что-то типа (если это поможет):
Код:

        function getLinkToEvent($event, $linktext, $currentView, $date) {
                /* new */
                $GLOBALS['TSFE']->ATagParams = 'title=""';
                // create the link if the event points to a page or external URL
                if($event->event_type != 0){

                        // determine the link type
                        switch ($event->event_type) {
                                // shortcut to page - create the link
                                case 1:
                                        $param = $event->page;
                                        break;
                                // external url
                                case 2:
                                        $param = $event->ext_url;
                                        break;
                        }
                       
                        // create & return the link
                       
                        $linkTSConfig['parameter'] = $param;
                        return $this->cObj->typoLink($linktext,$linkTSConfig);                       
                }               
                /* new */
                if($event->isExternalPluginEvent()){
                        return $event->getExternalPluginEventLink();
                }
                if($this->cObj->conf["view."]["event."]["isPreview"]){
                        if (!empty ($this->cObj->conf["view."]["event."]["eventViewPid"])) {
                                return $this->controller->pi_linkTP_keepPIvars($linktext, array ("page_id" => t3lib_div :: _GP("id"), "getdate" => $date, "lastview" => $this->cObj->conf['view'], "view" => "event", "type" => $event->getType(), "uid" => $event->getUid(), "preview" => 1), $this->cObj->conf['cache'], $this->cObj->conf['clear_anyway'],  $this->cObj->conf["view."]["event."]["eventViewPid"]);
                        }
                        return $this->controller->pi_linkTP_keepPIvars($linktext, array ("getdate" => $date, "lastview" => $currentView, "view" => "event", "type" => $event->getType(), "uid" => $event->getUid(), "preview" => 1), $this->cObj->conf['cache'], $this->cObj->conf['clear_anyway']);
                }
                if (!empty ($this->cObj->conf["view."]["event."]["eventViewPid"])) {
                        return $this->controller->pi_linkTP_keepPIvars($linktext, array ("page_id" => t3lib_div :: _GP("id"), "getdate" => $date, "lastview" => $this->cObj->conf['view'], "view" => "event", "type" => $event->getType(), "uid" => $event->getUid()), $this->cObj->conf['cache'], $this->cObj->conf['clear_anyway'],  $this->cObj->conf["view."]["event."]["eventViewPid"]);
                }
                return $this->controller->pi_linkTP_keepPIvars($linktext, array ("getdate" => $date, "lastview" => $currentView, "view" => "event", "type" => $event->getType(), "uid" => $event->getUid()), $this->cObj->conf['cache'], $this->cObj->conf['clear_anyway']);
        }

Итак, можно как-то вывести это все в джаваСкриптовом окне?))
Ведь pi_linkTP_keepPIvars вроде как стандартная функция (уже встречал где-то)... может там можно добавить какой-то параметр или что-то типа того)

void 23.09.2006 16:11

Использовать $this->cObj->typoLink($text,$config);
предварительно создав нужный $config.

Tod 25.09.2006 00:23

Спасибо за подсказку.... по неопытности убил целый день на эту проблему, но зато решение найдено. В общем, если кому-то надо JS окна открывать, то код приблизительно такой...
Код:

                $conf=array();
                $conf['parameter'] = "14 450x450 -";
                $conf['JSwindow_params'] = "status=0,menubar=0,scrollbars=0,resizable=0,location=0,directories=0,toolbar=0";
                $conf['additionalParams'] = "&no_cache=1&tx_cal_controller[type]=tx_cal_phpicalendar&tx_cal_controller[uid]=1&tx_cal_controller[page_id]=".t3lib_div :: _GP("id")."&tx_cal_controller[getdate]=".$date."&tx_cal_controller[lastview]=".$this->cObj->conf['view']."&tx_cal_controller[view]=event&tx_cal_controller[type]=".$event->getType()."&tx_cal_controller[uid]=".$event->getUid()."";
                return $this->cObj->typoLink($linktext, $conf);

Все подробности есть в TSref )


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

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