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.