[phpBB Debug] PHP Notice: in file /viewtopic.php on line 945: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead
[phpBB Debug] PHP Notice: in file /viewtopic.php on line 945: getdate(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Helsinki' for 'EEST/3.0/DST' instead
BREN forums • View topic - Линковете в нов прозорец?
Page 1 of 1

Линковете в нов прозорец?

PostPosted: 24 Jul 2009, 20:51
by kalin
Малко е неудобно според мен линковете навън да се отварят в същия прозорец, ососбено за постове с много линкове. Дали ако и останалите мислят така може да се направи да се отварят в нов? Така беше в Phpbb 2, после го развалиха в 3, но с малко промени по кода (които ги има из Интернет) се оправя :)

Re: Линковете в нов прозорец?

PostPosted: 24 Jul 2009, 23:12
by atanas
Съгласен съм с теб! Покрай SMF (форума на ПУ) свикнах линковете в постовете да се отварят в нов прозорец. Тук често кликвам и после давам back. :)

Re: Линковете в нов прозорец?

PostPosted: 25 Jul 2009, 11:55
by vesso
Отварянето на нов прозорец при следване на хипервръзка в този форум, не е възможно да стане в изходния код на форума, без използването на външен скрипт език. Причината е, че генерираният от форума браузърски код е XHTML 1.0 Strict. В XHTML (не само в 1.0, но и в 1.1), не е възможно да се следва URL в нов прозорец. Причината е дизайна на XHTML езика (повече подробности на http://www.w3.org). За разлика от HTML, в него не се поддържа target="_blank".

Единственият начин за отварянето на нов прозорец при следване на URL в този форум, е използването на JavaScript функция. Има един куп аргументи против влагането на подобна функционалност. Да, вярно е, че и без това форума е пълен с JavaScript, но на коцептуално ниво, използваните тук функции, не влизат в противоречия с новите концепции за сигурност в браузърите (или поне не в големи противоречия). Операцията "отваряне на прозорец от JavaScript функция" (pop-up) в новите браузъри и моделите им за сигурност, е маркирана като критична. Най-малкото тя създава нов ресурс на приложно ниво, като създаването е иницирано с параметри подавани отвън, а специалистите по сигурност на приложения могат да ви изнесат ужасяващи факти за дупките, които такъв процес би могъл да отвори. Както в браузърите на Фондация Мозила, така и в тези на Майкрософт (последните версии), за отварянето на нов прозорец за следване на URL, се изисква изрично разрешение от потребителя в диалогово меню. Това никак не е случайно - производителят на софтуера пази потребителя от често допускани грешки с фатални последици. Забележете, че водещите компании в web програмирането, например Google и Yahoo, почти не използват отваряне на нови прозорци в продуктите си.

Освен това нека видим какъв ще е публичният ефект от въвеждането на отварянето на хипервръзки в нов прозорец. Идва нов потребител. Иска да следва URL пуснат от нас. Натиска върху връзката. Появява му се съобщение, че следва "pop-up" и потребителя не желае да продължи, защото вярва повече на създателите на браузъра си, отколкото на създателите на документа, в който е JavaScript функцията. Така правим форума неизползваем.

Съгласно новите концепции в web приложенията, следването на URL от потребителя би следвало да бъде индивидуална за него операция. Какво означава това? Това означава, че потребителят, а не web програмиста, следва да избере как да се следват URL. Тази концепция е заложена широко в новите браузъри. Всъщност т.нар. "Tab" функция на браузъра е точно проява на тази нова концепция. Моля, отбележете, че когато застанете с курсора върху URL и натиснете с десния бутон на мишката, се появява меню, в което можете да избирате как да се следва хипервръзката - дали да се отвори в нов "Tab" или да се отвори в нов прозорец. Всеки съвременен браузър позволява тази операция да се прави бързо с кратки клавишни комбинации или със "средния" бутон на мишката. При това е изключително лесно и нересурсоемко.

Моят цел е не да се заяждам или противопоставям, а да ви помогна да не правите нещо, което ще вложи качеството и концепцията на форума. Този форум се чете доста, макар и чрез RSS, а не с директни посещения. В RSS JavaScript може и да се чупи, защото ако функцията е декларирана в заглавната част на HTML/XHTML документа, а в CDATA на RDF документа (чрез който се достъпва RSS емисията) няма и заглавната част, а това е най-честия случай, функцията за отваряне на нов прозорец не само няма да работи, а може и да създава проблеми.

Произвеждайте лесно достъпно съдържание, позволяващо повече намеса на потребителя. Това са съвремените концепции за web програмиране. Старите концепции се провалиха и поради това се появиха новите.

Re: Линковете в нов прозорец?

PostPosted: 25 Jul 2009, 12:29
by vesso
Само да допълня. Работната група за CSS3 предвижда подобна възможност за отваряне на нов прозорец:

http://www.w3.org/TR/css3-hyperlinks/#target0

но предвид новите концепции, това е по-скоро екзотика и даже не е ясно ще влезе ли във финалната версия на CSS3 или не.

Re: Линковете в нов прозорец?

PostPosted: 26 Jul 2009, 22:13
by iliev
Весо, сърдечно ти благодаря, че ми спести необходимостта аз да давам отговор. :beer:

Иначе, отговорът се съдържа също и в Knowledge Base на phpBB3: http://www.phpbb.com/kb/article/links-o ... w-windows/

Както се вижда, не е трудно да се направи промяната, но действително, бих се въздържал засега -- все пак е хубаво да се спазват стандартите.