osclassの日本の住所を並び替える方法

 
 

osclassの設置後、日本語に置き換えた時に住所がバラバラになっています。
(都道府県~市区町村までの順番がバラバラ)

バラバラになっている理由は、スラッグ(slug)が日本語をURLエンコードされているからです。

・地域:『北海道』
・スラッグ:『%e5%8c%97%e6%b5%b7%e9%81%93』←これが原因

この状態で順番に並べられると綺麗に並びません。

そこで、一度URLエンコード部分を数字に置き換えます。
(『%e5%8c%97%e6%b5%b7%e9%81%93』→『01』)

47都道府県全ての順番を書き換えます。
( 01~47 まで。必ず 一桁は 01 02 03 04 …の0を入れましょう。)

参考になったサイト様:
https://limchallenge.com/osclassで地域ロケーションを北海道〜沖縄の順に

 

書き換える場所は、osclass管理画面の中の『ロケーション』エリアです。

 

上図の地域の部分を一つ一つ書き換えます。
(データベースに入って書き換えてもエラーになるので、ここからにしましょう)

全てを順番に入れ替えて、保存します。(市区町村までやるとなると心が折れますね…)

 

次に、FTPから入って[oc-includes/osclass/model/Region.php]を修正します。

$this->dao->orderBy(‘s_slug’, ‘ASC’); 』を追加します。

function __construct()
{
parent::__construct();
$this->setTableName('t_region');
$this->setPrimaryKey('pk_i_id');
$this->setFields( array('pk_i_id', 'fk_c_country_code', 's_name', 'b_active', 's_slug') );
}

↓下記の様に追加します。(『 』が大文字だと文字化けします)

function __construct()
{
parent::__construct();
$this->setTableName('t_region');
$this->setPrimaryKey('pk_i_id');
$this->dao->orderBy('s_slug', 'ASC'); ←これを追加します
$this->setFields( array('pk_i_id', 'fk_c_country_code', 's_name', 'b_active', 's_slug') );
}

 

これでファイルを更新すると表示が綺麗に入れ替わっています。

細かい説明をすると、
『s_name』が日本語のエリアを指定し、
『s_slug』がスラッグを指定します。(『01にした部分』)

これで順番は綺麗になるかと思います。

参考サイト様、ありがとうございます。

このサイトをフォローする!

サービスの料金を確認する

各種サービスの料金をご紹介します。
下記の「詳しくはこちら」をクリックしてお進みください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です