Да это сильно просто. А если учесть что ссылок куча и каждую в ручную прописывать - это геморой. Мне не тег, а функция нужна. умеющая определить внешнюю ссылку и вставить в нее этот тег. Движок написан на PHP
да проблема еще в том что многие внутренние ссылки начинаются с (http://) и не знаю как сделать чтобы ссылка вида ($config['home']?act=b&id=70&start=0& не считалась внешней. Спасибо, попробую прикрутить
да, работает. но и некоторые внутренние ссылки в новой вкладке открываются, столкнулся еще с проблемой... Делаю дизайн для сенсорных смартфонов. и вот touch-сылки открываются не правильно. Т.Е. и настоящая и открываемая вкладки загружают страницу указанную во внешней ссылке
Спасибо, пробую. пока что только localhost виснет - видимо какая-то переменная повторяется. и файл themes.css и functions без (http://) не инклюдятся а другим способом можно както определить ?
я не могу себе даже представить что там у вас за структура кода. зачем статические файлы как CSS инклудировать? могу дать совет: не стройте свой супер-фреймворк, пользуйтесь готовыми как Zend FW. там уже все есть, и разрабатывать можно гораздо быстрей и с улыбкой на лице
ну начал. Вообще по стандартное схеме: верхушка, тело, ноги. Имеется несколько скинов и вот эти скины иклюдятся и выбирают что на каком скине выводить. примерно так:
require_once ("../../conf/sessions.php"
require_once (DIR."conf/functions.php"
require_once (DIR."conf/header.php"
include_once (DIR."thm/".$config['themes']."/" // Папка скина ---------------------------- Тело ---------------------------- include_once ("../../thm/".$config['themes']."/foot.php"
DIR - главная сайта, задается из админки и если задать адрес без http://, то не работает оформление и конф. файлы. З.Ы. я в какомто движке видел функцию фильтрации ссылок, но не могу вспомнить в каком.
мы про РНР говорили, а скрипт на jQuery. А как Вы, Миролан, из этого скрипта в РНР-шный будете данные перебрасывать? Зачем такие сложности? Уж в самом-то РНР проще серверные переменные опросить.
и что? ссылки-то на МОЁМ проекте откуда-то берутся? Так мне будет проще их на сервере обработать, не отсылая к клиенту. И не надо будет яваскрипт (который на каком-нибудь браузере запросто заглючить может, а на смартфоне вообще не запуститься) на клиентской стороне гонять, ни времени, ни ресурсов клиентских отгрызая. Мы ж программеры, давайте ж логически рассуждать. Давайте код более эффективный и изящный создавать.
<a href="file.html" target="_blank" ....
Да это сильно просто. А если учесть что ссылок куча и каждую в ручную прописывать - это геморой.
Мне не тег, а функция нужна. умеющая определить внешнюю ссылку и вставить в нее этот тег.
Движок написан на PHP
вы хоть распишите как выглядит структура данных или небольшой пример. кто знает что там за движок? какой фреймворк итд...
нужно примерно следующее:
-----------------------------------------
$config['home'] = http://odnoklassniki.ru;
if (file.html == $config['home'])
{
echo ' <a href="file.html"> *** </a> ' ;
} else {
echo ' <a href="file.html" target="_blank"> *** </a> ' ;
}
или же вот так
function url_replace($сс) {
if( !isset($сс) ) {
return '<a href="'.$config['home'].'act=b&id=70&start=0&">'.$сс.'</a>' ;
} else {
return '<a href="'.внешняя.'" target="_blank">'.ссылка.'</a>' ;
}}
$config = array();
$config['home'] = 'index.html';
$config['test'] = 'http://odnoklassniki.ru';
foreach ($config as $key => $href) {
$target = (strpos($href, 'http://') !== false) ? '_blank' : '_self';
echo '<a href="' . $href . '" target="' . $target . '">' . $key . '</a>';
}
?>
если филтровать ссылки из контента, то здесь поможет regex или дом-объект
да проблема еще в том что многие внутренние ссылки начинаются с (http://) и не знаю как сделать чтобы ссылка вида ($config['home']?act=b&id=70&start=0&
не считалась внешней.
Спасибо, попробую прикрутить
то что я написал, работает. думаю это то что надо.
да, работает. но и некоторые внутренние ссылки в новой вкладке открываются,
столкнулся еще с проблемой... Делаю дизайн для сенсорных смартфонов. и вот touch-сылки открываются не правильно. Т.Е. и настоящая и открываемая вкладки загружают страницу указанную во внешней ссылке
<?php
$myPage = 'http://my-site.com/';
$config = array();
$config['home'] = 'index.html';
$config['test'] = 'http://odnoklassniki.ru';
$config['page'] = 'http://my-site.com/page.html';
foreach ($config as $key => $href) {
if (strpos($href, $myPage) !== false) $href = str_replace($myPage, '', $href);
$target = (strpos($href, 'http://') !== false) ? '_blank' : '_self';
echo '<a href="' . $href . '" target="' . $target . '">' . $key . '</a> ';
}
?>
думаю этого хватит. там немого попробуйте, и все получится.
Спасибо, пробую.
пока что только localhost виснет - видимо какая-то переменная повторяется. и файл themes.css и functions без (http://) не инклюдятся
а другим способом можно както определить ?
я не могу себе даже представить что там у вас за структура кода. зачем статические файлы как CSS инклудировать? могу дать совет: не стройте свой супер-фреймворк, пользуйтесь готовыми как Zend FW. там уже все есть, и разрабатывать можно гораздо быстрей и с улыбкой на лице
ну начал. Вообще по стандартное схеме: верхушка, тело, ноги. Имеется несколько скинов и вот эти скины иклюдятся и выбирают что на каком скине выводить. примерно так:
require_once ("../../conf/sessions.php"
;
require_once (DIR."conf/functions.php"
;
require_once (DIR."conf/header.php"
;
include_once (DIR."thm/".$config['themes']."/"
; // Папка скина
;
----------------------------
Тело
----------------------------
include_once ("../../thm/".$config['themes']."/foot.php"
DIR - главная сайта, задается из админки и если задать адрес без http://, то не работает оформление и конф. файлы.
З.Ы. я в какомто движке видел функцию фильтрации ссылок, но не могу вспомнить в каком.
А вообще огромное спасибо. кое как прикрутил ваши фильтры и вроде то что нужно работает.
если ещё жёсткую $myPage = ... заменить на $_SERVER['SERVER_NAME'] - вообще универсальненько будет....
мы про РНР говорили, а скрипт на jQuery. А как Вы, Миролан, из этого скрипта в РНР-шный будете данные перебрасывать? Зачем такие сложности? Уж в самом-то РНР проще серверные переменные опросить.
и что? ссылки-то на МОЁМ проекте откуда-то берутся? Так мне будет проще их на сервере обработать, не отсылая к клиенту. И не надо будет яваскрипт (который на каком-нибудь браузере запросто заглючить может, а на смартфоне вообще не запуститься) на клиентской стороне гонять, ни времени, ни ресурсов клиентских отгрызая. Мы ж программеры, давайте ж логически рассуждать. Давайте код более эффективный и изящный создавать.