ปกติแล้วหน้าแรกจะเป็นเร่ืองที่เรา publish ไปแต่ถ้าผมต้องการปรับแต่งให้หน้าแรกของผมแยกเป็นส่วนๆ (ลักษณะคล้ายๆ block) ถ้าเราเขียนเรื่องประเภทอะไรก็จะมาแสดงในส่วนที่เราทำเป็น block เอาไว้ ไม่มาแสดงเหมือนเขียนบล็อกนี่ต้องทำอย่างไรบ้างครับ จะปรับแต่งอย่างไร อาจจะงงๆ นะครับขอโทษด้วยผมไม่รู้ว่าจะเรียกว่าอะไรน่ะครับ
ตัวอย่างเว็บลักษณะที่ผมว่านะครับ
http://multiply.com/info/tour/1
กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น
ใช้โมดูล front page แล้วใส่ php เข้าไปตามสะดวก อาจจะแสดง block ที่ต้องการได้ เช่น
ขอบคุณมากครับ จะเอาไปลองทำดูนะครับ
ผมลองเอา code ที่คุณ sugree ให้ไว้มาวางใน front page for anonymous user แล้วติ๊กตรง allow embeded PHP code แล้วน่ะครับ แต่ก็ยังไม่เห็นมีอะไรเปลี่ยนแปลงที่หน้าแรกเลยครับ แล้ว code ที่ให้มาตรง
$block = module_invoke('user', 'block', 'view', 2);
สามารถใส่ parameter อะไรได้บ้างครับ
ปล. ผมยังมือใหม่มากๆ เลยครับและเขียน PHP ไม่เป็นด้วยเลยงงเป็นพิเศษขอโทษด้วยครับ - -"
ต้องเปลี่ยนหน้าแรกด้วยครับ ปกติหน้าแรกจะเป็น `node` ถ้าใช้ front page ก็ควรจะเปลี่ยนเป็น `front_page` ช่วงทดลองลองเข้าหน้า `front_page` ก่อนก็ได้
ถ้าต้องการให้หน้าแรกของผมแบ่งเป็น 3 ส่วนในหน้าเดียวกันอย่างเช่น ข่าวประกาศ รีวิวส์ และบทความ โดยที่ผมอยากให้มี 3 block ที่หน้าแรก และผู้ใช้ทุกคนเห็นเหมือนกันหมดน่ะครับ โดยที่เวลาผมเขียนเรื่องอะไรเข้ามามันก็จะไปอยู่ 5 เรื่องล่าสุดใน block ของมันเอง โดยที่ไม่ขึ้นมาปนกันเหมือนปกติที่เขียนเรื่องอะไรพอ publish แล้วจะมาอยู่ในหน้าแรกปนกันหมดเลย
จากตัวอย่าง ผมได้สร้าง block ของข่าวประกาศ รีวิวส์ และ บทความไว้ แล้วทีนี้ผมเขียนข่าวประกาศไป มันก็จะไปโผล่ที่ block ของข่าวประกาศ ส่วน block อื่นๆ ที่ยังไม่ได้เขียนก็ไม่มีอะไรอัพเดต
module front page เท่าที่ผมลองอ่าน document ดูแล้วเหมือนกับว่ามันจะสร้างหน้าที่ผู้ใช้แต่ละกลุ่มจะเห็นไม่เหมือนกันอ่ะครับ แล้วก็ทำพวกหน้า ปิดเว็บไซต์ หรือแสดง splash น่ะครับ ไม่รู้ว่าทำแบบที่ผมอธิบายได้รึเปล่า รบกวนช่วยตอบทีครับ
ขอบคุณครับ
ถ้าอยากให้ทุกคนเห็นเหมือนกัน ก็ใส่โค้ดเหมือนกันให้กับทุกกลุ่ม
ลองโมดูล View สร้างเป็น block
เวลาใช้ก็
ขอบคุณครับ ขอไปลองเล่นก่อนแล้วจะกลับมารายงานผลครับ ^^
ทำได้แล้วครับ จากโค้ดที่ให้มา
print $block['content'] ตรง content ผมเปลี่ยนเป็นอย่างอื่นได้มั้ยครับ เช่น ผมสร้างประเภทไว้เป็น Annoucement กับ Reviews ผมสามารถเปลี่ยน content เป็น Annoucement ได้เลยป่าวครับ?
เปลี่ยนที่ ชื่อของวิว ครับ
สงสัยเมื่อคืนเบลออ่านแล้วไม่รู้เรื่องว่าถ้าจะเปิดการทำงานของ front_page ให้ใส่ลิ้งค์เป็น front_page :P
ผมลองใช้ทั้ง front_page กับ views แล้วครับ ที่จริงใช้ views แล้วให้สร้าง block ก็ใช้ได้นะครับแต่ว่าพอผมวางไว้ที่ content ทีนี้ไปหน้าไหนมันก็มาอยู่ข้างล่างตลอด ทำให้หน้าเว็บยาว
ผมเลยใช้วิธีสร้าง view ไว้แล้วให้ front_page ไปเรียกมาแต่ก็มีปัญหาคือผมจะทำให้มี Title ตัวใหญ่ๆ ยังไงครับ - -"
-----------------------------------------------------------------
เพิ่มเติมครับ ในโค้ด php block นี่ถ้าจะให้แสดงตาม category นี่เขียนแบบไหนหรอครับ
ขอบคุณล่วงหน้าครับ
block สามารถกำหนดให้แสดงเฉพาะหน้าใดๆ ตามเงื่อนไขได้ครับ
เข้า admin/build/block เหลือ configure block ที่ต้องการ
แล้วไปกำหนดที่ี่ Page specific visibility settings เอาครับ
ถ้าผมใส่ php snippet นี้ผมจะทำให้แสดงชื่อ Title ตัวใหญ่ๆ แบบที่เซ็ตในโมดูล block ได้มั้ยครับ
<?php
$block = module_invoke('views', 'block', 'view', 'ชื่อของวิว');
print $block['content'];
?>
แล้วถ้าต่อๆ กันหลายๆ อันแบบนี้จะแสดงหลายๆ block ป่าวครับ
<?php
$block = module_invoke('views', 'block', 'view', 'ชื่อของวิว');
print $block['content'];
?>
<?php
$block = module_invoke('views', 'block', 'view', 'ชื่อของวิว2');
print $block['content2'];
?>
ขอบคุณมากครับ
มันคือ php น่ะแหละครับ เขียนแบบนั้นก็ได้ ถ้าอยากได้ title ใหญ่ๆ ก็ใช้
<h2></h2>หรืออะไรก็ได้ตามสะดวก