2012-07-09 3 views
0

I modx에서 만든 페이지에서 변경할 수 있습니다이 옵션을 사용자가 2.2.0가
* 배경
* 글꼴 크기가와 세션 변수를 저장 JQuery와/아약스 - MODX 혁명

배경 및 글꼴 크기를 변경하려면 레브가 jquery를 사용했기 때문에 가장 좋은 방법은 아약스를 사용하는 것이라고 생각합니다. 그래서 나는 그 변수를 세션에 추가하는 1/2 페이지를 만들어야 만합니다. 따라서 사용자가 다른 페이지로 이동하면 배경과 글꼴 크기가 그대로 유지됩니다. 며칠 후 사용자가 페이지를 방문하면 배경 및 글꼴 크기가 그대로 유지됩니다.

<script type="text/javascript"> 
$(document).ready(function() { 
    background5(); 
    var originalFontSize = $('html').css('font-size'); 
}); 

function background1() { $('.wrap').css("background","url(assets/templates/default/images/bg1.jpg)"); return false; } 
function background2() { $('.wrap').css("background","url(assets/templates/default/images/bg2.jpg)"); return false; } 
function background3() { $('.wrap').css("background","url(assets/templates/default/images/bg3.png)"); return false; } 
function background4() { $('.wrap').css("background","url(assets/templates/default/images/bg4.jpg)"); return false; } 
function background5() { $('.wrap').css("background","url(assets/templates/default/images/bg5.jpg)"); return false; } 
function background6() { $('.wrap').css("background","url(assets/templates/default/images/bg6.jpg)"); return false; } 
function background7() { $('.wrap').css("background","url(assets/templates/default/images/bg7.jpg)"); return false; } 
function background8() { $('.wrap').css("background","url(assets/templates/default/images/bg8.jpg)"); return false; } 
function background9() { $('.wrap').css("background","url(assets/templates/default/images/bg9.jpg)"); return false; } 
function big_font() { 
    var currentFontSize = $('html').css('font-size'); 
    var currentFontSizeNum = parseFloat(currentFontSize, 10); 
    var newFontSize = currentFontSizeNum*1.1; 
    $('html').css('font-size', newFontSize); 
    return false; 
} 
function small_font() { 
    var currentFontSize = $('html').css('font-size'); 
    var currentFontSizeNum = parseFloat(currentFontSize, 10); 
    var newFontSize = currentFontSizeNum*0.9; 
    $('html').css('font-size', newFontSize); 
    return false; 
} 
</script> 

내 질문이 modx에서 세션에 변수를 추가하는 방법이며,이 일을하는 가장 좋은 방법은 무엇입니까 : 여기

내 자바 스크립트 코드?

답변

1

Ajax 스텁으로 사용할 리소스를 만들고 여기에 '세션에 추가'코드가 포함 된 캐시되지 않은 스 니펫을 배치하십시오.

<?php 
// example only, be sure to sanitize and add some sensible defaults here 
$background = $_POST['background']; 
$fontSize = $_POST['font_size']; 

// write to user's session 
$_SESSION['background'] = $background; 
$_SESSION['fontSize'] = $fontSize; 

return ''; 

그런 다음 스텁에 Ajax 호출을 만들기 위해 jQuery를 사용 그것에 backgroundfont_size PARAMS를 전달 : 같이 조각은 간단 할 수

var background = 6, 
    fontSize = 2; 
// let's assume your Ajax stub resource id is 7 
$.post("[[~7]]", { background: background, font_size: fontSize }); 

참고 : 모든 정돈 수 그 중 하나를 사용하여 이러한 background() 기능은 다음과 같습니다.

function background(n) { 
    var url = "assets/templates/default/images/bg"+parseInt(n)+".jpg"; 
    $('.wrap').css("background","url("+url+")"); 
    return false; 
} 
관련 문제