2013-02-05 2 views
0

Magento 용 AheadWorks 블로그 확장을 사용하고 있으며 내 블로그 페이지가 정상적으로 작동합니다. 하지만 특정 카테고리의 최근 게시물을 발췌하여 내 홈페이지에 표시하고 싶습니다. 나는 추가하여 지금까지 성공적으로 설치 모든 것을했습니다 :Magento 용 AheadWorks 블로그 확장을 사용하여 특정 카테고리의 게시물 표시

<block type="blog/blog" name="blog.latest" template="aw_blog/blog-home.phtml" /> 

에 "layout.xml"추가 :

<?php echo $this->getChildHtml('blog.latest') ?> 

내 홈 페이지의 PHTML 파일, 그리고 "생성하여 템플릿/aw_blog/블로그 홈 .phtml ".

문제는 어떤 카테고리가 표시되는지 제한하는 방법을 알 수 없다는 것입니다. 예를 들어, 아래의 "blog-home.phtml"파일에서 "news"카테고리로 게시물을 제한하려고합니다. 나는 다른 포럼에서 많은 솔루션을 시도했지만, 내가 무엇을해도 모든 카테고리의 게시물을 볼 수 있습니다. 누구든지 범주를 제한하기 위해 코드를 추가/제거해야하는지 알고 있습니까?

<?php $posts = $this->getPosts("news"); ?> 
<div id="messages_product_view"> 
    <?php Mage::app()->getLayout()->getMessagesBlock()->setMessages(Mage::getSingleton('customer/session')->getMessages(true)); ?> 
    <?php echo Mage::app()->getLayout()->getMessagesBlock()->getGroupedHtml(); ?> 
</div> 

<?php $numberOfPosts = 1 ?> 
<?php $renderedPosts = 0 ?> 
<?php foreach ($posts as $post): ?> 
    <div class="postWrapper"> 
     <div class="postTitle"> 
      <h2><a href="<?php echo $post->getAddress(); ?>" ><?php echo $post->getTitle(); ?></a></h2> 
     </div> 
     <div class="postContent"><?php echo $post->getPostContent(); ?></div> 
     <?php echo $this->getBookmarkHtml($post) ?> 
     <div class="tags"><?php echo $this->getTagsHtml($post) ?></div> 
     <div class="postDetails"> 
      <?php if ($this->getCommentsEnabled()): ?> 
       <?php echo $post->getCommentCount(); ?> <a href="<?php echo $post->getAddress(); ?>#commentBox" >Comments</a> | 
      <?php endif; ?> 
      <?php $postCats = $post->getCats(); ?> 
           <?php echo "<h1>" . $postCats[2] . "</h1>"; ?> 
      <?php if (!empty($postCats)): ?> 
       <?php echo Mage::helper('blog')->__('Posted in'); ?> 
       <?php foreach ($postCats as $data): ?> 
        <a href="<?php echo $data['url']; ?>"><?php echo $data['title']; ?></a> 
       <?php endforeach; ?> 
      <?php else: ?> 
      <?php endif; ?></div> 
      <?php $renderedPosts ++ ?> 
      <?php if ($renderedPosts = $numberOfPosts) { 
       break; 
      } 
      ?> 
    </div> 
<?php endforeach; ?> 
<?php //$this->getPages(); ?> 
+0

이 게시물에 대한 링크가있는 지원 팀에 이메일을 보내야합니다. AW는 꽤 훌륭합니다, imho. 결과를 로컬에서 필터링 할 수있는 방법이 있는지 확인하기 위해 반환되는 항목을 반복 할 수 있습니까? –

+0

Magento의 AW 블로그 확장을 제외하고는 무료입니다. 기술 지원은 유료 고객에게만 해당됩니다. 나는 그들의 포럼을 시도 할 것이다. – americanknight

+0

헤헤, 어쨌든 물어봐도 될까요? 그리고 그렇지 않다면 훌륭한 확장 기능 중 하나를 사서 도움을 요청하십시오. BTW, 그들은 단지 그들 중 하나와 다른 공급 업체의 확장 사이의 확신을 해결하는 데 도움이되었습니다. AW의 코드에는 문제가 없었지만 해결 방법을 알려주었습니다. 그들은 훌륭한 벤더입니다. –

답변

0

에 따라 빠른 솔루션입니다 : 이동은 프론트 엔드 템플릿을 aw_blog하기 위해, 기본이 응용 프로그램/디자인/프론트 엔드/기초/기본/템플릿/aw_blog/menu.phtml 체크하고 교체 될 수 있습니다

if ($posts = $this->getRecent(): 

$currentBlogCat = Mage::getSingleton('blog/cat'); 

if ($posts = $this->getRecent($currentBlogCat['cat_id'])): 

지금 아래의 기능 /app/code/community/AW/Blog/Block/Menu/Sidebar.php 검사를 열어와

:

public function getRecent() 

는에 매개 변수를 추가 :

public function getRecent($currentCat=false) 
또한

,

$collection = clone self::$_collection; 
$data = $this->getData(); 
if($currentCat>0)$data['categories']=$currentCat; 
# Category fix # 
if (array_key_exists('categories',$data) && count(explode(',', $data['categories'])) == 1) { 

덕분에 다음과 같은 코드 블록

$collection = clone self::$_collection;    
if (array_key_exists('categories',$data = $this->getData();) && count(explode(',', $data['categories'])) == 1) { 

교체!

관련 문제