2014-10-15 3 views
0

나는 Orchard CMS에서 초보자이며 내용에 투표 기능을 추가해야합니다. Contib.Vote 및 Contrib.Review 모듈을 설치했습니다. 그 후 검토 부분을 페이지 콘텐츠 유형에 추가했습니다. 또한, 나는 제조법을 실행했습니다. 처음에는 모든 것이 정상이지만 검토를위한 링크는 # 기호가있는 동일한 페이지를 참조하며 아무 것도 클릭하지 않고서는 아무 것도 일어나지 않습니다. 모듈이 제대로 작동하지 않거나 제대로 작동하지 않는 것 같습니다. 내 문제를 도와주세요.Orchard CMS Contrib.Review module

UPD. 안녕하세요 devkon과 고맙습니다. 당신의 대답은 정말 유용했습니다. 귀하의 조언에 따라 자바 스크립트 주위 부품 검토 파일 (Parts_Reviews.cshtml)를 찾고 있었다. 테스트를 위해 소스 코드를 약간 변경했습니다. 리뷰가 표시됩니다에 대한

@using (Script.Foot()) 
 
{ 
 
    <script type="text/javascript"> 
 
    //<![CDATA[ 
 
    (function() { 
 
     var numberOfReviewsToShowByDefault = 5; 
 
     var $showAllReviewsLink = $('#showAllReviewsLink'); 
 
     var $deleteReviewConfirmationDialogDiv = $('#deleteReviewConfirmationDialogDiv'); 
 

 

 
      $deleteReviewConfirmationDialogDiv.dialog({ autoOpen: false, modal: true, resizable: false }); 
 
      $('#deleteReviewLink').click(function() { 
 
       $('#reviewId').val($(this).attr("data-review-id")); 
 
       ShowDeleteReviewDialog(); 
 
       return false; 
 
      }); 
 
      $('#showReviewFormLink').click(function() { 
 
       $('#createReviewLinkDiv').slideToggle('fast', function() { $('#reviewFormDiv').slideToggle('fast'); }); 
 
       return false; 
 
      }); 
 
      $('#cancelCreateReviewLink').click(function() { 
 
       $('#reviewFormDiv').slideToggle('fast', function() { $('#createReviewLinkDiv').slideToggle('fast'); }); 
 
       return false; 
 
      }); 
 
      $('#deleteReviewForm').submit(function() { 
 
       $('input[type=submit]', this).attr('disabled', 'disabled'); 
 
      }); 
 
      $('#cancelDeleteReviewButton').click(function() { 
 
       CloseConfirmationDialogDiv(); 
 
       return false; 
 
      }); 
 
      var rowCount = $('#reviewsList li').length; 
 
      if (rowCount > numberOfReviewsToShowByDefault) { 
 
       SetupToggle(); 
 
      } 
 

 
      if (document.location.hash === '#Reviews') { 
 
       var topPx = $('#reviews-heading').position().top; 
 
       $('body,html').animate({ scrollTop: topPx }, 'slow'); 
 
      } 
 

 
      if ($("#comment").length) { 
 
       var characterCountUpdater = new CharacterCountUpdater($("#comment"), $("#commentCharactersLeft")); 
 
       setInterval(function() { characterCountUpdater.UpdateCharacterCount(); }, 100); 
 
       $("#comment").keypress(function() { characterCountUpdater.UpdateCharacterCount(); }); 
 

 
       if ($("#comment").val().length) { 
 
        $("#showReviewFormLink").trigger("click"); 
 
       } 
 
      } 
 
     
 
     function CharacterCountUpdater(commentBox, charactersLeftBox) 
 
     { 
 
      this.commentBox = commentBox; 
 
      this.charactersLeftBox = charactersLeftBox; 
 
      this.maxLength = commentBox.attr("maxlength"); 
 
      commentBox.removeAttr("maxlength"); 
 
      return this; 
 
     }

지금 형성한다. 양식이 좋아 보이며 제출 버튼 작동, 문자 카운터 작동. 그러나 나는 여전히 나의 평가를 적용 할 수 없다. 별들은 클릭 할 때 반응하지 않습니다. 그래서 제출 작업이 오류로 끝나는 것입니다 '리뷰를 제출하려면 등급을 제출해야합니다.' Parts.Stars.NoAverage.cshtml 내부의 무언가가 보이지 않습니다. 도와주세요.

+0

전체적인 문제를 공유하고 해결 방법을 알려주시겠습니까? – devqon

+0

별 물건으로 등급을 처리하는 스크립트가없는 것처럼 보입니다. – devqon

+0

Parts.Stars.NoAverage.cshtml에서 말한대로 신경 쓸 필요가 없습니다. 콘솔 오류가 있습니까? – devqon

답변

0

Firefox의 콘솔은 다음과 같이 말합니다. $ (...). live는 함수가 아닙니다. 그것은 Contrib.Stars.js 소스 코드 파일을 참조합니다. 이 함수는 jquery에서 지원되지 않으며 모든 장소 api.jquery.com/on에서 .on() 함수로 대체되었습니다. 이제 모듈이 제대로 작동합니다. 아래의 사이트에서 내 댓글 밖으로

0

프로젝트 사이트 it is a known issue에 따르면 : 버전 1.7.2에서 깨졌습니다.

string showReviewUri = "#"; 
if (!Request.IsAuthenticated) 
{ 
    showReviewUri = Url.Action("LogOn", "Account", new { area = "Orchard.Users", ReturnUrl = Context.Request.RawUrl }); 
} 

라인 (29)에

: 따라서

<div id="createReviewLinkDiv"><span id="createReviewLinkSpan">@noReviewsYetText<a id="showReviewFormLink" href="@showReviewUri">@reviewLinkText</a></span></div> 

, 그것이을 수 있도록 의도

는 라인 20-24에서 다음을 말한다 Parts_Reviews.cshtml의 the code 볼 때 요청이 인증되면 (로그온 한 경우) 앵커는 #이됩니다. 이것은 아마 라인 105-112에 볼 수있는 자바 스크립트 처리됩니다 의미 : 코드의

$('#showReviewFormLink').click(function() { 
    $('#createReviewLinkDiv').slideToggle('fast', function() { $('#reviewFormDiv').slideToggle('fast'); }); 
    return false; 
}); 
$('#cancelCreateReviewLink').click(function() { 
    $('#reviewFormDiv').slideToggle('fast', function() { $('#createReviewLinkDiv').slideToggle('fast'); }); 
    return false; 
}); 

이 작품은 양식이 리뷰를 쓰고 볼 수 있도록해야한다, 그래서 뭔가는 아마 잘못이 것입니다. 이 jQuery 코드에 문제가있는 경우 콘솔에 오류가 발생했을 수 있으므로 '처음 리뷰 작성'링크를 클릭하면 브라우저의 콘솔을 확인하십시오.

당신이해야 할 일을 모르는 경우 오류를 제공하고 더 파헤 치려고 시도하면 더 많은 도움이됩니다. 라이브 피드가 없도록 모듈을 다운로드하지 않았습니다.

+0

고맙습니다. 내 게시물을 업데이트했습니다. 내 문제로 한 번 더 도와 주실 수 있습니까? –

0

점검 나는 그것이 오차드 1.8.1에 다시 작동 할 수 있었다 방식을 볼 수 있습니다 :

Orchard Reviews Project Site

당신은 기본적으로 단지의 3 개 가지 라인을 변경해야

Contrib.Stars.js 파일을 사용하고 있지만 검토 모듈의 다른보기와 함께 .js 파일을 사용자 정의 테마 디렉토리에 복사하여 모든 것을 무시하고 검토 모듈에서 편집 내용을 사용하도록하는 것이 좋습니다.JS 파일 : 줄에

12 & 13 :

변경이 : 여기에

$(".stars-clear").live(
    "click", 

: 줄에

$("body").on(
    "click", ".stars-clear", 

44 & 45 :

이 변경

:

.live(
    "mouseenter", 

이 사람 :

변경이 : 여기에

.live(
    "mouseleave", 

: 라인 48 & 49

.mouseenter(

.mouseleave(