0

ネットワーク共有上のファイルへのリンクを許可することを目的として、RTE参照リンクウィンドウの新しいタブを作成しようとしています。TYPO3が自動的http://<domain>/typo3にリンクの前に付加するので、これに外部リンクを使用することは機能しません。

カスタムタブでも同じ問題が発生しています。たとえば、を入力する\\<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'));
  }

}
4

1 に答える 1

0

問題が見つかりました。parse_urlURLに関する有益な配列を返すPHPを介して行われるチェックがあります。スキーマが欠落している場合(ここではそうでした)、http://が追加されます。

于 2012-11-30T08:14:30.953 に答える