PDA

Zobacz pełną wersję : joomla 1.0.8 problem z linkami



peetros
13-03-2006, 11:03
Witam
mam problem z odnośnikami w joomla 1.0.8. Nie wiem dlaczego, ale joomla przed zdefiniowanymi przeze mnie linkami w artykułach dodaje adres domeny. Spróbuję bardziej obrazowo:)
utworzyłem w treści artykułu link do pliku (z linkami do stron jest wszystko ok) zaczynający się od "file://sciezka_dostepu", w bazie danych jest wszystko ok, czyli występuje "<a href="file://...">", na stronie na pasku przeglądarki pojawia się jednak adres: "http://www.adresstrony.pl/file://sciezka_dostepu".
A więc kilka pytań:
jaka może być tego przyczyna?
jak to zmienić?
spotkał się ktoś z podobnym problemem?

Pozdro,
Peetros:cool:

Dylek
13-03-2006, 11:28
A dodajesz linki w postaci http://www.costam.pl czy tylko www.costam.pl ?

peetros
13-03-2006, 11:40
to są linki do plików znajdujących się na dodatek na innym dysku sieciowym, zaczynam od "file://".
w joomla 1.0.3 wszystko działało ok

kosa
13-03-2006, 12:12
Ja ma ten sam problem w joomli 1.0.8 wczesniej nie mialem.
Mam edytor MosCe i obojetnie jak wpisze http://nazwa.pl czy http://nazwa.pl/ to dodaje mi na poczatku adres mojej domeny

peetros
13-03-2006, 13:34
Hm... a co się stanie jak umieścisz przed nazwą "www"?

kosa
13-03-2006, 13:37
Jest to samo obojetnie czy jest www czy bez.
Wydaje mi sie, ze jest problem z rozpoznawaniem czy w linku znajduje sie poczatek http:// czy nie ma dlatego dadaje swoj adres.

Zna ktos moze rozwiazanie problemu ?

peetros
13-03-2006, 13:58
Dziwne, u mnie jest wszystko ok! Przykładowo w artykule wpisałem link do strony i zadziałało.
Jakiego edytora używasz dokładnie? (ja mam MosCE 1.0.3)
Pozdro

stone
15-03-2006, 12:35
Mozesz dac link do strony gdzie jest problem?

kosa
18-03-2006, 03:28
www.tylkolech.pl

a dokladniej tutaj http://www.tylkolech.pl/index.php?option=com_content&task=view&id=194&Itemid=111

jest link do playera w nowym oknie w miejscu

<a href="#" ...... >

pojawia się

<a href="http://www.tylkolech.pl/content/view/194/111/#" .... >

nie powinno byc tam tego adresu tym bardziej, ze w kodzi html w edytorze widac samą #

Chyba sa tu problemy z generowaniem linków

stone
18-03-2006, 23:08
Hmm, ale linki działają, więc raczej niemożliwe aby w jakiś sposób same się dodwały, no bo niby skąd miały by wiedzięc co wpisać:)
Nie mam pojęcia czemu tak się dzieje, a zwłaszcza czemu wstawia te linki a nie inne, ale w jakiś sposób to działa:)

livio
19-03-2006, 11:42
Znacznik <base /> tak działa.
Parametr href z owego znacznika jest wklejany zawsze przez przeglądarkę przez znakiem kotwicy/"anchor", czyli #.

kosa
22-03-2006, 13:34
Dobra wiem juz o co chodzi. Jezeli robiłes upgrade to w patchu nie bylo pliku
mambots/conten/mossef.php ktory w wersji 1.0.8 sie zmienil.

Skopujcie ten plik z insttalki 1.0.8

lub wstawcie kod ponizej ktory mam

<?php
/**
* @version $Id: mossef.php 2597 2006-02-24 05:51:13Z stingrey $
* @package Joomla
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );

$_MAMBOTS->registerFunction( 'onPrepareContent', 'botMosSef' );

/**
* Converting internal relative links to SEF URLs
*
* <b>Usage:</b>
* <code><a href="...relative link..."></code>
*/
function botMosSef( $published, &$row, &$params, $page=0 ) {
// simple performance check to determine whether bot should process further
if ( strpos( $row->text, 'href="' ) === false ) {
return true;
}

// check whether mambot has been unpublished
if ( !$published ) {
return true;
}

// define the regular expression for the bot
$regex = "#href=\"(.*?)\"#s";

// perform the replacement
$row->text = preg_replace_callback( $regex, 'botMosSef_replacer', $row->text );

return true;
}
/**
* Replaces the matched tags
* @param array An array of matches (see preg_match_all)
* @return string
*/
function botMosSef_replacer( &$matches ) {
global $mosConfig_live_site;

// disable bot from being applied to mailto tags
if (strpos($matches[1],'mailto:')) {
return 'href="'. $matches[1] .'"';
}

if ( substr($matches[1],0,1) == '#' ) {
// anchor
$temp = split('index.php', $_SERVER['REQUEST_URI']);
$link = sefRelToAbs( 'index.php' . @$temp[1] );
$replace = 'href="'. $link . $matches[1] .'"';
} else {
$link = sefRelToAbs( $matches[1] );
$replace = 'href="'. $link .'"';
}

// needed to stop site url to external site links
$count = explode( 'http://', $replace );
if ( count( $count ) > 2 ) {
$replace = str_replace( $mosConfig_live_site .'/', '', $replace );
}

return $replace;
}
?>