2014-09-16 3 views
0
내가 배치 할 수있는 최선의 방법이 무엇인지 http://codepen.io/anon/pen/Gqkxv

CMS 페이지

function openDoor(field) { 
     var y = $(field).find(".thumb"); 
     var x = y.attr("class"); 
     if (y.hasClass("thumbOpened")) { 
      y.removeClass("thumbOpened"); 
     } 
     else { 
      $(".thumb").removeClass("thumbOpened"); 
      y.addClass("thumbOpened"); 
     } 
    } 

여기에 CSS, HTML과 JS로 만든 요소를 ​​열려면이 클릭을 추가 할 v1.5.4.0

PrestaShop 버전 in CMS 페이지

답변

1

내 생각에 CMS 페이지에서 대부분의 javascript 태그를 제거하고 external js 파일을 첨부 할 수 없기 때문에 cmsController.php의 재정의를 만들어야합니다.

외부 js 파일과 css 파일을 만들고 테마의 js 디렉토리와 css 디렉토리에 저장해야합니다. setMedia 메서드는 해당 컨트롤러가 호출 될 때 style/js 파일을 첨부하는 데 사용됩니다. 당신은 내가 그이 모든 CMS 페이지에 이러한 파일을 추가 할 것입니다,하지만 작동합니다 믿는 cmsController.php을 무시하고 setMedia 방법

$this->addJS(_THEME_JS_DIR_.'yourjsfile.js'); 
$this->addCSS(_THEME_CSS_DIR_.'yourcssfile.css'); 

이를 추가 할 수 있습니다. 이 문제를 해결할 수있는 유일한 방법은 cms 페이지의 ID를 가져 와서 addJS 및 addCSS 함수에서 if 상태를 실행하는 것입니다.

예 : 당신은 id_cms 4

if ((int)Tools::getValue('id_cms') == 4) { 

    $this->addJS(_THEME_JS_DIR_.'yourjsfile.js'); 
    $this->addCSS(_THEME_CSS_DIR_.'yourcssfile.css'); 
} 

또는 당신이 id_cms 4 id_cms 당신은 모듈을 만들 수 있습니다

if ((int)Tools::getValue('id_cms') == 4 || (int)Tools::getValue('id_cms') == 6) { 

    $this->addJS(_THEME_JS_DIR_.'yourjsfile.js'); 
    $this->addCSS(_THEME_CSS_DIR_.'yourcssfile.css'); 
} 
0

6에 표시하고 JS 후크 할에 표시 할 이렇게 백 오피스 헤더에.

공개 설치 함수() {

if (!$this->installTab() 
     || !$this->registerHook('displayBackOfficeHeader')) 
     return false; 
    return true; 
} 

public function hookDisplayBackOfficeHeader() 
    { 
     //check if currently updatingcheck if module is currently processing update 
     if ($this->isUpdating() || !Module::isEnabled($this->name)) 
      return false; 

     if (method_exists($this->context->controller, 'addJquery')) 
     { 
      $this->context->controller->addJquery(); 
      $this->context->controller->addCss($this->_path.'views/css/gamification.css'); 



      if (version_compare(_PS_VERSION_, '1.6.0', '>=') === TRUE) 
       $this->context->controller->addJs($this->_path.'views/js/gamification_bt.js'); 
      else 
       $this->context->controller->addJs($this->_path.'views/js/gamification.js'); 

      $this->context->controller->addJqueryPlugin('fancybox'); 

      return $css_str.'<script> 
       var ids_ps_advice = new Array('.rtrim($js_str, ',').'); 
       var admin_gamification_ajax_url = \''.$this->context->link->getAdminLink('AdminGamification').'\'; 
       var current_id_tab = '.(int)$this->context->controller->id.'; 
      </script>'; 
     } 
    } 

PrestaShop 버전이 코어 모듈로부터 게임 화 예 쇼. 그 후에 원하는 prestashop js 코드를 작성할 수 있습니다.

1

모듈을 추가 할 필요가 는 PrestaShop 버전의 테마 폴더에서 cms.tpl로 이동 이

{if $cms->id==6} 
{literal} 
<script type="text/javascript" src="js/yourjsfile.js"></script> 
{/literal} 
{/if} 

다음 파일을 업로드, 당신의 CMS ID와의 js 파일의 이름으로 대체 추가 prestahop 루트 폴더에있는 js 폴더로 다음 prestahop 패널, 고급 매개 변수, 성능으로 이동하여 템플릿을 컴파일 한 다음 사이트를 실행하십시오 --- 스크립트는 선택한 페이지에서만 실행됩니다.