フレンドリーurlにするとdittoのリンク先が反映されない。  【解決済み】

質問全般・改善要望
返信する
8nda3
メンバー
メンバー
記事: 52
登録日時: 2011年10月14日(金) 13:42

フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by 8nda3 »

-----
ご利用のサーバ:さくらのレンタルサーバ スタンダード
PHPのバージョン : PHP 5.2.17
データベースのバージョン : 5.1.51-log
MODXのバージョン : 1.0.5J-r11
ブラウザ : google chrome
-----

いつもこのフォーラムにはお世話になっています。

アクセス解析のため、フレンドリーurlに変更したのですが、dittoで表示させている一覧のリンク先が404 - Document Not Foundになります。
urlを確認すると、エイリアスが反映されておらずidのままでした。

以下チャンクです。

===============================================

[!Ditto
&id=`active_events`
&tpl = '@CODE:


<div class="event_list">
<h4><a href="[~[+id+]~]">[+title+]</a></h4>
<a href="[~[+id+]~]">[+image+]</a>
<p>期間:[+date+][+departure_date_extra:nl2br+][+extra+]<br />
旅行代金:[+cost1:replace=`/(\d)(?=(\d\d\d)+(?!\d))/$1,/`+][+cost_extra:nl2br+][+extra+]<br />
[+introtext+]<br />
</p></div>

' // 表示パターン
&filter=`event_end,1,1`
&orderBy=`createdon DESC`
!]


[!Ditto
&id=`close_events`
&tpl = '@CODE:
 

<div class="event_list">
<h4 class="red"><a href="[~[+id+]~]">[+title+]</a>終了</h4>
<a href="[~[+id+]~]">[+image+]</a>
<p>期間:[+date+][+extra+]<br />
旅行代金:[+cost:replace=`/(\d)(?=(\d\d\d)+(?!\d))/$1,/`+][+extra+]<br />
[+introtext+]<br />
</p></div>

' // 表示パターン
&filter=`event_end,0,1`
&orderBy=`createdon DESC`
!]
</table>

=====================================================

何が原因でしょうか。
他のコンテンツのdittoは反映されています。

例えば

チャンクコード
=====================================
<div class="event_list">
<h4><a href="[~[+id+]~]">[+title+]<span class="red">[+○○+]</span></a></h4>
<a href="[~[+id+]~]">[+image+]</a>
<p>期間:[+date1+][+ほか+]<br />
旅行代金:[+cost1:replace=`/(\d)(?=(\d\d\d)+(?!\d))/$1,/`+]<br />
[+introtext+]<br />
</p></div>
=====================================

[[Ditto? &parents=`1` &display=`all` &tpl=`○○` &extenders=`tagging` &tagDelimiter=`,` &tagMode=`onlyTags` &tags=`○○` &tagData=`category_list` &orderBy=`createdon DESC`]]

==================================================
以上のdittoは、問題なく反映されます。
ただこれも、本当は、有効期限内のイベントと、終了イベントを分けて表示させたいと思っているので、このdittoは使用するつもりはありません。
(最初に書いたdittoをそのまま記述したらうまく表示されず、いまはとりあえずこの記述で対応しています。)

どうか、解決方法をお教えください。
よろしくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yama »

テンプレートをインラインで書くと問題が起きるということかもしれないので、バグかもしれません。対症療法になりますが、[~[+id+]~]を[+url+]に書き換えてみていただけますでしょうか。
8nda3
メンバー
メンバー
記事: 52
登録日時: 2011年10月14日(金) 13:42

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by 8nda3 »

テンプレートをインラインで書くと問題が起きるということかもしれないので、バグかもしれません。対症療法になりますが、[~[+id+]~]を[+url+]に書き換えてみていただけますでしょうか。
これで、解決しました!!ありがとうございました :D


ところで、最初の質問にも少し触れました、カテゴリ分けをしている一覧のイベントを有効なものと終了のものを分けて表示させたいのですが、うまくいきません。
合わせてご質問させていただけないでしょうか :oops:

まず、すべてのイベントリストは新着順に以下のチャンクで表示をしています。
[!Ditto
&id=`active_events`
&tpl = '@CODE:


<div class="event_list">
<h4><a href="[~[+id+]~]">[+title+]</a></h4>
<a href="[~[+id+]~]">[+image+]</a>
<p>期間:[+date+][+departure_date_extra:nl2br+][+extra+]<br />
代金:[+cost1:replace=`/(\d)(?=(\d\d\d)+(?!\d))/$1,/`+][+cost_extra:nl2br+][+extra+]<br />
[+introtext+]<br />
</p></div>

' // 表示パターン
&filter=`event_end,1,1`
&orderBy=`createdon DESC`
!]


[!Ditto
&id=`close_events`
&tpl = '@CODE:
 

<div class="event_list">
<h4 class="red"><a href="[~[+id+]~]">[+title+]</a>終了</h4>
<a href="[~[+id+]~]">[+image+]</a>
<p>期間:[+date+][+extra+]<br />
代金:[+cost:replace=`/(\d)(?=(\d\d\d)+(?!\d))/$1,/`+][+extra+]<br />
[+introtext+]<br />
</p></div>

' // 表示パターン
&filter=`event_end,0,1`
&orderBy=`createdon DESC`
!]
</table>
さらに、このなかで細かいカテゴリ分けをし、それぞれの一覧を、以前フォーラムで質問したときににご回答いただいた、以下の方法で表示しています。
テンプレート変数[*CategoryTag*]
■入力タイプ:チェックボックスか複数選択のリストボックス
■入力時のオプション:
 花||ピンク||かわいい||プレゼント||他いくらでも…
■ウィジェット:Delimited List
■Delimiter: ,  ←半角コンマ(dittoコールのtagDelimiterとあわてあれば他の文字でもOK)
などと設定します。

『ピンクの花』の写真ページで、テンプレート変数[*CategoryTag*]の必要なタグを選択

写真の一覧リストを表示するページのdittoコールに
[[Ditto? &parents=`写真ページの親リソースid` &display=`all` &tpl=`表示用テンプレート` &extenders=`tagging` &tagDelimiter=`,` &tagMode=`onlyTags` &tags=`花,ピンク,かわいい` &tagData=`CategoryTag` ]]
とすれば「花」「ピンク」「かわいい」のどれかひとつでもチェックされた写真のページがすべて表示されます。
各カテゴリの一覧でも、有効なものと終了したものを分ける必要が出て来ました。(一覧とイベント内容は同じなので)

単純に、すべてのイベントリストで表示している方法を、カテゴリ分けのチャンクに差し替えてみたのですが、

「記事はありません。
記事はありません。」

という表示になります。


カテゴリ分けをしたイベントの一覧を、有効なものと、終了したもので分ける方法はあるのでしょうか。
いろいろ試すも、方法が分からず30近くあるカテゴリを今は手作業で分けています><
効率が悪く、大変困っております。

すみません、何か方法があれば、教えていただけないでしょうか :oops:
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by min-o »

Dittoのtaggingと一緒にfilterを使ったらどうでしょうか。

「有効なもの」と「終了したもの」は日時で区切る形なら
「有効なもの」=終了日時前のもの
「終了したもの」=終了日時過ぎたもの として

&filter=`tv終了日時,@EVAL return time();,3`  終了日時過ぎたものは表示しない
&filter=`tv終了日時,@EVAL return time();,4`  終了日時前のものは表示しない

※tv終了日時は 入力タイプ: DateTime にしておく

でいけるんじゃないかと思います。
(もしかしたら、3と4逆かも…。希望と反対の結果が出たら逆にしてください…)

・taggingは特定の値を持つもののみ出力
・filterは特定の値を持つものを出力しない
なので両方組み合わせれば、複数の条件で出力結果をコントロールできます。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
8nda3
メンバー
メンバー
記事: 52
登録日時: 2011年10月14日(金) 13:42

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by 8nda3 »

min-oさまには以上のカテゴリ分けでご回答いただきました。
今回もご返信ありがとうございます。

ご回答いただいた通り、filterを使いました。
[[Ditto? &parents=`1,2` &display=`all` &tpl=`○○` &extenders=`tagging` &tagDelimiter=`,` &tagMode=`onlyTags` &tags=`○○` &tagData=`category_list` &orderBy=`createdon DESC` &filter=`event_end,@EVAL return time();,3`]]

[[Ditto? &parents=`1,2` &display=`all` &tpl=`○○` &extenders=`tagging` &tagDelimiter=`,` &tagMode=`onlyTags` &tags=`○○` &tagData=`category_list` &orderBy=`createdon DESC` &filter=`event_end,@EVAL return time();,4`]]
テンプレート変数『event_end』
入力タイプ: DateTime
※この場合ウィジェットはどうすればいいのでしょうか?
しかし、なんの変化もありませんでした・・・。
(テンプレート変数で、日にちの設定をしましたが、同じものが2列に並んでいる状態です。)

ほんとうに何も分かっておらず、いつもお恥ずかしい質問ばかりでもうしわけありませんが・・・ :oops:
どうすればよいのでしょうかm(__)m
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by min-o »

書き忘れました。 ;)

テンプレート変数『event_end』
入力タイプ: DateTime

ウィジェット(出力フィルタ): Unixtime
にしてください。

Unixtime は、1970年1月1日00:00:00(UTC)からの通算秒の数値です。
これにしないとmodxが現在時刻より大きいか、小さいかの比較ができないのです。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
8nda3
メンバー
メンバー
記事: 52
登録日時: 2011年10月14日(金) 13:42

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by 8nda3 »

ご返信いただいてから、何度も試すも、うまくいきません(>_<)

まったく同じ結果が、2つ表示されます。

どこがおかしいのでしょうか(;_;)

ざっくりとした質問で答えにくいとは思いますが、考えられる原因としては
何があるでしょうか・・・。
アバター
min-o
メンバー
メンバー
記事: 318
登録日時: 2009年10月07日(水) 18:32

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by min-o »

うーん、なんででしょうね…。

各ページのテンプレート変数『event_end』をもう一度入力しなおしてみたらどうでしょうか?
最初にUnixtimeでない状態で入力したものが、Unixtimeにしたことで、妙な時間に変換されてしまっている、ということかも。

あとはDittoを1つにして、スニペットコールを&parentsと&filterだけのシンプルなものにして、試してみてください。
これでうまくいくようなら、ひとつずつパラメーターを追加して、エラーになる項目を探していくと、何かわかるかも。
---------
おのうちみん
http://scifitique.org/
http://gender-sf.org/
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yama »

http://mng.demo.modx.jp/
上記で再現環境を作っていただくことは可能でしょうか?こちらで確認できるようであれば、見てみます

追記
http://120319130424-4145.evo.demo.modx.jp/news.html
http://120319130424-4145.evo.demo.modx.jp/manager/
ユーザ名・パスワード modx/modx

上記で簡易に試してみましたが、出し分けできました。他のパラメータとの相性問題などがあるのかも?
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリーurlにするとdittoのリンク先が反映されない。  【解決済み】

投稿記事 by yama »

インラインで「[~[+id+]~]」を記述できない件、解決しました。次リリースで積み込みます
nkd
メンバー
メンバー
記事: 9
登録日時: 2012年4月13日(金) 13:10

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by nkd »

前に  MODX Evolution 1.0.6J-r2 のインストールで質問しましたが、解決できませんでした。
MODX Evolution 1.0.6J-r3 を試しに インストールしましたら 正常に動作したため
ここ1っヶ月くらいで サイトをMODXに載せ替えて 本稼働したばっかりです。

運用を始めてから

同じ現象に 悩まされ 検索してここに来ました。
更新情報を、サイドバーに配置 トップレベルのリソースではリンク先は 正常なんですが、サブリソースを表示すると そのページのフォルダが、リンクのトップレベルになります。
したがって 404エラー
ちなみに リンクタグを使用しない グローバルナビも 全部サブリソースがトップのリンクになります。
こっちは フレンドリーURLを使用しなくなったら、なおリましたが、サイドバーは 同じでした。

ページ名は変更しているのですが、URLがそのページのリンクで、変更されません。
[~[*id*]~]を [+url+] に変更したら正常になりました。

環境
ご利用のサーバ:CORESERVER.jp
Webサーバのバージョン :
Apache 1.3.41
PHPのバージョン :5.2.5
データベースのバージョン :MySQL 5.1.22-rc
MODXのバージョン : MODX Evolution 1.0.6J-r3
ブラウザ :chrome firefox

reboの方は 環境が、古くて無理なのかもしれません。
バージョンアップを サーバーの会社に訪ねてみたのですが、アップする予定は、無いとのことでした。
ので  このまま運用したいと思います。

前質問は http://forum.modx.jp/viewtopic.php?f=7&t=819 でした。

別のサーバーを借りて インストールしてみましたが、正常にインストールできました。
サーバー移転も考えましたが、ドメイン問題等 めんどくさくてこのままです。

フレンドリーURLだけの問題では。なさそうなので、ここに書き込みました。

単なるサーバーのせいとは思えませんが?
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yama »

Revoの件は申し訳ないですがしばらくはテクニカルなフォローは難しいです。今回はEvo最新版の件ですね。Evoに関してはできるだけの解決を行ないたいと思います。
こちらで状況を再現したいので、もしよければ具体的な再現サンプル情報を何らかの形で提供いただけますでしょうか。

http://mng.demo.modx.jp/
たとえば上記サンプルサイトで同じトラブルを再現できますでしょうか?
nkd
メンバー
メンバー
記事: 9
登録日時: 2012年4月13日(金) 13:10

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by nkd »

早速の返答有難うございます。
上記の デモサイトで SQLをリストアしようと試みたんですが、

« MODX Parse Error »

MODX encountered the following error while attempting to parse the requested resource:
« Execution of a query to the database failed - DROP command denied to user 'demo'@'localhost' for table 'modx_access_actiondom' »
SQL:# # ++++ Database Dump # MODX Version:1.0.6J-r3 # # Host: localhost # Generation Time: 2012/06/10 09:08:14 # Server version: 5.1.22-rc # PHP Version: 5.2.5 # Database : `ynkd_wp` # # -------------------------------------------------------- # # Table structure for table `modx_access_actiondom` # DROP TABLE IF EXISTS `modx_access_actiondom`
Basic info
REQUEST_URI: /manager/index.php
ID:
Referer: http://120619060518-10667.evo.demo.modx ... x.php?a=93
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5
Parser timing
MySQL: 0.0007 s (2 Requests)
PHP: 0.0094 s
Total: 0.0101 s

# call path
1 messageQuit() manager/includes/extenders/dbapi.mysql.class.inc.php on line 191
2 query() manager/actions/bkmanager.static.php on line 582
3 import_sql() manager/actions/bkmanager.static.php on line 32
4 include_once() manager/index.php on line 644
エラーでダメでした。

ので 今運用のアドレスを、エラーの出る環境に戻して 
フレンドリーURLに設定して 1日位おこうと思います。

今設定しました。
トップのグローバルメニューが、トップレベルでは、正常ですが、ページを移るとずれます
右サイドバーの 更新情報が、タイトルは正常なんですが、リンクが表示されているページです。
アドレス
http://uonumasann.jp/index.php
実際の運用中アドレスです。
もう少し整理できたら 導入事例にでも申請しようと思います。

いままでで Dreamweaverを使ったりしていたんですが、重かったりよくわからなかったりで、半分作りっぱなしの部分ばっかりだったんですが、
MODXに移行したら いままでの分が すっきり簡単にまとめることができました。
劇的に 簡単になりました。
ただ 情報が少なくて少し設定に苦労はしますが?

まだ調整中の部分があり 変なところもありますが、おいおいと修正のつもりです。

昼間は、仕事で返事できないかもしれませんが、質問などありましたら、ここにお願いします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yama »

上記の件、後ほど連絡します。もしMODX側の問題である場合は報告します
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yasu »

あけましておめでとうございます。
2013年も皆様にいろいろとお世話になると思いますので、よろしくお願いします。
------------------------------------------------------------------------------------

以前、リンク先の件で解決された問題(http://forum.modx.jp/viewtopic.php?f=7&t=780#p4332)が、「Evo1.0.7-r1」でも発生しているようです。
よろしくお願いします。
テンプレートをインラインで書くと問題が起きるということかもしれないので、バグかもしれません。対症療法になりますが、[~[+id+]~]を[+url+]に書き換えてみていただけますでしょうか。

別件?になるかと思いますが、
リンク先の件を検証するために「フレンドリーURL」を解除したところ、ブラウザーに
ページの自動転送設定が正しくありません。
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
というメッセージが表示されました。
原因は詳しくわかりませんが「SEO Strict URLs」を停止したところ、エラーはでなくなりました。
トピ違いかと思いますが、情報共有のために載せておきます。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yama »

document.parser.class.inc.zip
(29.06 KiB) ダウンロード数: 556 回
[~[+id+]~]の件、さっそく修正しました(manager/includes/documentParser.inc.php)

SEO Strict URLsの件は、基本的にフレンドリーURL設定で利用するプラグインだと思うので(多機能なプラグインなのでよく分かってないですが)、このままでもよいのかも?
yasu
メンバー
メンバー
記事: 103
登録日時: 2009年9月09日(水) 17:54

Re: フレンドリーurlにするとdittoのリンク先が反映されない。

投稿記事 by yasu »

早速の対応ありがとうございます。
[~[+id+]~]でちゃんと表示されるようになりました。
返信する