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


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.