prestashop モジュールを作成しています。そして、インストール機能内に、モジュールの操作を管理するための [バック オフィス] タブを作成したいと考えています。Prestashop クラスを使用して、データベースに直接悪いものを作成せずにそれは可能ですか?
質問する
6011 次
4 に答える
5
Prestashop には、これを行うためのクラスがあります。
これは Tab クラスです。関数を使用しますadd
。
見る:
$tab = new Tab();
$tab->class_name = 'your_class';
$tab->id_parent = 0;
$tab->module = 'Your module';
$tab->name[(int)(Configuration::get('PS_LANG_DEFAULT'))] = $this->l('Module name');
return $tab->add();
于 2013-04-16T13:45:00.490 に答える
4
admin/tab に admintap ファイルを作成する必要はありません。
このモジュールのみをダウンロードして、その仕組みを確認してください Prestashop Autoupgrade モジュール
それ自体に新しいタブを作成する標準のprestashopモジュールです
于 2013-01-08T17:10:50.803 に答える
1
はい、できます。クラスのテーブル データベースを作成object model
し、クラスをテーブル データベースに挿入しますtab
。
たとえば、モジュールmymodule
のドキュメント 1.4を変更します。
public function install()
{
if (parent::install() == false OR
!$this-registerHook('leftColumn') OR
!Db::getInstance()-Execute('
CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'test` (
`id_test` int(6) NOT NULL AUTO_INCREMENT,
`test` varchar(255) NOT NULL,
PRIMARY KEY(`id_test`)
) ENGINE='._MYSQL_ENGINE_.' default CHARSET=utf8') OR
!$this-setTab()
)
return false;
return true;
}
public function setTab() {
if (!Db::getInstance()-Execute(
"INSERT INTO `"._DB_PREFIX_."tab`
(`class_name`, `position`, `id_parent`)
VALUES ('AdminTest', '10', '1')"
))
return false;
$id = Db::getInstance()-insert_id();
$count = (int)Db::getInstance()-getValue('SELECT COUNT(*) FROM '._DB_PREFIX_.'lang');
while ($count 0) {
if (!Db::getInstance()-Execute(
"INSERT INTO `"._DB_PREFIX_."tab_lang`
(`id_tab`, `id_lang`, `name`)
VALUES (".$id.", ". $count.", 'Test Tab')"
))
return false;
$count--;
}
if (!TabCore::initAccess($id))
return false;
return true;
}
関数を変更してinstall
関数を追加してみてくださいsetTab
。モジュールに合わせて変更できます。
于 2012-10-25T13:15:34.997 に答える
1
はい、可能です。モジュールに独自のタブまたはサブタブを与えることができます。次のドキュメントをご覧ください。
唯一の問題は、モジュールフォルダーの外にファイルを追加し、バックオフィスで手動でタブを追加する必要があることです...
于 2012-10-04T07:33:34.563 に答える