여러 위젯 파일에서 공통으로 쓰이는 부분을 별도 파일로 만들어 불러와서 쓸수 있을까요?
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
안녕하세요~
여러 위젯 파일에서 공통으로 쓰이는 부분을 별도 파일로 만들어 include를 해서 사용할수 있는 방법이 있을가요?
공통 부분을 수정할때 모든 페이지에서 다 변경을 해줘야하니 시간도 오래걸리고 너무 비효율적이네요ㅠ
가령 위젯 페이지 content 에 위쪽에 탭 같은것을 html로 넣었는데 하나만 수정하려해도 여러 페이지에서 싹다 변경 해주려니
실수도 생기고 시간도 너무 오래 걸려서 방식을 변경해야 할것 같거든요..
좋은 방도가 있을까요?
댓글 2
위젯 템플릿 파일을 별도로 컴포넌트화 시켜 인클루드시 변수를 전달해주면 됩니다.
<?php include 'header.php'; ?>
ssl 예시
<!--#include virtual="/path/to/header.html" -->
javascript 예시
fetch('header.html')
.then(response => response.text())
.then(html => document.getElementById('header-placeholder').innerHTML = html);
HTML 파일에서는 다음과 같이 플레이스홀더를 배치합니다
<div id="header-placeholder"></div>
<template id="my-header">
<div>Here is the common header</div>
</template>
<script>
class MyHeader extends HTMLElement {
constructor() {
super();
const template = document.getElementById('my-header').content;
const shadowRoot = this.attachShadow({mode: 'open'}).appendChild(template.cloneNode(true));
}
}
customElements.define('my-header', MyHeader);
</script>
사용시
<my-header></my-header>