2009-12-08 2 views

답변

3

내가 과거에 이것을 극복 할 수 있었던 유일한 방법은 공유 된 부분을위한 플러그인을 만드는 것이 었습니다.

IE하십시오 모듈 폴더를 생성, TemplatesPlugin이 내

라는 플러그인 아래의 폴더를 만들고 그 안에, 일반 모듈의 폴더 구조를 만들 수 있습니다. 템플릿 경로의

예 :

sf_root/plugins/TemplatesPlugin/modules/book/pageSuccess.php 
sf_root/plugins/TemplatesPlugin/modules/book/_title.php 

플러그인을 확인이 설정에서 활성화되어/당신이 enableAllPluginsExcept를 사용하는 경우 ProjectConfiguration.class.php은 (는 것, 그렇지 않으면 플러그인의 배열에 추가해야 이미 거기에 있어야합니다).

그러면 예를 들어, 다른 템플릿으로 이러한 템플릿에 액세스 할 수 있습니다

include_partial('book/title', array('title'=>'hello')); 

을이 해킹의 비트를 느낀다 동안, 꽤 잘 작동합니다.

+2

플러그인의 모듈에있는 파일의 이름이 고유해야한다는 것을 알게되었습니다. (예) 책이 프로젝트에 이미 존재하고 플러그인에서 만들면 기존 모듈 책 (백엔드 또는 프론트 엔드에 있음)에서 먼저 페이지를 검색 한 다음 플러그인 폴더에서 페이지를 검색하려고 시도합니다. 충돌이 일어나지 않도록하려면 플러그인에서 고유 한 모듈 이름도 사용하십시오. – Gerbrand

+0

예, 좋은 지적입니다. 또한 강력한 기능 일 수도 있습니다. 플러그인에서 하나의 템플릿을 오버 라이드하거나 앱의 전체 플러그인을 복제하거나 플러그인 파일을 편집 할 필요가 없습니다. – benlumley

0

아직 심포니 전문가가 아닙니다. ("심포니에 대한 확실한 안내서"를 이미 읽었습니다.) 실수를 할 수 있습니다.

공식 문서에 다른 응용 프로그램의 공통 템플릿에 대한 언급이 없습니다. 단일 응용 프로그램 내 공통 템플릿 에 가장 적합한 디렉토리는입니다. apps/templates /.

누군가가 답을 알고있을 수도 있습니다. 읽는 것이 재미있을 것입니다. 행운을 비네.

+0

당신이 말한 것은 정확합니다.이 문제에 대한 공식적인 문서가 없으므로 여기에서 질문하고 있습니다.이 문제에 대한 정답을 모르겠습니다. apps/templates /에는 해당 앱의 전체 템플릿이 포함되어 있습니다. 내가 찾고있는 것은 다른 응용 프로그램에서 템플릿을 사용할 수 있다는 것입니다 ... – Kennethvr

+0

불행히도, 나는 그런 일에 매혹되지 않았으므로 당신을 도울 수 없습니다. 죄송합니다. – Alex

1

플러그인을 사용하는 것보다 간단한 방법이 있습니다. this post을보십시오.

그는 단지 apps/appName/config/appNameConfigurations.class.php에서 응용 프로그램 구성을 확장하고 있습니다 :

class appNameConfiguration extends sfApplicationConfiguration { 

    public function configure() { 
    sfConfig::set('sf_app_template_dir', sfConfig::get('sf_root_dir') . '/templates'); 
    } 

} 

이러한 접근 방식은 나에게 청소기 보인다. 심포니가 템플릿을 찾거나 그냥 설정하는 경로를 확장 할 수 있는지 여부는 알 수 없습니다.

+0

좋은 찾기. 이게 내 방법 이상이야. 경로에 추가하는 것이 아니라 변화하는 경우에도 변경 될 수 있다고 확신합니다. 접근 방식은 내가 좋아하는 것이다. – benlumley

+0

이것을 사용하여 보았을 때, 플러그인으로 추가로 추가하지 않고 apps/appname/templates 아래의 템플릿 dir을 다른 것으로 대체합니다. 그리고 플러그인을 사용하는 것 이외의 다른 방법을 찾을 수 없습니다. 적어도 나를 위해, 그것은 나쁜 해결책처럼 느낀다. – benlumley

관련 문제