문제

저는 웹사이트 편집을 간단하게 만들어주는 개인 프로젝트용 CMS를 디자인하고 있습니다.모듈화를 지원합니다.그러나 아직 베타 버전이므로 개선할 수 있는 부분이 있는지 또는 이 시나리오에 대해 완전히 다른 접근 방식이 있는지 묻고 있습니다.

우선, HTML, CSS 및 JS 세트인 "테마"가 있습니다.각 테마에는 각각 별도의 파일(예: full-width.html, liquid.html 등)에 있는 다양한 스타일이 포함될 수 있습니다.그런 다음 관리자는 페이지마다 다른 스타일을 선택할 수 있습니다.일부 페이지에는 열이 1개만 있고 일부 페이지에는 사이드바 등이 있습니다.

현재 작동 방식은 스타일 HTML이 다음과 같다는 것입니다.

<html>
<body>
<div id="header">{block id="header"}</div>
<ul>
{blocks id="list"}

{block}
<li>
{content}
</li>
{/block}

{/blocks}
</ul>
</body>
</html>

테마 작성자는 관리자가 모듈을 배치할 수 있는 위치를 정의하는 "블록"을 배치할 수 있습니다.이러한 모듈은 단순한 텍스트일 수도 있고, 소리 상자나 로그인 양식과 같은 더 복잡한 HTML을 포함할 수도 있습니다.어쨌든 블록은 다른 블록 내부에 있는 블록을 제외하고 모두 ID를 가지고 있어야 합니다.이렇게 하면 관리자가 모듈을 배치할 위치를 결정할 때 다음과 같은 양식을 받게 됩니다.

 Header module: --select--
 List modules:
     --select--
     --select-- (automatically adds new selects as needed)

--select--는 설치된 모든 모듈을 포함하는 HTML 선택 상자입니다.ID는 관리자가 변경 사항을 저장하고 미리 볼 필요 없이 선택한 모듈이 사이트에서 어디로 가는지 더 쉽게 이해할 수 있도록 하는 데 사용됩니다.

테마 생성자는 {blocks} 태그를 사용하여 여러 블록을 배치할 수 있습니다.이는 관리자가 사이드바에 "태그", "로그인", "제휴사" 등의 많은 모듈을 가질 수 있는 Wordpress와 같이 그 안에 여러 모듈을 배치할 수 있음을 의미합니다.모듈의 양은 {blockslimit="5"}로 제한될 수 있습니다.다른 설정도 있을 수 있습니다.

페이지에서 블록이 {block id="header"}로 지정되면 해당 블록에 대해 선택한 모듈의 내용이 해당 블록으로 대체된다는 의미입니다.그러나 {block}{/block}인 경우 테마 작성자는 콘텐츠 위치를 지정하기 위해 태그 사이 어딘가에 {content}를 사용해야 합니다.또한 {name}을 사용하여 모듈 이름 등을 지정할 수도 있습니다.

전반적으로 이 문제에 대해 개선할 수 있는 부분이 있습니까?당신은 가지고 있습니까? 어느 제안?

그리고 가장 중요한 것은 대신 사용해야 하는 이미 존재하는 강력한 모듈식 시스템을 재설계하려고 하는 것입니까?

도움이 되었습니까?

해결책

이거 봐요 Facelets에 관한 기사.당신이 자바 전문가가 아니어도 상관없습니다.기사 중간에 있는 패싯 구성을 살펴보십시오.

실제로 이러한 구성은 매우 편리하므로 cms와 함께 제공하고 싶은 내용을 찾을 수 있을 것입니다.

다른 팁

대신 사용해야 할 이미 존재하는 강력한 모듈 식 시스템을 재 설계하려고합니까?

설명에 맞는 두 가지를 생각할 수 있습니다.Tiles를 사용한 Struts 및 웹 기반 서비스 정사각형 공간.

Castle 스택에서 NVelocity를 살펴보세요. 매우 강력하며 바퀴를 약간 재발명하려는 것처럼 보입니다.

http://www.castleproject.org/others/nvelocity/index.html

이게 도움이 되길 바란다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top