Bir bileşenin parametresini dinamik olarak nasıl ayarlayabilirim?


9

Ben bir param yakalamak için kullanın:

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

Ancak bir bileşenin parametresini depolamak için doğru yöntem nedir?


Seçenekler düğmesini kullanmak dışında
— COBIZ webdevelopment

Seçenekler düğmesini kullanmıyorsanız, saklamak istediğiniz değeri nasıl elde edersiniz?
— David Fritsch

Sorunuzu gerçekten anlamayın. Herhangi bir yerden, örneğin başka bir bileşen denetleyicisinde, diğer bazı bileşenler parametresine yeni bir değer ayarlamak istiyorum.
— COBIZ webdevelopment

Sen kullanarak bir bileşeni oluşturmak için deneyebilirsiniz component-creator.com ve bileşene parametreleri eklerken oluşturduğu kodu görüntüleyin.
— Søren Beck Jensen

Yanıtlar:


15

Bileşenimizin parametrelerinin çoğu dış koşullara bağlıdır, bu nedenle bunları bir gecelik işleme ile periyodik olarak değiştirmemiz gerekir. İşte kullandığımız kod (com_content ile kullanım için uyarlanmıştır).

// 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;
}

1
Teşekkürler. Bu harika görünüyor! Bu yüzden mevcut bir yönteme bakmıyordum, gerçekten bazı ekstra kodlara ihtiyacı var. Test ettiğimde cevabınızı en iyi şekilde işaretlerim. (Ancak bunu zaten kullandığınız için, muhtemelen doğru cevaptır)
— COBIZ webdevelopment

1
Yardım etmekten mutluluk duyuyorum ... Joomla versiyonlarına ayak uydurabildiğim gibi, bu yüzden bir yöntem olabilir, ama bu bizim için bir süredir çalışıyor ... Şerefe
— GSYİH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.