「Web構築」カテゴリーアーカイブ

メールのパスワードの設定プログラム

メールのパスワード設定一覧を作るときに半角英数で、メールアドレスが有効で、メールアドレスとは別にアカウントがあります。

いろんなチェックをして、生成して、配らないといけません。結構面倒ですし、エラーも多いので、こちらでプログラムを書いてみました。

追加仕様:(2名様のニーズを反映)
1.必ず英字大文字小文字数字記号の組み合わせを入れる。
2.10桁から12桁までランダム

サンプルプログラムは下記になります。CSV形式等は自分で行なってください。

https://abundcore.net/program-library/email-password/

 

<?php

function generateRandomPassword() {
    // パスワードの長さを10から12桁の間でランダムに決定
    $length = rand(10, 12);
    // 各カテゴリの文字
    $lowercaseLetters = 'abcdefghijklmnopqrstuvwxyz';
    $uppercaseLetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $numbers = '0123456789';
    $symbols = '#%=-+:?_<>[]{}()^!,.';

    // 各カテゴリから最低1文字を確実に含める
    $password = $lowercaseLetters[rand(0, strlen($lowercaseLetters) - 1)];
    $password .= $uppercaseLetters[rand(0, strlen($uppercaseLetters) - 1)];
    $password .= $numbers[rand(0, strlen($numbers) - 1)];
    $password .= $symbols[rand(0, strlen($symbols) - 1)];

    // 全ての文字を結合して残りの部分をランダムに選択
    $allCharacters = $lowercaseLetters . $uppercaseLetters . $numbers . $symbols;
    for ($i = strlen($password); $i < $length; $i++) {
        $password .= $allCharacters[rand(0, strlen($allCharacters) - 1)];
    }

    // パスワードをシャッフルして各カテゴリの文字が最初に来ないようにする
    $password = str_shuffle($password);

    return $password;
}

function isValidUsername($username) {
    // ユーザーネームが半角英数とピリオド、ハイフンのみを含むかチェック
    return $username !== '' && preg_match('/^[a-zA-Z0-9\.\-]+$/', $username);
}

function isValidEmail($email) {
    return $email !== '' && filter_var($email, FILTER_VALIDATE_EMAIL);
}

$userData = [];
$errors = [];

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    for ($i = 1; $i <= 5; $i++) {
        $username = $_POST["username$i"] ?? '';
        $email = $_POST["email$i"] ?? '';
        if ($username !== '' || $email !== '') {
            if (!isValidUsername($username)) {
                $errors[] = "ユーザーアカウント {$i} は無効です。半角英数とピリオド、ハイフンのみ使用可能です。";
                continue;
            }
            if (!isValidEmail($email)) {
                $errors[] = "メールアドレス {$i} は無効です。";
                continue;
            }
            $password = generateRandomPassword();
            $userData[] = [
                'username' => $username,
                'email' => $email,
                'password' => $password
            ];
        }
    }
}
?>

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>パスワードフォーム</title>
</head>
<body>
    <h1>パスワードフォーム</h1>
    <form method="post">
        <?php for ($i = 1; $i <= 5; $i++): ?>
            <div>
                <label for="username<?= $i ?>">ユーザーアカウント <?= $i ?>:</label>
                <input type="text" id="username<?= $i ?>" name="username<?= $i ?>">
                <label for="email<?= $i ?>">メールアドレス:</label>
                <input type="email" id="email<?= $i ?>" name="email<?= $i ?>">
            </div>
        <?php endfor; ?>
        <button type="submit">送信</button>
    </form>
    
    <?php if (!empty($errors)): ?>
        <div style="color: red;">
            <?php foreach ($errors as $error): ?>
                <p><?= $error ?></p>
            <?php endforeach; ?>
        </div>
    <?php endif; ?>

    <?php if (!empty($userData)): ?>
        <h2>生成されたパスワード一覧</h2>
        <table border="1">
            <tr>
                <th>ユーザーアカウント</th>
                <th>メールアドレス</th>
                <th>新しいパスワード</th>
            </tr>
            <?php foreach ($userData as $user): ?>
                <tr>
                    <td><?= htmlspecialchars($user['username'], ENT_QUOTES) ?></td>
                    <td><?= htmlspecialchars($user['email'], ENT_QUOTES) ?></td>
                    <td><?= $user['password'] ?></td>
                </tr>
            <?php endforeach; ?>
        </table>
    <?php endif; ?>
</body>
</html>

ns_binding_aborted とは

サイトスピードの調整をしている時に「ns_binding_aborted」という表示がブラウザの解析に出ました。
ns_binding_aborted とは

NS_BINDING_ABORTED は、ウェブブラウザにおけるエラーコードの一つで、通常、ユーザーがページの読み込みをキャンセルした場合に発生します。これは、ユーザーがページの読み込みを途中で止めるか、別のページに移動することによって引き起こされる可能性があります。このエラーは、特にページの読み込みが遅い場合や、ユーザーが素早く複数のリンクをクリックした場合によく見られます。

このエラーコードは、主にブラウザの内部で使用され、開発者がブラウザやウェブページの動作を分析する際に表示されるもので、一般のユーザーはこのエラーを見ることはほぼありません。

NS_BINDING_ABORTED は、ウェブページが正常に機能していないことを示すエラーではなく、ユーザーの行動によって発生する自然なプロセスの一部です。したがって、このエラーが発生しても特に心配する必要はありません。

気になる方はブラウザをリロードして、同じエラーができるか?を確認してください。

AI系のライブラリーのmakeで謎のエラーのとき

AI系のライブラリーのmakeで謎のエラーのとき・・・
ファイルがあるのに、ファイルがないとか、ライブラリのバージョンが違うとか・・・
実際にはあっているのに、エラーになることがあります。
リソース不足でのエラーが多いと思うので、makeする前に
やっておきましょう。

stack sizeを制限なしにしておく。
# ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 13907
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 13907
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

# ulimit -s unlimited
aoki@ai-desktop:~$ ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 13907
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 13907
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

無限値の設定
https://www.ibm.com/docs/ja/wca/3.5.0?topic=tasks-setting-ulimit-values

linuxでCUDA変更12から10へupdate-alternatives

jetson_releaseでみると12シリーズになっている。
しかし、環境パスは10シリーズで統一したのに・・・
とおもっている方、多いと思います。

システムで使われるプログラムのバージョン管理を行うための
update-alternatives
を使います。

$ sudo update-alternatives –config cuda

alternative cuda (/usr/local/cuda を提供) には 2 個の選択肢があります。

  選択肢    パス                優先度  状態
------------------------------------------------------------
* 0            /usr/local/cuda-12.1   121       自動モード
  1            /usr/local/cuda-10.2   102       手動モード
  2            /usr/local/cuda-12.1   121       手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してく ださい: 1
update-alternatives: /usr/local/cuda (cuda) を提供するためにマニュアルモードで /usr/local/cuda-10.2 を使います
aoki@ai-desktop:~$ sudo update-alternatives --config cuda
alternative cuda (/usr/local/cuda を提供) には 2 個の選択肢があります。

1を選びます。

  選択肢    パス                優先度  状態
------------------------------------------------------------
  0            /usr/local/cuda-12.1   121       自動モード
* 1            /usr/local/cuda-10.2   102       手動モード
  2            /usr/local/cuda-12.1   121       手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してく ださい:

jetson_releaseを実行すると、
Libraries: – CUDA: 10.*.*
になっていると思います。

mysqldumpでのエラー

一番単純に下記のコマンドを叩くとエラーになります。

コマンド:
mysqldump -h ホスト名 -u ユーザー名 -p テーブル名 >ファイル名
エラー:
mysqldump: Error: ‘Access denied; you need (at least one of) the PROCESS privilege(s) for this operation’ when trying to dump tablespaces

テーブルスペース情報をダンプしなくてもよい場合、–no-tablespacesを付けると、エラーがでなくなります。
mysqldump –no-tablespaces -h ホスト名 -u ユーザー名 -p テーブル名 >ファイル名

ちなみに下記のオプションでもエラーがでるようになったので、サーバによっては外した方がいい。
–single-transaction

WordPressで400万ページ投稿するには

会社情報のサイト https://awb.jp/
当初はまじめに記事をガンガンアップでしていた。
数万ページくらいでカップラーメンができるくらい遅いページ表示。
ページ投稿もどんどん重くなり、投稿にもカップラーメンできそうでした。
あきらめて、全部消して、ページ投稿の見直し。

■ページ投稿
いろいろなCSVアップツールでやってみたが、タイムアウト等でほぼ無理。
直接投稿のプログラムをたたきます。
データも最小限にします。

wp_insert_postで投稿ページ登録。
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_insert_post

-プログラム例:実際はもう少し複雑—————————————————-

        $post_id = wp_insert_post(array(
            'post_type' => 'post',
            'post_title' => $item[0],
            'post_content' => $item[2],
            'post_status' => 'publish',
            'post_category'  => $item[3],
            'tags_input' =>  $item[4],
            'comment_status' => 'closed',
            'ping_status' => 'closed',
            ));

——————————————————
他のデータとリンクしたい部分をカスタムフィールドに入れておきます。
add post meta
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_post_meta
——————————————————

add_post_meta($post_id, 'hogehoge_number', $item[7])

——————————————————
ひたすら、1ページごとにサーバに投げます。

ページは最小限のデータにして、カスタムフィールド(上記の例だとhogehoge_number)にキーをいれておき、
wpの標準のテーブルと付加価値的データのテーブルを作り、カスタムフィールドで連携して、ページを生成します。

■不具合がでる。
プラグインによってはエラーになります。
サイトマップを作るプラグイン等は特に注意です。

WP「GDPR Cookie Consent」 で「設定を更新できません。」の対応方法

WordPressのコンテンツでの「GDPR(General Data Protection Regulation:一般データ保護規則)」用プラグイン
CookieYes | GDPR Cookie Consent & Compliance Notice (CCPA Ready)

このプラグインは設定が簡単ですが、「「設定を更新できません。」と出て、更新されないことがある。
WAF(Web Application Firewall)でブロックされている可能性があるので、
WAFのログを確認してください。
「*****/edit.php?post_type=cookielawinfo&page=cookie-law-info」というエラーログが出ていたら、
設定の時だけ、WAFをオフにしてください。設定が終わったら、オンにしてください。

CSS & JavaScript Toolbox で不具合?

CSS & JavaScript Toolbox とはWordpressで使うプラグインです。HTMLやCSSやJAVAスクリプトなどを組み込む時に
非常に便利な機能があるプラグインです。

CSS & JavaScript Toolbox

JAVAスクリプトで<script>と書いて「SAVE」ボタンを押しても、反応になし。
バグ?echo “<script>”と書いても「SAVE」ボタンを押しても、反応になし。
いろいろ調べてみて、バージョンをダウングレートしても同じ反応。
CSS & JavaScript Toolbox が原因ではないのでは・・・・

そうです、サーバ側の「WAF」(Web Application Firewall)が原因です。
Webアプリケーションからの攻撃からサイトを守るセキュリティ対策です。

WAFのログを見ると
****/wp-admin/admin-ajax.php?action=cjtoolbox_api&controller=blocks-ajax&CJTAjaxAction=save_blocks
xss-tag-1 

「xss-tag-1」でアクセスを排除したログが出ているのがわかります。
WAFを無効にすると、「SAVE」ができるようになります。

.htaccess でこのルールを許可できますが、セキュリティ上問題が発生する可能性があるので
慎重に設置してください。
SiteGuard_User_ExcludeSig xss-tag-1

EC-CUBE2.11.5 スマートフォン用ユーザー画面遷移図

EC-CUBE の遷移図が2.11シリーズに無い為、弊社で作成したものを公開します。
スマートフォンの検討用に作ったものです。参考にして頂ければ幸いです。
間違い等がありましたらコメント等でご連絡頂ければ幸いです。

EC-CUBE2.11.5 スマートフォン用ユーザー画面遷移図(PDF)
注意:EC-CUBE2.11.5の表示を見て弊社スタッフ判断で遷移図を作成したものですが、
この内容に関して、弊社で一切保証するものではありません。EC-CUBEは株式会社ロックオンの商標です
EC-CUBE2.11.5 スマートフォン用ユーザー画面遷移図  2012年6月27日作成
http://www.abund.jp/source/ec-cube2_11_5_smartphone_20120627.pdf

株式会社アバンドでは、WordPressなどのCMSツールを使った中規模から大規模までのWeb構築を行っております。

まずは、お気軽にお問い合わせください。

EC-CUBE 管理者メニュー 権限設定について

注意:自己責任でお願い致します。

EC-CUBE の管理画面では

ログイン者ごとに権限を設定できる仕様になっています。

現在のところ、権限ごとに画面を制御するのではなく、

管理者メニューの項目を権限によって非表示することで

簡易的な制御をしています。

(この経緯は、EC-CUBEのコミュニティーサイトで議論されており

設定方法も、コミュニティサイトにのっています)

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=398&forum=7

今回、権限を4種類ほど設定して権限ごとにメニュー項目の表示非表示をするにあたり

メニュー項目の設定の一覧を作成しました。

 

その際に、

data/Smarty/templates/admin/design/subnavi.tpl

を修正いたしました。

修正内容は以下のとおりです。


<ul>
<li id="navi-design-pc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>PC</span></a>
<ul>
<li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-pc-layout"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>レイアウト設定</span></a></li>
<li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-pc-main"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ページ詳細設定</span></a></li>
<li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-pc-bloc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ブロック設定</span></a></li>
<li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-pc-header"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ヘッダー/フッター設定</span></a></li>
<li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-pc-css"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>CSS設定</span></a></li>
<li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-pc-template"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>テンプレート設定</span></a></li>
<li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-pc-add"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>テンプレート追加</span></a></li>
</ul>
</li>
<li id="navi-design-mobile"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>モバイル</span></a>
<ul>
<li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-mobile-layout-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>レイアウト設定</span></a></li>
<li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-mobile-main-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ページ詳細設定</span></a></li>
<li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-mobile-bloc-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ブロック設定</span></a></li>
<li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-mobile-header-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ヘッダー/フッター設定</span></a></li>
<li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-mobile-css-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>CSS設定</span></a></li>
<li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-mobile-template-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>テンプレート設定</span></a></li>
<li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-mobile-add-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>テンプレート追加</span></a></li>
</ul>
</li>
<li id="navi-design-sphone"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>スマートフォン</span></a>
<ul>
<li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-sphone-layout"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>レイアウト設定</span></a></li>
<li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-sphone-main"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ページ詳細設定</span></a></li>
<li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-sphone-bloc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ブロック設定</span></a></li>
<li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-sphone-header"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ヘッダー/フッター設定</span></a></li>
<li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-sphone-css"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>CSS設定</span></a></li>
<li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-sphone-template"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>テンプレート設定</span></a></li>
<li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-sphone-add"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>テンプレート追加</span></a></li>
</ul>
</li>
</ul>

書き換え部分は <… id=’navi-******’ …> の部分のみです。

検証は2.11.4で行いました。

以下はcssに設定が簡単に出来るようにまとめたものです。


/*  管理者メニュー id一覧                                                     */
/*  管理者の権限番号毎にcssに設定することによりメニューを非表示に出来る       */
/*  デザイン部分サブメニューのidの設定については、                            */
/*  data/Smarty/templates/admin/design/subnavi.tpl書き換えを行っているため、  */
/*  一部既存のものと対応していない                                            */
/*  authority_* の*部分には権限番号を設定すること                             */
/*  権限番号については、mtb_authorityを参照                                   */
/*  cssファイルは html/user_data/packages/admin/css/admin_contents.css        */
/*  cssの設定を行ってメニューの非表示が出来るだけである                       */
/*  管理画面ログイン後、直接urlを指定した場合はその画面を操作できます         */

,.authority_* #navi-basis                   /* 基本情報管理             */
,.authority_* #navi-basis-index             /* -SHOPマスター           */
,.authority_* #navi-basis-tradelaw          /* -特定商取引法           */
,.authority_* #navi-basis-delivery          /* -配送方法設定           */
,.authority_* #navi-basis-payment           /* -支払方法設定           */
,.authority_* #navi-basis-point             /* -ポイント設定           */
,.authority_* #navi-basis-mail              /* -メール設定             */
,.authority_* #navi-basis-seo               /* -SEO管理                */
,.authority_* #navi-basis-kiyaku            /* -会員規約設定           */
,.authority_* #navi-basis-zip               /* -郵便番号DB登録         */
,.authority_* #navi-basis-holiday           /* -定休日管理             */

,.authority_* #navi-customer                /* 顧客管理                 */
,.authority_* #navi-customer-index          /* -顧客マスター           */
,.authority_* #navi-customer-customer       /* -顧客登録               */

,.authority_* #navi-order                   /* 受注管理                 */
,.authority_* #navi-order-index             /* -受注管理               */
,.authority_* #navi-order-add               /* -受注登録               */
,.authority_* #navi-order-status            /* -対応状況管理           */

,.authority_* #navi-products                /* 商品管理                 */
,.authority_* #navi-products-index          /* -商品マスター           */
,.authority_* #navi-products-product        /* -商品登録               */
,.authority_* #navi-products-uploadcsv      /* -商品登録CSV            */
,.authority_* #navi-products-class          /* -規格管理               */
,.authority_* #navi-products-category       /* -カテゴリー登録         */
,.authority_* #navi-products-category       /* -カテゴリー登録CSV      */
,.authority_* #navi-products-maker          /* -メーカー登録           */
,.authority_* #navi-products-rank           /* -商品並び替え           */
,.authority_* #navi-products-review         /* -レビュー管理           */

,.authority_* #navi-total                   /* 売上集計                 */
,.authority_* #navi-total-term              /* -期間別集計             */
,.authority_* #navi-total-products          /* -商品別集計             */
,.authority_* #navi-total-age               /* -年代別集計             */
,.authority_* #navi-total-job               /* -職業別集計             */
,.authority_* #navi-total-member            /* -会員別集計             */

,.authority_* #navi-mail                    /* メルマガ管理             */
,.authority_* #navi-mail-index              /* -配信内容設定           */
,.authority_* #navi-mail-template           /* -テンプレート設定       */
,.authority_* #navi-mail-history            /* -配信履歴               */

,.authority_* #navi-contents                /* コンテンツ管理           */
,.authority_* #navi-contents-index          /* -新着情報管理           */
,.authority_* #navi-contents-recommend      /* -おすすめ商品管理       */
,.authority_* #navi-contents-file           /* -ファイル管理           */
,.authority_* #navi-contents-csv            /* -CSV出力項目設定        */
,.authority_* #navi-csv-product             /* |-商品管理              */
,.authority_* #navi-csv-customer            /* |-会員管理              */
,.authority_* #navi-csv-order               /* |-受注管理              */
,.authority_* #navi-csv-category            /* |-カテゴリ              */
,.authority_* #navi-csv-review              /* |-レビュー              */
,.authority_* #navi-csv-sql                 /* |-高度な設定            */

,.authority_* #navi-design                  /* デザイン管理             */
,.authority_* #navi-design-pc               /* -PC (id 追加)                    */
,.authority_* #navi-design-pc-layout        /* |-レイアウト設定(id 修正)        */
,.authority_* #navi-design-pc-main          /* |-ページ詳細設定(id 修正)        */
,.authority_* #navi-design-pc-bloc          /* |-ブロック設定(id 修正)          */
,.authority_* #navi-design-pc-header        /* |-ヘッダー/フッター設定(id 修正) */
,.authority_* #navi-design-pc-css           /* |-CSS設定(id 修正)               */
,.authority_* #navi-design-pc-template      /* |-テンプレート設定(id 修正)      */
,.authority_* #navi-design-pc-add           /* |-テンプレート追加(id 修正)      */
,.authority_* #navi-design-mobile           /* -モバイル(id 追加)               */
,.authority_* #navi-design-mobile-layout    /* |-レイアウト設定(id 修正)        */
,.authority_* #navi-design-mobile-main      /* |-ページ詳細設定(id 修正)        */
,.authority_* #navi-design-mobile-bloc      /* |-ブロック設定(id 修正)          */
,.authority_* #navi-design-mobile-header    /* |-ヘッダー/フッター設定(id 修正) */
,.authority_* #navi-design-mobile-css       /* |-CSS設定(id 修正)               */
,.authority_* #navi-design-mobile-template  /* |-テンプレート設定(id 修正)      */
,.authority_* #navi-design-mobile-add       /* |-テンプレート追加(id 修正)      */
,.authority_* #navi-design-sphone           /* -スマートフォン(id 追加)         */
,.authority_* #navi-design-sphone-layout    /* |-レイアウト設定(id 修正)        */
,.authority_* #navi-design-sphone-main      /* |-ページ詳細設定(id 修正)        */
,.authority_* #navi-design-sphone-bloc      /* |-ブロック設定(id 修正)          */
,.authority_* #navi-design-sphone-header    /* |-ヘッダー/フッター設定(id 修正) */
,.authority_* #navi-design-sphone-css       /* |-CSS設定(id 修正)               */
,.authority_* #navi-design-sphone-template  /* |-テンプレート設定(id 修正)      */
,.authority_* #navi-design-sphone-add       /* |-テンプレート追加(id 修正)      */
,.authority_* #navi-system                  /* システム設定             */

,.authority_* #navi-system-index            /* -メンバー管理           */
,.authority_* #navi-system-bkup             /* -バックアップ管理       */
,.authority_* #navi-system-parameter        /* -パラメーター設定       */
,.authority_* #navi-system-masterdata       /* -マスターデータ管理     */
,.authority_* #navi-system-adminarea        /* -管理画面設定           */
,.authority_* #navi-system-system           /* -システム情報           */
,.authority_* #navi-system-plugin           /* -プラグイン管理         */
,.authority_* #navi-system-log              /* -EC-CUBE ログ表示       */
,.authority_* #navi-system-editdb           /* -高度なデータベース管理 */

,.authority_* #navi-ownersstore             /* オーナーズストア         */
,.authority_* #navi-ownersstore-index       /* -購入商品一覧           */
,.authority_* #navi-ownersstore-settings    /* -認証キー設定           */
,.authority_* #navi-ownersstore-log         /* -ログ管理               */

使用方法についての詳細はまた。