Posted by bzj00220 on June 21, 2012 at 3:50am
ユーザーアカウントの編集画面に「言語の設定」という項目があるのですが
私のサイトは日本人だけを対象にしているので
言語の設定という項目を見せたくありません。
言語の設定をユーザーアカウントの編集画面から
見えなくするモジュールなどがありましたら
教えてください。
ユーザーアカウントの編集画面に「言語の設定」という項目があるのですが
私のサイトは日本人だけを対象にしているので
言語の設定という項目を見せたくありません。
言語の設定をユーザーアカウントの編集画面から
見えなくするモジュールなどがありましたら
教えてください。
Comments
これは権限の設定で対応できた気がします。いま手元に確認する
これは権限の設定で対応できた気がします。いま手元に確認する環境がないので定かではないのですが。権限設定のページで locale とか localization / internationalization のあたりを見てみてください。
モジュールのコードで実装するなら
以下のような感じでもアクセス不可にできます。
/*** Implements of hook_form_FORM_ID_alter().
*/
function modulename_form_user_profile_form_alter(&$form, &$form_state) {
if (!user_access('administer users')) { // 特定の権限がない場合はアクセス不可にする
$form['locale']['#access'] = false;
}
}
権限の設定について
権限の設定で
Locale→言語の管理
という設定のところは管理者ところだけにチェックを入れています。
会員のアカウントでログインしてプロフィールの編集画面を見てみると
言語の設定という項目がされていて
「メール用のデフォルト言語を指定してください。」
となっています。
他にも似たような項目を探したのですが
特に見当たりませんでした
なにか他に情報があれば教えていただければ幸いです。
オススメなのはblauerbergさんが教えてくれたような
オススメなのはblauerbergさんが教えてくれたようなスクリプトを管理画面用Themeのtemplate.php内に書くことです。
Timezoneは管理画面から消せたのですが、言語設定はなかった気がしますね。
モジュールでやるとハマることあるので注意点があります。
User Account編集ページのFormIDは "user_profile_form"ですが、Language Settingsの部分は
コアLocaleモジュールの【locale_form_alter()】が途中でOverrideしています。
モジュール名やWeightに気をつけてLocaleモジュールより後にOverrideしないと隠すことができません。
なのでThemeに書くのがおすすめです。
template.phpは管理画面用Themeに書かないとダメなので気をつけてください。
Defaultでは管理者はSevenという管理用Themeですが、一般ユーザーはbartikを使うことになっています。
/admin/appearance で変更できます。
例えば、bartikテーマだったら、
function bartik_form_user_profile_form_alter(&$form, &$form_state) {if (!user_access('administer users')) {
// 特定の権限がない場合はアクセス不可にする
unset($form['locale']);
}
}
と書くと消えるはずです。
もっと簡単な方法がありました。
*先ほどのコメントを書いた後に思い出したので追記しておきます。
という事なら、言語設定で英語を無効にしてしまえば簡単ですね。
日本語を「有効」「デフォルト」に設定した後に、英語の「有効チェックボックス」を外すだけです。
/admin/config/regional/language
ありがとうございました
いろいろと方法を教えていただきありがとうございました。
下記の方法で表示を消すことができました。
ありがとうございました。