Jump to content
IPSViet.com
Sign in to follow this  
Bim

Hướng dẫn chuyển boardIndex Sidebar thành global Sidebar

Recommended Posts

Trước đây có bạn từng hỏi về vấn đề này, tức là làm sao cho sidebar mặc định của diễn đàn (tạm gọi là boardIndex sidebar vì nó chỉ hiện ở board Index) hiển thị ở bất kỳ nơi đâu trên diễn đàn. Bình thường các bạn dùng mod thì có mod global Sidebar, tuy nhiên nó là paid mod và giá quá đắc, nhưng cũng chỉ có thể hiện sidebar tự tạo thôi. Đó cũng là điều mà người dùng IPB hay ghen tị, phân bì với người dùng vbb hay xenforo.

Hôm nay ngồi rãnh mình đã nghiên cứu xong vấn đề nan giải này, bây sẽ hướng dẫn các bạn cách chuyển toàn bộ boardIndex sidebar thành global Sidebar. Ưu điểm là có thể chuyển bất kỳ sidebar hook nào. :) Như vậy các bạn ko cần phải ghen tị với người khác nữa, IPB có thể làm tất cả những gì mà những source forum khác có, chỉ cần chịu khó ngồi nghiên cứu thôi.

globalSidebar.thumb.jpg.ca5ea0b2460d1c6b

Nói sơ qua về cái sidebar mặc định của IPB, đa phần nó là những mod hook vào foreach loop side_blocks trên skin_boards. Vậy nên nó sẽ chỉ hiển thị ở board Index. Cái chúng ta cần ở đây là làm sao cho nó hiển thị bất kỳ nơi đâu trên diễn đàn, để được như thế trước tiên ta phải chuyển những hook đó về skin_global. Nhưng vấn đề là sẽ hook vào foreach loop hay if statement nào? Tất nhiên là không có, vì vậy đơn giản nhất là chúng ta tạo thêm 1 if statement mới để chuyển những sidebar đó qua. Nói thì đơn giản, chắc chắc có bạn nghĩ là chỉ cần edit template trong ACP, nhưng như vậy ko hiệu quả, bạn cần phải cập nhật cho database của template nữa thì nó mới nhận được cái if statement mới trong template. Bây giờ hãy mở file adminapplicationscorexmlcore_root_templates.xml và tìm

Hidden Content

    Give reaction to this post to see the hidden content.

(Có 2 code y như vậy, bạn hãy tìm đến code ở line 643)

Thay bằng

Hidden Content

    Give reaction to this post to see the hidden content.

Như vậy bạn thấy, code trên mình định dạng giao diện trang sẽ có thêm phần sidebar, chỗ 

Hidden Content

    Give reaction to this post to see the hidden content.

Chính là if statement mình tạo để bước sau sẽ chuyển sidebar hook về.

Tiếp tục, vào ACP -> Look & Feel -> Template Tools, chúng ta cần rebuild và recache skin. Các bạn làm theo hình sau (ai bị cận thị thì bấm vô hình để xem cho rõ)

RebuildSkin.thumb.jpg.21afaee920e11156f5

Như vậy chúng ta đã hoàn thành xong bước tạo if statement. Bây giờ chỉ việc chuyển những sidebar hook đến đó. Vào ACP -> Manage hooks -> chọn 1 hook sidebar -> Ví dụ Ad Code Sidebar, Status Updates, Recent Blog Entries... Bấm hình cây viết ở bên tay phải của nó để edit -> nhảy qua tab Hook Files và tùy chỉnh như sau:

SetupHook.thumb.jpg.f2908a01003a4ec2c088

Cứ làm như vậy cho những sidebar hook mà bạn muốn chuyển.

Bây giờ đã tạm hoàn thành rồi. Tuy nhiên ở boardIndex còn rất hỗn độn do bị dư 1 phần trống của sidebar. Để xóa nó, vào Look & Feel -> Board Index -> boardIndexTemplate

Tìm

Hidden Content

    Give reaction to this post to see the hidden content.

Thay bằng

Hidden Content

    Give reaction to this post to see the hidden content.

Tìm và xóa

Hidden Content

    Give reaction to this post to see the hidden content.

Xong rồi. Sidebar của bạn đã hiển thị tất cả các trang. Thêm 1 mẹo nhỏ cho các bạn muốn sidebar không hiển thị ở 1 vị trí nào đó, ví dụ là trong trang members và profile thành viên. Vào Look & Feel -> Global Templates -> globalTemplate, tìm:

Hidden Content

    Give reaction to this post to see the hidden content.

Thay bằng

Hidden Content

    Give reaction to this post to see the hidden content.

 

Save lại. Bạn có thể tham khảo thêm vài viết về if statement để biết cách định vị trí cho sidebar: 

Hidden Content

    Give reaction to this post to see the hidden content.

Xong rồi, bấm like nhé :P

 

bimchippy

ipsviet.com

  • Like 7

Share this post


Link to post
Share on other sites
Do làm ko đúng chỗ nào đó thôi, chịu khó ngồi xem kỹ lại, thử ở localhost trước đi

Tớ làm đi làm lại rồi, y chang hướng dẫn luôn. Chỉ khác 1 chỗ là cái dòng: 

<if test="mainpageContent:|:$html">{$html}</if>

 

trong file adminapplicationscorexmlcore_root_templates.xml nó nằm ở dòng 641 chứ ko ở dòng 643!
:(

Share this post


Link to post
Share on other sites
Tớ vừa làm lại lần nữa, vẫn không được Bim ơi!

 

Khi chuyển hook có thấy cái globalSidebars ở The Hook 'id' ko?

 

globalsidebar_editHook.jpg

Share this post


Link to post
Share on other sites
Khi chuyển hook có thấy cái globalSidebars ở The Hook 'id' ko?

 

globalsidebar_editHook.jpg

Có chứ, chọn ID rồi mới hiển thị Location mà!

Share this post


Link to post
Share on other sites

Ok rồi đó, vấn đề là vì globalTemplate đã có qua edit, nên khi rebuild và recache lại nó ko update dc thêm vô template. Chỉ cần bấm revert là dc. Bạn chịu khó ngồi sửa lại globalTemplate, vì revert nó mất những gì bạn sửa. Đây là globalTemplate của bạn mình backup lại

 

Hidden Content

    Give reaction to this post to see the hidden content.

  • Like 1

Share this post


Link to post
Share on other sites

À, còn vấn đề nữa, Muốn 1 hook chỉ hiển thị ở trang chủ mà không hiển thị trong cat hay topic và ngược lại thì sao Bim?

Share this post


Link to post
Share on other sites
À, còn vấn đề nữa, Muốn 1 hook chỉ hiển thị ở trang chủ mà không hiển thị trong cat hay topic và ngược lại thì sao Bim?

Cái đó cần mở file php của hook (nằm trong thư mục hooks) rồi xem nó hook thế nào, tìm template của nó rồi áp dụng if statement 

Hidden Content

    Give reaction to this post to see the hidden content.

Share this post


Link to post
Share on other sites

sau khi mình làm như hướng dẫn thì cái sidebar ngoài index đang có giờ mất tiêu luôn, còn bên trong bài viết thì trước và sau khi làm theo bài này vẫn như nhau là trắng toát như trong hình, các bạn có thể giúp mình dc ko, mình làm trên localhost thì hiển thị tốt, nhưng mình làm trên diễn đàn lại không được

Hidden Content

    Give reaction to this post to see the hidden content.

Edited by ngvcanh

Share this post


Link to post
Share on other sites

Lên 4.0 đi bạn ơi giờ 3x cũ quá rồi mình cũng lười nhìn lại nó quá.

  • Like 1

Share this post


Link to post
Share on other sites

Lên 4.0 đi bạn ơi giờ 3x cũ quá rồi mình cũng lười nhìn lại nó quá.

cho mình hỏi chỗ này với

<if test="mainpageContent:|:$html">{$html}</if>

mình muốn sửa nội dung của {$html} thì sửa ở đâu vậy

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...