■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます

macchaka > トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/10/31 10:07
発端は、ドラッグしてページの順番を変えることができなくなったことです。
仕方なく、ツリー構造のリセットをしました。
この問題は2回目です。

それにより順番を変えることはできるようになりましたが、トップページ配下にフォルダや固定ページを追加すると、本来なら
example.com/test
のように直下になるはずが、添付の通り/s/estimate_12/というスラッグが付いてしまいます。
sは存在しません。
estimateというフォルダはありますが、その配下に作成したわけではありません。

これを元々存在しているフォルダ(例:common)に配置させる(URLプルダウンで選択)すると
example.com/common/test
となり、正常になります。

ただ、スラッグがおかしくなってしまうフォルダの配下に作成しても
example.com/s/estimate_12/testfolder/test
のようになってしまい、異常なままです。

恐らくあるタイミングで何かが壊れてしまっているような気がします。
それがツリー構造のリセットかどうかは確信がもてません。

裏でestimate_1〜11が存在しているのかもしれません。コンテンツ一覧にはありませんが。
ページの順番が2回も変えられなくなったのも、それが原因かもしれません。

これを解明・対処する方法はあるでしょうか。


■ BaserCMSのバージョン:4.1.4
■ スマートURLの利用: [ON]
■ 設置フォルダ: [ドキュメントルート]
■ 利用しているデータベース: [MariaDB]
■ PHPスキル(自己評価): [ C ]
■ OSの種類:CentOS Linux release 7.5.1804
■ PHPのバージョン:7.1.19
■ データベース種類・バージョン:5.5.56


macchaka > Re: トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/10/31 11:41
補足…ではないですが、また並べ替えができなくなりました。

> 並び替えの保存に失敗しました。
> (500) 同一URLのコンテンツが存在するため処理に失敗しました。

並べ替えで同一URLのコンテンツが存在するとは、これ如何に…という感じです。
当然コンテンツ一覧には存在していないので、対処のしようもなく。

ページによっては

> 並び替えの保存に失敗しました。
> (500) データ保存中にエラーが発生しました。

というケースもあります。

追記
ページでは問題が起こらず、フォルダの場合だけでした。
やはりツリー情報が壊れたか何かような…。
seto > Re: トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/10/31 12:47
こんにちは

ツリー構造のリセット後、フォルダと固定ページの作成を行いましたが再現できませんでした。

サブサイト一覧ページに、「スマートフォン」という項目があると思うので、使用していない場合はこちらを削除するとどうでしょうか。
/admin/sites/

※念の為、DBのバックアップを取ってから行ってください。
macchaka > Re: トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/10/31 13:06
直りました。マジっすかw
まさかサブサイトでこんな悪さをするとは思いませんでした。
動かなくなっていたフォルダの順番も今のところ動くようになり問題ありません。
(モバイルも使わないので、サブサイトは全て削除しました)

ありがとうございました!
macchaka > Re: トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/10/31 17:02
残念ながら、フォルダを動かすとまたエラーで動かせなくなりました

フォルダを作成して試してみると

1)フォルダをトップページ直下に作成する
2)一番下に追加される
3)上の方へドラッグして順番を入れ替える

この段階ではエラーは起きません。
しかりリロードすると、順番を入れ替えたにもかかわらず、一番下に戻ってしまいます。

また、(3)の次に再度ドラッグして順番を入れ替えると、

> 並び替えの保存に失敗しました。
> (500) データ保存中にエラーが発生しました。

と表示されます。

固定ページの移動は問題ありません。


追記
・サブフォルダの下での移動は問題ありません。
・あくまでもトップレベル(トップページ配下)のみ保存エラーが発生します。
・最初に作ったものは移動できます。正確なタイミングが分かりませんが、ある時期以降及び現時点で作成したフォルダについてエラーが発生します。
・やっぱり、何かデータが壊れているのかなぁ。。。
seto > Re: トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/11/1 10:23
おそらく
lib/Baser/Controller/ContentsController.php admin_ajax_move()
から呼び出している
lib/Baser/Model/Content.php move()
で、何かしら問題が起きています。

解決するためには、この関数内で変数がどんな状態になっているか確認する必要がありますね。
macchaka > Re: トップページ配下にフォルダを作成すると、謎のスラッグ(URL)が付いてしまいます @ 2018/11/2 11:30
if($currentParentId != $targetParentId)が否になっており、
$this->getOrderSameParentによって取得するのみとなっています。

このとき、
$currentSort = 8
$targetSort = 3
となっています。

Contents::moveOffsetで、この例だと、Treeビヘイビアのmoveupを呼び出すことは確認でき、その結果($result)がfalseになっているので、やはりデータベース上のツリー情報が壊れているのかなぁという気がします。

最初に挙げている「estimate_12」についても、その後ゴミ箱の中にあることは確認できたのですが、さすがに手動で12回も作成と削除を繰り返していれば記憶にあると思うのですが、せいぜい記憶にあるのは数回ですし、他のフォルダも均等に10個以上あったので、何かのタイミングで機械的に作られたような印象があります。
ただし、その個数については12個があったり、28個があったり、均一ではないのですが。
手動操作以外で作成されたり、複製されたり(その上でdeleteフラグが立つ)ということがあり得ないということであれば、無意識のうちに最大28回も作ったり消したりした…ということになるのでしょうが。

ツリーのリセットはやぶさかではないのですが、既に短期間(数日)で2回やっており、3回目が発生しない確信がもてないので、ツリー修正の手間を考えると、気後れします。
とはいえ、仕方がないですかねぇ。。。

サブサイトを削除することで一時的に解消したのも解せず。
サブサイトがそんなリスキーなものではないと思いますし。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
34 人のユーザが現在オンラインです。 (33 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 34