Extra Form
PHP PHP 8.0
CMS Rhymix 2.1

화면 캡처 2024-08-23 130404.png

 

아직 우리메일 알림모듈 오류 수정은 못했지만 미리 뉴스레터 위젯부터 위치를 잡으려고 하는데 

 

이게 생각보다 어렵네요.레이아웃 수정 부분에서 

 

div를 테이블처럼 나눠서 왼쪽에 푸터 오른쪽에 뉴스레터 이렇게 들어가게 

 

해야 할것 같은데 기초지식이 없다보니 이것 조차 쉽지 않네요.

 

그래서 아예 footer.html 에 들어가서 div를 하나 더만들고 뉴스레터 위젯을 넣었더니 맨처음 스샷처럼 되어버렸습니다.

 

 

현재 레이아웃 html 부분입니다.

 

<include target="_import.html" />
<include target="_init.html" />


<section class="app-layout">
    <include target="components/sidebar/sidebar.html" />
    <include target="components/notification/notification.html" />
    <include target="components/header/header.html" />
    
    <main class="app-main app-container">
        <!--@if($layoutConfig['use_aside'] === Y)-->
        <section class="app-content app-content--with-aside">{$content}</section>
        <include target="components/aside/aside.html" />
        <!--@else-->
        <section class="app-content">{$content}</section>
        <!--@endif-->
    </main>

 

보기 좋게  나란히 오른쪽에 푸터 / 왼쪽에 뉴스레터 넣고 싶어서 도움 요청을 드립니다.


<!--html 태그 속성사용-->
<include target="components/footer/footer.html" />

</section>

<include target="components/ie-message.html" />

 

 

  • profile
    footer.html 내용 삭제하고 다시 레이아웃 태그에 이렇게 수정했습니다.

    <!-- html 태그 속성 사용 -->
    <div style="display: flex; justify-content: space-between;">
    <div style="flex: 1;">
    <include target="components/footer/footer.html" />
    </div>
    <div style="flex: 1; display: flex; justify-content: flex-end;">
    <img class="zbxe_widget_output" widget="ggnewsletter" skin="default" widget_sequence="1073" widget_cache="0m" module_srl="720" />
    </div>
    </div>

    아직 적용이 안되는데 무엇이 문제일까요?
  • profile
    <!-- html 태그 속성 사용 -->
    <style>
    .footer-wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    }
    .footer-content {
    flex-grow: 1;
    }
    .widget-container {
    flex-shrink: 0;
    margin-left: auto;
    }
    </style>

    <div class="footer-wrapper">
    <div class="footer-content">
    <include target="components/footer/footer.html" />
    </div>
    <div class="widget-container">
    <img class="zbxe_widget_output" widget="ggnewsletter" skin="default" widget_sequence="1073" widget_cache="0m" module_srl="720" />
    </div>
    </div>

    이 방법도 되지 않네요.
  • profile
    레이아웃 대신 footer.html 파일의 코드를 다음과 같이 수정해서 해결 된것 같습니다.

    <load target="footer.scss" vars="RxFlextagramTheme::$variables" />

    <footer class="app-footer">
    <div class="app-container" style="display: flex; justify-content: space-between; align-items: center; padding: 0 30px; flex-wrap: wrap;">
    <!-- 왼쪽: 기존 내용 -->
    <div class="app-footer-content" style="flex-grow: 1; margin-right: 20px;">
    <ul cond="$footer_menu->list" class="app-footer-nav" style="display: flex; gap: 10px;">
    <!-- prettier-ignore -->
    <li loop="$footer_menu->list=>$key1,$val1" class="active"|cond="$val1['selected']">
    <!-- prettier-ignore -->
    <a href="{$val1['href']}" target="_blank"|cond="$val1['open_window']=='Y'">{$val1['link']}</a>
    </li>
    </ul>
    <div class="app-footer-copyright" style="margin-top: 10px;">
    {$layoutConfig['footer_copyright']}
    </div>
    </div>

    <!-- 오른쪽: 이미지 위젯 -->
    <div class="app-footer-widget" style="flex-shrink: 0; margin-left: auto;">
    <img class="zbxe_widget_output" widget="ggnewsletter" skin="default" widget_sequence="1079" widget_cache="0m" module_srl="720" btn_name="노조소식 받기" />
    </div>
    </div>
    </footer>

    <style>
    @media (max-width: 768px) {
    .app-container {
    flex-direction: column;
    align-items: flex-start;
    }
    .app-footer-widget {
    margin-left: 0;
    margin-top: 20px;
    }
    }
    </style>
  • profile
    우리메일 뉴스레터 받기 버튼을 누르면 다음과 같은 에러가 있을수 있습니다. 아마도 php 버전 문제인것 같은데 쳇gpt 도움으로 수정하니 해당 오류가 해결 된것 같아서 수정코드를 남겨 봅니다.

    Error #0 "Attempt to assign property "ggmailing_email" on null" in widgets/ggnewsletter/ggnewsletter.class.php on line 15
    객체를 먼저 선언하지 않고 속성을 추가하려 하고 있습니다. 오래된 자료에서 종종 사용하던 코딩 방식이나 최근 PHP에서는 허용되지 않으니, 에러 메시지에 포함된 파일명과 줄 번호를 참고하여 수정하세요.
    widgets/ggnewsletter/ggnewsletter.class.php:15


    15번째 코드를 다음과 같은 코드로 수정하니 해결 되었습니다.

    if(Context::get('ggstatus') == 'newsletter_insert' && Context::get('email_address')) {
    // $obj 객체를 생성합니다.
    $obj = new stdClass();

    // 이제 $obj 객체에 속성을 추가할 수 있습니다.
    $obj->ggmailing_email = Context::get('email_address');
    $obj->ggmailing_module_srl = $args->module_srl;

    // 중복 이메일 체크
    $output = executeQueryArray('ggmailing.getBoardMember', $obj);

    혹시 같은 문제를 겪으실분이 계실지 몰라서 수정 코드를 남겨 봅니다.
    해당 코드에 문제가 있다면 추가로 알려주시면 감사 하겠습니다.