URLスラッグを空で登録した場合のURLについて

2017年3月7日 at 13:57

200前後の団体がイベント情報を投稿するサイトを制作予定です。
投稿の手順は可能な限り簡単にとの要望を受け以下仕様を検討しております。

・コンポーザーを利用し常に特定のページの下に公開
・コンポーザーにURLスラッグの入力欄は設けない

この状態で投稿すると手元の環境では以下のような結果になりました(プリティーURLは有効です)。


A. ページ名が半角英数とスペースの場合

ページ名:Sample Page

URLスラッグ:sample-page

大文字は小文字に、スペースはハイフンに変換されるようです。
http://example.com/コンポーザーで指定した親ページ/sample-page


B. ページ名が全角文字を含む場合

ページ名:Sample ページ

URLスラッグ:sample

全角文字は削除され残った文字が連結されるようです。
http://example.com/コンポーザーで指定した親ページ/sample


C. ページ名が全角文字のみの場合

ページ名:サンプルページ

URLスラッグ:空

URLスラッグは空となりURLにはページIDが利用されるようです。
http://example.com/コンポーザーで指定した親ページ/ページID


D. 既存のページ名の場合

同じページ名で投稿すると同じURLスラッグが設定されました。
URLは末尾にハイフンと数字が付与されインクリメントしていくようです。
http://example.com/コンポーザーで指定した親ページ/sample-page-1



本件ではページ名は原則イベントのタイトルです。
多くがアルファベットや開催回数などの数字を含みます(上記ではBのケースです)。

URLに意図せぬ意味を持った文字列が含まれてしまう可能性も考慮し
ページ名にかかわらずページIDを利用したURLで運用できればと思いますが方法はございますでしょうか。
また投稿時にURLスラッグを設定しない運用で問題を生じることはありますでしょうか。

よろしくお願いいたします。


# concrete5 バージョン
8.1.0

# PHP バージョン
7.0.9

# サーバー
エックスサーバー

# クライアント
macOS 10.12 + Firefox 51

タグ:

Re: URLスラッグを空で登録した場合のURLについて

2017年3月7日 at 14:21
お世話になります。

ちょっと時間がないので、取り急ぎ、返信します。

ページを新規作成するところの URL 判定のところをオーバーライドすれば可能になります。

実は、私も、まさに同じようなことを実装したいなーと考えていました。

できれば、できれば /application/config/concrete.php の追加パラメーターとしてオプションを追加し、 true に設定したら、 URL スラッグが空欄の時は常に cID になることができないかなと・・・。

どなたかヘルプをお願いします。
 

Re: URLスラッグを空で登録した場合のURLについて

2017年3月8日 at 14:28
Ueno様

現状ではプログラムの変更が必要なのですね。
ご提案いただいているような仕組みがかなえば当方のレベルでも便利に活用できそうです。
お忙しいところご回答いただきましてありがとうございました。