0
내가 만든 사용자 지정 구성 요소에 대한 라우팅을 추가하려고하는데이 작업을 수행하는 방법에 대한 문서를 따랐습니다. 그러나 router.php 파일을 구성 요소에 업로드하면 사이트가 비어있게되었습니다. 내가 무엇이든 놓치고 있는지 확실하지 않습니다. 마치 전체 사이트가이 새 파일 만 참조하는 것처럼 비어있는 페이지를 제공합니다.joomla 구성 요소 breaks 사이트에 router.php 추가
에 SEF URL을 구성 요소의 URL은 다음과 같습니다
index.php/en/products/trousers
index.php/en/products/555-123-20
구성 요소 \의 router.php
:index.php/en/products
내가 라우터를 구축하는 방식은 링크가 다음과 같이하는 것입니다
function componentBuildRoute(&$query)
{
$segments = array();
if(isset($query['view'])) {
$segments[] = $query['view'];
unset($query['view']);
}
if(isset($query['cat'])) {
$segments[] = $query['cat'];
unset($query['cat']);
}
if(isset($query['itemid'])) {
$segments[] = $query['itemid'];
unset($query['itemid']);
}
if(isset($query['color'])) {
$segments[] = $query['color'];
unset($query['color']);
}
return $segments;
}
function componentParseRoute($segments) {
$vars = array();
switch($segments[0])
{
case 'listing':
$vars['view'] = $this->chooseView($segments[1]);
break;
case 'item':
$vars['id'] = $segments[1].'-'.$segments[2];
break;
}
return $vars;
}
private function chooseView($cat) {
switch($cat) {
case '1':
$cat = 'trousers';
break;
case '2':
$cat = 'jackets';
break;
}
return $cat;
}
왜 non-method 함수에'private' 키워드를 사용하고 있습니까? – MasterAM
"비 메소드 기능"이란 무엇입니까? 이 함수는'componentParseRoute' 내에서 사용됩니다. – ehz350
정확하게 클래스 메소드가 아닙니다. 해당 키워드를 제거하여 시작하십시오. 개발 중에 PHP 오류가 발생하면 PHP 오류가 발생하지 않습니다. 다음으로 구성 요소의 이름은 무엇입니까? 함수의 접두사는'function ParseRoute ($ segments) {'등. –
MasterAM