เว็บสำเร็จรูป เว็บสำเร็จรูปภาครัฐ เว็บโรงเรียน เว็บไซต์ส่วนตัว ระบบบริหารจัดการเว็บไซต์ (CMS) ฟรี

ถามเกี่ยวกับ Widget RSS

ถ้าจะดึง Widget RSS มาแสดง เกิน 2cols, 2row เหมือน rss tab จะได้ไหมครับ
14 ธ.ค. 2553 13 2,252

ได้ครับ ผมเขียนเพิ่มเติมให้แล้ว ดูที่บทความครับ
#1

ขอบคุณมากครับ แจ่มมากๆ



แล้ว module board ตรงไอค่อนถ้าเราจะให้มันเปลี่ยนตามจำนวนคนเข้าชม ประมาณว่า New, Hot, Cool หรืออาจจะเลือกตอนตั้งกระทู้ว่า ฉ18+, แนะนำ, ทุกวัย อะไรประมาณนี้ จะแก้ได้ตรงไหนบ้างครับ :28:
#2

แต่ดู version วันนี้แล้ว 4.3.0 คริๆๆ
#3

คงต้องแก้เยอะละครับ



จริงๆแล้วโค้ดบร์ดของ GCMS ก็ไม่ได้ทต่างอะไรกันกับโค้ดบอร์ดทั่วๆไปเลยครับ ถ้าเข้าใจแนวคิดที่ต้องการ ก็สามารถออกแบบเพิ่มเติมได้



ถ้าทำความเข้าใจได้สักโมดูลหนึ่ง การออกแบบโมดูลเพื่อใช้งานเองก็จะง่ายดายครับ



อย่างแรกเลย การ แสดงข้อมูลใดๆเพิ่มเติม ต้องดูว่า เราจะเอาข้อมูลส่วนไหนมาแสดง เช่น การจัด rate เหมือนดังคำถาม ถ้าข้อมูลที่ต้องการไม่มีก็ต้องเพิ่มข้อมูลส่วนนี้เข้ามาก่อน ซึ่งก็ต้องเพิ่มฟิลด์ข้อมูลนี้



อย่างที่สอง จะจัดการข้อมูลส่วนนี้ที่ไหน และ ทำอย่างไร



อย่างที่สาม ข้อมูลนี้จะแสดงที่ไหน อย่างไร



โค้ดทั้งหมดก็เป็นแค่การเขียน PHP ธรรมดาเท่านั้นครับ ถ้าเคยเขียนก็คงน่าจะพอเขียนได้



แล้วจะแก้ไขที่ไหน ? จริงๆแล้วโครงสร้างของโมดูลโดยทั่วๆไปจะเหมือนกันทุกโมดูล การสัังเกตุว่าแต่ละไฟล์ทำอะไร ให้สังเกตชื่อไฟล์



view.php list.php มันน่าจะทำอะไรหนอ



admin_xxx.php น่าจะทำอะไรหนอ



หากจะตรวจสอบว่าหน้าไหนถูกเรียกใช้ที่ไหน ก็ทำได้ง่ายๆครับ ด้วยการ echo __FILE__ ที่หน้านั้นๆ เวลาเรียกหน้าใด ก็จะแสดงชื่อไฟล์นั้นๆออกมา ให้เรารู้ได้ว่าไฟล์ใดถูกเรียก



และทุกโมดูลจะมีลักษณะเหมือนกันหมด



การแสดงผล...ผมว่าถ้ามาถึงตรงนี้ได้ อะไรๆ มันก็น่าจะไม่ยากแล้ว เกี่ยวกับ template และ แนวคิดของมัน อ่านบนเว็บหลักได้เลยครับ



วิธีการ ไม่ได้มีอะไรซับซ้อน อาจเลือกใช้วิธีปฏิบัติ ตามที่ผมใช้อยู่ โดยศึกษาเอาจากโค้ด หรือ จะดัดแปลงในแบบของตัวเอง ก็ไม่ได้ผิดกติกาแต่ย่างใด เช่น งง เรื่อง template แล้วจะไปเขียนมันทำไม ถ้าทำเองใช้เอง แก้เอง เขียน HTML ใส่มันลงในโค้ดเลยก็ได้ ถ้ามันทำงานได้ตามที่ต้องการ มันก็ไม่แปลกอะไร...



ลองดูนะครับ...



ต้องขอเวลาสักพักสำหรับการเขียนบทความ เนื่องจากยังไม่มีเวลาจริงๆ (GCMS ก็ยังไม่ได้ไปอยู่ในจุดที่ผมพอใจซะทีเดียว) ถ้า GCMS อญุ่ตัวเมื่อไรคงได้เริ่มเขียนบทความครับ
#4

 ครับ ขอบคุญมากน่ะครับ ขอให้ GCMS4 อยู่ตัว เร็วๆ น่ะครับ เผื่อจะได้เริ่มเขียน อะไรๆ เพิ่มเติม ก็อยากลองเขียน module, widget เพิ่มเองมั้งเหมือนกัน คริๆ แต่แกะโค้ดไปก็งงไป ก็เลยหันไปทำอย่างอื่นก่อน คริๆ ขอบคุณน่ะครับ สู้ๆ เป้าหมายมีไว้พุ้งชน
#5

อ้างอิงจาก ความคิดเห็น #5 ครับ ขอบคุญมากน่ะครับ ขอให้ GCMS4 อยู่ตัว เร็วๆ น่ะครับ เผื่อจะได้เริ่มเขียน อะไรๆ เพิ่มเติม ก็อยากลองเขียน module, widget เพิ่มเองมั้งเหมือนกัน คริๆ แต่แกะโค้ดไปก็งงไป ก็เลยหันไปทำอย่างอื่นก่อน คริๆ ขอบคุณน่ะครับ สู้ๆ เป้าหมายมีไว้พุ้งชน


โมดูล หรือ Widget สามารถลองทำไปได้เลยครับ เนื่องจากตั้งแต่ต้นมันถูกอัปเดทน้อยมาก (นอกจากแก้ไข bug) การอัปเดทส่วนใหญ่ในตอนนี้จะไปอยู่ที่ระบบครับ
#6

แล้วถ้าจะให้ rss feed แสดงรายการเกิน 10 รายการ ต้องทำยังไงครับ ตอนนี้มัน list ออกมาแค่ 10 รายการ

เช่นใน http://gcms.goragod.com/howto.rss ก็แสดงแค่ 10 รายการ
#7

ถ้ากำหนดค่าแล้วไม่ได้ อาจเป็นไปได้ว่า ต้นฉบับ ส่งมาให้เท่านั้นครับ
#8

คือในไฟล์ modules\document\feed.php ครับ

บรรทัดที่ 4 //$sql .= "ORDER BY `last_update` DESC LIMIT $count";



อยากทราบว่า $count คือค่าเดียวกันที่ได้มาจาก news_count=15 (ที่อยู่ใน table _module,  field config) หรือป่าวครับ

เพราะถ้าเปลี่ยนจาก $count เป็น ตัวเลขเลย มันจะแสดง rss ตามจำนวนตัวเลขที่ใส่ ถ้าเป็น $count จะแสดงแค่ 10 
#9

อัปเดท feed.php ครับ



<?php

    include ("bin/inint.php");

    include ('bin/config.php');

    include ('bin/class.gcms.php');

    include ('bin/class.mysql.php');

    $db = new sql($config['db_server'], $config['db_username'], $config['db_password'], $config['db_name']);

    $module = $_GET['module'];

    if (isset($_GET['count'])) {

        $count = (int)$_GET['count'];

    } else {

        $count = (int)$_GET['rows'] * (int)$_GET['cols'];

    }

    $count = $count <= 0 ? 10 : $count;


    $cdate = date("D, d M Y H:i:s +0700", $mmktime);

    $sql = "SELECT M.`id`,M.`module`,M.`owner`,I.`topic`,I.`description`,M.`config`

        FROM `".DB_INDEX."` AS I,`".DB_MODULES."` AS M

        WHERE M.`module`='$module' AND

            I.`module_id`=M.`id` AND

            I.`menu_text`<>'' AND

            I.`language` IN ('".LANGUAGE."','')

        LIMIT 1";

    $modules = $db->customQuery($sql);

    if (count($modules) == 1) {

        $modules = $modules[0];

        echo '<?xml version="1.0" encoding="UTF-8"?>';

        echo '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">';

        echo '<channel>';

        echo '<atom:link href="'.WEB_URL.'/'.$module.'.rss" rel="self" type="application/rss+xml" />';

        echo "<title>".$modules['topic']."</title>";

        echo '<link>'.gcms::getURL($modules['module']).'</link>';

        echo '<description>'.$modules['description'].'</description>';

        echo "<pubDate>$cdate</pubDate>";

        echo "<lastBuildDate>$cdate</lastBuildDate>";

        if (is_file("modules/$modules[owner]/feed.php")) {

            require ("modules/$modules[owner]/feed.php");

        }

        echo '</channel>';

        echo '</rss>';

    }

    $db->close();
#10

surprise มายาวกว่าเดิม ขอบคุณครับ แต่ดูท่าทางผมคงต้องอัพเดทจาก 4.2 เป็น 4.3 ก่อนหล่ะครับ
#11

อัปเดทที่ดาวน์โหลดไปแล้ว
#12

ไปแทรกในไฟล์นี้  modules\document\feed.php หรอครับใส่เข้าไปแล้วหายเกลี้ยงไม่มีอะไรขึ้นเลย เด๋วต้องรอโหลดตัวอัพเดทใหม่ดีกว่า :28:
#13
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg, png, webp ขนาดไฟล์ไม่เกิน 2M
^