Bagaimana cara mengatur param komponen secara dinamis?

9

Untuk mengambil param yang saya gunakan:

$myparam = JComponentHelper::getParams('com_mycomponent')->get('myparam');

Tapi apa metode yang tepat untuk menyimpan param komponen?

Pengembangan web COBIZ
sumber
Maksud saya selain menggunakan tombol Pilihan
COBIZ webdevelopment
Jika Anda tidak menggunakan tombol opsi, bagaimana Anda mendapatkan nilai yang ingin Anda simpan?
David Fritsch
Tidak terlalu mengerti pertanyaan Anda. Dari lokasi mana pun, di pengontrol komponen lain misalnya, saya ingin menetapkan nilai baru ke beberapa param komponen lainnya.
Pengembangan web COBIZ
Anda dapat mencoba membangun komponen menggunakan component-creator.com dan melihat kode yang dihasilkannya ketika menambahkan parameter ke komponen Anda.
Søren Beck Jensen

Jawaban:

15

Banyak parameter komponen kita bergantung pada kondisi eksternal, jadi kita perlu mengubahnya secara berkala dengan beberapa pemrosesan semalam. Inilah kode yang kami gunakan (disesuaikan untuk digunakan dengan com_content).

// Load the current component params.
$params = JComponentHelper::getParams('com_content');
// Set new value of param(s)
$params->set('show_title', 1);

// Save the parameters
$componentid = JComponentHelper::getComponent('com_content')->id;
$table = JTable::getInstance('extension');
$table->load($componentid);
$table->bind(array('params' => $params->toString()));

// check for error
if (!$table->check()) {
    echo $table->getError();
    return false;
}
// Save to database
if (!$table->store()) {
    echo $table->getError();
    return false;
}
PDB
sumber
1
Terima kasih. Ini terlihat sangat bagus! Jadi saya tidak mengabaikan metode yang ada, itu benar-benar membutuhkan beberapa kode tambahan. Saya akan menandai jawaban Anda BAIK secepatnya, ketika saya telah mengujinya. (Tapi karena Anda sudah menggunakan ini, ini mungkin jawaban yang tepat pula)
COBIZ webdevelopment
1
Senang membantu ... tidak dapat mengikuti versi Joomla sebaik yang saya inginkan, jadi mungkin ada metode, tetapi yang ini telah bekerja untuk kita untuk sementara waktu sekarang ... tepuk tangan
PDB