多くの場合、顧客は未知のものを要求するので、エンジンを尾とたてがみで遅らせる必要があります。 Webasystは、コードロジックの観点からは考えられず、神秘的であり、インターネット上には適切なマニュアルがほとんどありません。 したがって、私はここで、試行錯誤の苦い経験から学んだことを書きます。 webasystにはいくつかのタイプのモジュールがあり、それぞれについて書く予定ですが、直接プログラミングするのではなく、エンジンにモジュールを埋め込む方法についてのみ説明します。
この記事を読むすべての人がphpを所有していると想定されています。
まず、管理パネルの各要素には独自の要素があります。
たとえば、製品のブックマークは9でした

この番号は、
SC_divisionsテーブルの
xIDに対応しています。
adminモジュールの作成は、SC_divisionsテーブルに新しいレコードを埋め込むという事実から始まります。
INSERT INTO `SC_divisions` SET xName='pgn_mymodule', xParentID=9, xEnabled=1, xPriority=100;
xParentID = 9であることに注意してください。 つまり、このモジュールの親は製品になります。 つまり このモジュールは[製品]タブのタブになります。
xPriorityパラメーターは、タブ間の位置を担当します。
xIDが自動インクリメントを割り当てたものを確認し、それを覚えています。 この例では
209であるとします。
次に、
SC_division_interfaceテーブルに移動します
。 ここでは、一方ではすべてが明確になっていますが、もう一方ではそうではありません。 そして、ここに「そうではない」が最も重要です。
私たちにとって重要なフィールド:
xDivisionID-明らかに、これはモジュールの識別子です。
209であることに同意しました。
xInterface-モジュールの名前はこのフィールドに格納され、奇妙なことにモジュールへのパスが格納されます。
モジュール名の前にある数字の意味を理解するために、
SC_module_configsテーブルを見てみましょう。
ConfigKeyフィールドを見ると、
/ published / SC / html / scripts / modules内
のフォルダー構造に
従っていることがわかり
ます 。
うん。 そして、
adminscreensにモジュールを入力したいと思います。
ModuleConfigIDが adminscreensに対して何であるかを調べます。 これは
48です。
今、私たちにとって謎はありません、そして安全に書くことができます:
INSERT INTO SC_division_interface SET xDivisionID=209, xInterface=48_mymodule;
素晴らしい。 仕事の半分が完了しました。
/ published / SC / html / scripts / modules / adminscreens / _methodsに移動し 、そこにファイルを作成します:
mymodule.xml <?xml version="1.0" encoding="UTF-8"?> <interfaces> <interface> <name>My Module</name> <key>mymodule</key> </interface> </interfaces>
mymodule.php <?php class MymoduleController extends ActionsController { function mymodule(){ } function main(){ $Register = &Register::getInstance(); $smarty = &$Register->get(VAR_SMARTY);
テキスト
mymoduleがある mymodule.phpの場所に注意する必要があります。 モジュールの名前と一致する必要があります。 そうしないと、何も機能しません。
残りはほとんどありません。 つまり、管理者にこのモジュールを見る機会を与えます。 何らかの理由で、この瞬間はすべての同様の記事で省略されており、以前に推測することは容易ではありません。 通常、モジュールは機能しますが、表示されません。 これを見つけるために、webasystコードを徹底的にシャベルする必要がありました。 解決策は次のとおりです。
プレート
U_ACCESSRIGHTSを見て
ください 。 次の行を追加します。
INSERT INTO U_ACCESSRIGHTS SET AR_ID='ADMIN', AR_PATH='/ROOT/SC/FUNCTIONS', AR_OBJECT_ID=SC__209, AR_VALUE=1;
この行の主なものは何ですか? 正解
-SC__209 209はモジュールの番号です。
翻訳
pgn_mymoduleを追加するために残り
ますINSERT INTO `SC_local` (`id`, `lang_id`, `value`, `group`, `subgroup`) VALUES
('pgn_mymodule', 1, ' ', 'general', 'prd'),
('pgn_mymodule', 2, 'My module', 'general', 'prd');
そしてそれだけです。 ここで、
「製品」タブに移動すると、
「マイモジュール」タブ内に表示され、
mymodule.phpのコードが実行されます。