답변:
모델 파일을 열고 다음 클래스를 모델 클래스 안에 추가하십시오.
public function getContentTable($type = 'Content', $prefix = 'JTable', $config = array())
{
return JTable::getInstance($type, $prefix, $config);
}
이제 모델 클래스 내에 메소드를 정의하여 기사를 추가 할 수 있습니다. 이 같은:
public function addArticle()
{
$table = $this->getContentTable();
$table->title = "Foo";
$table->alias = "foo";
// or
// $table->alias = JApplication::stringURLSafe($table->title);
$table->catid = 2;
$table->state = 1;
// and so on!
// then save it
$table->save();
}
또한 비 전통적인 방식으로 기사를로드해야했습니다. 이를 위해 많은 Joomla 코드를 활용할 수있었습니다. 필요에 따라이를 조정해야합니다.
이 함수는 id (숫자) 또는 별칭이 지정된 artlice를 반환합니다.
function loadArticle($id){
$app = JFactory::getApplication();
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$selects = array('a.introtext','a.publish_up','a.publish_down');
$query->select($selects);
$query->from('#__content as a');
// select the alias or id
$where = 'a.title = ' . $db->q(NNText::html_entity_decoder($id));
$where .= ' OR a.alias = ' . $db->q(NNText::html_entity_decoder($id));
if (is_numeric($id)) {
$where .= ' OR a.id = ' . $id;
}
$query->where('(' . $where . ')');
// check the publish and unpublish dates
$now = JFactory::getDate('now','UTC');
$nullDate = $db->getNullDate();
$query->where('a.state = 1');
$query->where('( a.publish_up = ' . $db->q($nullDate) . ' OR a.publish_up <= ' . $db->q($now) . ' )');
$query->where('( a.publish_down = ' . $db->q($nullDate) . ' OR a.publish_down >= ' . $db->q($now) . ' )');
$db->setQuery($query);
$article = $db->loadObject();
return $article;
}