구성 요소의 매개 변수를 동적으로 설정하는 방법은 무엇입니까?


9

내가 사용하는 매개 변수를 검색하려면 다음을 사용하십시오.

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

그러나 구성 요소의 매개 변수를 저장하는 올바른 방법은 무엇입니까?


옵션 버튼을 사용하는 것 외에
COBIZ 웹 개발

옵션 버튼을 사용하지 않는 경우 저장할 값을 어떻게 얻습니까?
David Fritsch

당신의 질문을 정말로 이해하지 마십시오. 예를 들어 다른 구성 요소 컨트롤러의 어느 위치에서나 다른 구성 요소 매개 변수에 새 값을 설정하고 싶습니다.
COBIZ 웹 개발

component-creator.com을 사용하여 구성 요소를 작성 하고 구성 요소 에 매개 변수를 추가 할 때 생성되는 코드를 볼 수 있습니다.
Søren Beck Jensen

답변:


15

구성 요소의 많은 매개 변수는 외부 조건에 따라 달라 지므로 야간 처리를 통해 주기적으로 변경해야합니다. 우리가 사용하는 코드는 다음과 같습니다 (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;
}

1
감사. 이것은 매우 좋아 보인다! 따라서 기존 방법을 간과하지 않았으므로 실제로 추가 코드가 필요합니다. 나는 그것을 테스트했을 때 당신의 대답을 최대한 빨리 표시 할 것입니다. (그러나 이미 이것을 사용하고 있기 때문에 아마도 정답 일 것입니다.)
COBIZ webdevelopment

1
기꺼이 도와주세요 ... 나가 원하는대로 Joomla 버전을 따라갈 수 없기 때문에 방법이 있을지 모르지만이 방법은 잠시 동안 우리를 위해 일해 왔습니다 ... 건배
GDP
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.