2012-10-15 10 views
2

웹 사이트의 문맥 배경을 만들기 위해 플러그인과 함께 작동하는 모듈을 작성 중입니다.컨텍스트 모듈 - Joomla 2.5

전제 조건은 다음과 같습니다. 사용자가 홈 페이지에있는 경우 배경 이미지는 플러그인 매개 변수의 기본값으로 지정된 것입니다.

사용자가 범주 목록 페이지에있는 경우 배경 이미지는 (사용자 지정) 구성 요소 매개 변수의 기본값으로 지정된 모든 것입니다.

사용자가 기사 목록 페이지에있는 경우 배경 이미지는 (사용자 지정) 범주 매개 변수에서 기본값으로 지정된 모든 것입니다.

사용자가 기사 페이지에있는 경우 배경 이미지는 (사용자 지정) 아티클 매개 변수의 기본값으로 지정된 것입니다.

더 재미있게 만들기 위해 기사 대신 프로필을 표시하는 구성 요소를 직접 작성했습니다. 그것들은 정확히 똑같은 방법으로 작동하지만, Content 구성 요소가 수행하는 모든 코딩을 포함하지는 않습니다. 커스텀 컴포넌트를 작성해야하는 이유는이 질문의 범위를 벗어납니다.

플러그인은 페이지에 기본 마크 업을 생성하고 추가하며 사이트 전체에서 문제없이 작동합니다. 홈페이지는 내가 필요한만큼 정확하게 작동합니다.

모듈은 스타일 시트 등을 추가해야합니다. 문서의 헤더에 붙여 넣습니다. 문제는 모듈이 먼저 컨텍스트를 확인한 다음 지정된 컨텍스트에서 매개 변수를로드하기로되어 있다는 것입니다. 여기 내 문제 : 위의 규칙에 따라 컨텍스트를 확인하고 매개 변수를 읽는 코드를 찾을 수 없습니다.

나는 (모듈의 도움없이) 단지 플러그인으로 시도했지만 컨텐츠 플러그인으로 홈 페이지에서 작동하지 않았고 시스템 플러그인으로 컨텐츠 매개 변수에 액세스하지 못했습니다. 나는 또한 함께 작동하는 두 개의 플러그인을 가지고 있다고 생각했지만, 이것은 나쁜 습관으로 보입니다. 콘텐트 나 시스템은 아니지만 두 콘텍스트 모두에 액세스 할 수있는 새로운 플러그인일까요?

추가 정보 :

나는 개체의 다른 그룹을 대표하는 구성 요소의 수를 작성했습니다. 각 구성 요소에는 고유 한 매개 변수가 있지만 모든 구성 요소 중 일부 공통 매개 변수도 있습니다. 각 구성 요소는 Joomla '배너'및 '연락처'구성 요소와 동일한 방식으로 '인스턴스화'되는 기능을 가지고 있습니다. 일반적인 매개 변수의 예는 'gallery'매개 변수입니다. 모든 구성 요소에는 '갤러리'매개 변수가 있으며 각 '인스턴스'에는 자체 값을 갖는 옵션이 있습니다. 'gallery'매개 변수에는 특정 구성 요소 인스턴스와 관련된 이미지가 포함 된 폴더의 폴더 URL이 포함됩니다.

이 모두 함께 끌어 생각하는 방법의 예

:

내가의 컨테이너 역할을 할 '드라이버'라는 구성 요소가 - 당신이 그것을 짐작 - 드라이버. 구성 요소 관리 메뉴에서 드라이버를 추가하고 이름, 나이 등을 지정할 수 있으며 드라이버의 머그컵 및 갤러리 URL을 포함 할 수 있습니다.

사이트 측의 사용자가 드라이버 페이지를로드 할 때 갤러리 폴더의 모든 이미지와 배경에서 회전 할 코드를로드해야합니다. 드라이버의 옵션 페이지를 참조하지 않고도 언제든지 이미지를 추가/제거/교체 할 수 있기를 원합니다. 각 배경 이미지가로드 될 때 EXIF ​​메타 데이터가 이미지에서 읽히고 축소판 그림과 함께 페이지 아래쪽의 전경에 표시됩니다.

이제는 사이트 루트에서 완벽하게 작동하며 대부분 전체적으로 작동합니다. 추락하는 부분은 드라이버 인스턴스의 변수를 모듈별로 검색하는 것입니다. 물론, 나는 깔끔한 SQL과 db 호출을 작성할 수 있지만, 모듈이 컴포넌트, 카테고리 및 기사 매개 변수를 검색하는 방법이 가장 분명하다.

+0

Mario의 응답에 더하여, 약간의 컨텍스트와 세부 사항이 위에 추가되었습니다. –

답변

0

moduleclass_sfx를 사용해 보셨습니까? ("를 myComponent"() 따옴표없이 예) 공간을 후행 원하는 클래스를 입력 class_sfx 모듈 각 모듈/구성 요소 매개 변수 옵션을 다음

.myModule { 
    background-image: url('myimage.png'); 
} 
.myComponent { 
    background-image: url('mycompimage.png'); 
} 
.myArticle { 
    background-image: url('myarticleimage.png'); 
} 

: 같은 CSS 클래스를 정의합니다. 갈

또 다른 방법은 부품/모듈 파라미터를 정의하고 호출에 의해 아마도 :

<body style="background-image: url('/path_to_image_folder/<php echo $params->get('param_name') ?>');"> 

또는 아마이 당신의 질문을 이해하지만 희망이 도움이되지 않았다.

+0

마리오, 응답 주셔서 감사합니다. 나는 당신의 생각을보고 의견을 높이 평가할 수는 있지만,이 경우 나는 그것이 필요를 충족시키지 못한다고 생각합니다. 위의 정보를 더 명확하게하기를 희망합니다. :-) –