On March 26, 2019 we launched new MODX Forums. Please join us at the new MODX Community Forums.
Subscribe: RSS
  • yassiさん、ありがとうございます。

    なぜかうまくいくところといかないところが出てしまいます。

    例えば、
    <title>ほげほげ</title>
    <base href="[(site_url)]" />
    <link rel="stylesheet" type="text/css" href="[~2~]" media="all" />
    <link rel="alternate" type="application/rss+xml" href="[~17~]" title="ほげほげ" />
    <script type="text/javascript" src="[~10~]"></script>
    <script src="[~16~]" type="text/javascript"></script>
    </head>

    としているのですが、結果は
    <title>ほげほげ</title>
    <base href="[(site_url)]" />
    <link rel="stylesheet" type="text/css" href="ABC.css" media="all" />
    <link rel="alternate" type="application/rss+xml" href="DEF.xml.htm" title="ほげほげ" />
    <script type="text/javascript" src="GHI.js"></script>
    <script src="JKL.js" type="text/javascript"></script>
    </head>

    となってしまいます。

    SEOStrictURLs(Phize版)を使っているのですが、変更箇所は以下の青字部分の削除と赤字部分の変更で良いでしょうか?
    //<?php

    ~省略~

    elseif ($e->name == ’OnWebPagePrerender’)
    {
    if ($editDocLinks)
    {
    $myDomain = $_SERVER[’HTTP_HOST’];
    $furlSuffix = $modx->config[’friendly_url_suffix’];
    $baseUrl = $modx->config[’base_url’];
    $o = &$modx->documentOutput; // get a reference of the output

    // Reduce site start to base url
    $overrideAlias = $modx->aliasListing[$modx->config[’site_start’]][’alias’];
    $overridePath = $modx->aliasListing[$modx->config[’site_start’]][’path’];
    // Modified by Phize
    $o = preg_replace("#((href|action)=\"|$myDomain)($baseUrl)?($overridePath/)?$overrideAlias$furlSuffix([^\w-\.!~\*\(\)])#", ’${1}’ . $baseUrl . ’${5}’, $o);
    // $o = preg_replace("#((href|action)=\"|$myDomain)($baseUrl)?($overridePath/)?$overrideAlias$furlSuffix#", ’${1}’ . $baseUrl, $o);

    if ($override)
    {
    // Replace manual override links
    $sql = "SELECT tvc.contentid as id, tvc.value as value FROM " . $modx->getFullTableName(’site_tmplvars’) . " tv ";
    $sql .= "INNER JOIN " . $modx->getFullTableName(’site_tmplvar_templates’) . " tvtpl ON tvtpl.tmplvarid = tv.id ";
    $sql .= "LEFT JOIN " . $modx->getFullTableName(’site_tmplvar_contentvalues’) . " tvc ON tvc.tmplvarid = tv.id ";
    $sql .= "LEFT JOIN " . $modx->getFullTableName(’site_content’) . " sc ON sc.id = tvc.contentid ";
    $sql .= "WHERE sc.published = 1 AND tvtpl.templateid = sc.template AND tv.name = ’$overrideTV’";
    $results = $modx->dbQuery($sql);
    while ($row = $modx->fetchRow($results))
    {
    $overrideAlias = $modx->aliasListing[$row[’id’]][’alias’];
    $overridePath = $modx->aliasListing[$row[’id’]][’path’];
    switch ($row[’value’])
    {
    case 0:
    // Modified by Phize
    $o = preg_replace("#((href|action)=[\"’]($baseUrl)?($overridePath/)?|$myDomain$baseUrl$overridePath/?)$overrideAlias$furlSuffix([^\w-\.!~\*\(\)])#", ’${1}’ . $overrideAlias . ’${5}’, $o);
    // $o = preg_replace("#((href|action)=\"($baseUrl)?($overridePath/)?|$myDomain$baseUrl$overridePath/?)$overrideAlias$furlSuffix#", ’${1}’ . $overrideAlias, $o);
    break;
    case 2:
    // Modified by Phize
    $o = preg_replace("#((href|action)=[\"’]($baseUrl)?($overridePath/)?|$myDomain$baseUrl$overridePath/?)$overrideAlias$furlSuffix(/|([^\w-\.!~\*\(\)]))#", ’${1}’ . rtrim($overrideAlias, ’/’) . ’/’ . ’${6}’, $o);
    // $o = preg_replace("#((href|action)=\"($baseUrl)?($overridePath/)?|$myDomain$baseUrl$overridePath/?)$overrideAlias$furlSuffix/?#", ’${1}’ . rtrim($overrideAlias, ’/’) . ’/’, $o);
    break;
    }
    }
    }

    if ($makeFolders)
    {
    if ($emptyFolders)
    {
    // Populate isfolder array
    $isfolder_arr = array();
    $result = $modx->db->select(’id’, $modx->getFullTableName(’site_content’), ’published > 0 AND isfolder > 0’);
    while ($row = $modx->db->getRow($result))
    $isfolder_arr[$row[’id’]] = true;
    }

    // Replace container links
    foreach ($modx->documentListing as $id)
    {
    if ((is_array($isfolder_arr) && isset($isfolder_arr[$id])) || count($modx->getChildIds($id, 1)))
    {
    $overrideAlias = $modx->aliasListing[$id][’alias’];
    $overridePath = $modx->aliasListing[$id][’path’];
    // Modified by Phize
    $o = preg_replace("#((href|action)=[\"’]($baseUrl)?($overridePath/)?|$myDomain$baseUrl$overridePath/?)$overrideAlias$furlSuffix(/|([^\w-\.!~\*\(\)]))#", ’${1}’ . rtrim($overrideAlias, ’/’) . ’/’ . ’${6}’, $o);
    // $o = preg_replace("#((href|action)=\"($baseUrl)?($overridePath/)?|$myDomain$baseUrl$overridePath/?)$overrideAlias$furlSuffix/?#", ’${1}’ . rtrim($overrideAlias, ’/’) . ’/’, $o);
    }
    }
    }
    }
    }

    • Quote from: freakale at Apr 22, 2009, 06:14 AM

      <title>ほげほげ</title>
      <base href="[(site_url)]" />
      <link rel="stylesheet" type="text/css" href="[~2~]" media="all" />
      <link rel="alternate" type="application/rss+xml" href="[~17~]" title="ほげほげ" />
      <script type="text/javascript" src="[~10~]"></script>
      <script src="[~16~]" type="text/javascript"></script>
      </head>
      

      としているのですが、結果は
      <title>ほげほげ</title>
      <base href="[(site_url)]" />
      <link rel="stylesheet" type="text/css" href="ABC.css" media="all" />
      <link rel="alternate" type="application/rss+xml" href="DEF.xml.htm" title="ほげほげ" />
      <script type="text/javascript" src="GHI.js"></script>
      <script src="JKL.js" type="text/javascript"></script>
      </head>

      となってしまいます。
      これって、どこが問題なんでしょうか?
      17番のドキュメントのURL [~17~] が、「DEF.xml.htm」ぢゃなくて「DEF.xml」にならないといけないということですか?

      だとすると、17番のドキュメントの seoOverride テンプレート変数が「BaseName」になってないだけだとか...?
      (設定状況がわからないので、かなり想像入ってます! tongue)
      • すいません :’(改めて一からやり直したところ解決しました。

        CSSを読み込む部分にimport.cssを使用していて、その記述が
        @import "[~4~]";
        @import "[~3~]";
        @import "[~5~]";
        というように書いていて、CSSが反映されなかったため、action|href以外の部分の.htmが消えてないからだと
        思いこんでしまってました、、、

        ただ単に<base>タグの記述が上記タグよりも下に記述していたためでした。

        ほんとスイマセンです・・・