2012-11-28 3 views
0

Я пытаюсь создать новую вкладку для окна ссылок просмотра RTE с целью разрешить ссылки на файлы на сетевых ресурсах. Использование внешней ссылки для этого не будет работать, так как TYPO3 автоматически добавляет http://<domain>/typo3 к ссылке.t3lib_browseLinksHook и форматы пользовательских ссылок

У меня такая же проблема на моей вкладке. Когда, например, ввод \\<share>\<file>, ссылка заканчивается http://<domain>/typo3/\\<share>\<file>.

Крюк Класс:

class Tx_Test_Hooks_NetworkFolderTree implements t3lib_browseLinksHook 
{ 
    public function init($browseLinks, $additionalParameters) 
    { 
    $this->browseLinks = &$browseLinks; 
    } 

    public function getTab($linkSelectorAction) 
    { 
    global $BE_USER, $LANG; 

    $content = ' 
     <form action="" name="lurlform" id="lurlform"> 
     <table border="0" cellpadding="2" cellspacing="1" id="typo3-linkURL"> 
      <tr> 
     <td>URL:</td> 
     <td><input type="text" name="lurl"'.$this->browseLinks->doc->formWidth(20).' value="" /> '. 
     '<input type="submit" value="set" onclick="browse_links_setHref(document.lurlform.lurl.value); browse_links_setAdditionalValue(\'data-htmlarea-external\', \'1\'); return link_current();" /></td> 
      </tr> 
     </table> 
     </form>'; 

    $content .= $this->browseLinks->addAttributesForm(); 

    return $content; 
    } 

    public function parseCurrentUrl($href, $siteUrl, $info) 
    { 
    if(preg_match('/^([a-z]\:[\/\\\]|\\\{2})/', $href, $matchData)) $info['act'] = 'unc'; 

    return $info; 
    } 

    public function modifyMenuDefinition($menuDefinition) 
    { 
    global $LANG; 

    return array_merge($menuDefinition, array(
       'unc' => array(
       'isActive' => ($this->browseLinks->act == 'unc'), 
       'label'  => 'Network file', 
       'url'  => '#', 
       'addParams' => 'onclick="jumpToUrl(\''.htmlspecialchars('?act=unc&mode='.$this->browseLinks->mode.'&bparams='.$this->browseLinks->bparams).'\');return false;"' 
      ) 
     ) 
    ); 
    } 

    public function addAllowedItems($currentlyAllowedItems) 
    { 
    return array_merge($currentlyAllowedItems, array('unc')); 
    } 

} 

ответ

0

Нашли проблему. Есть проверки, сделанные через PHP parse_url, который возвращает информативный массив о URL-адресе. Если схема отсутствует (что было здесь), добавляется http://.

Смежные вопросы