ถามด้านกลไกการ เขียนโค้ดของ joomla 1.5 ครับ เพิ่มฟิวส์แล้วไม่อ่านฟิวส์เพิ่มใหม่่

เริ่มโดย nu_dee, 13 ธันวาคม 2011, 14:33:07

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

nu_dee

ถามด้านกลไกการ เขียนโค้ดของ joomla 1.5 ครับ

ผมต้องการเพิ่มสัก 3 ฟิวส์ของ table :  jos_user   สมมุติว่าเพิ่ม test1 , test2 , test 3 สำเร็จผ่าน phpmyadmin
แล้วผมก็เพิ่มค่าใน ฟิวส์ test1,2,3 เป็นค่า 10,20,30 ตามลำดับ

จะให้แสดงผล ก็ใส่คำสั่งลงไปในหน้า php คือ
$user =& JFactory::getUser();
if (!$user->guest) {
  echo 'You are logged in as:<br />';
  echo 'User name: ' . $user->username . '<br />';
  echo 'Real name: ' . $user->name . '<br />';
  echo 'usertype  : ' . $user->usertype . '<br />';
  echo 'User ID  : ' . $user->id . '<br />';
  echo 'lastvisitDate  : ' . $user->lastvisitDate . '<br />';
  echo 'test1  : ' . $user->test1. '<br />';
  echo 'test2  : ' . $user->test2 . '<br />';
  echo 'test3  : ' . $user->test3 . '<br />';
}



เมื่อเข้าเว็บที่หน้าจอฟ้องว่า

You are logged in as:
User name: admin
Real name: Administrator
usertype : Super Administrator
User ID : 62
lastvisitDate : 2011-12-13 06:18:21
test1 :     <------------
testl2 :      <----------
test3 :     <---------------

คำถามว่า ตัวแปร test1 , 2 , 3 มันมองไม่เป็นครับ ต้องไปประกาศตัวแปรที่ไหนหรือเปล่า จุมลาถึงจะมองเป็นค่าฟิวส์ใหม่ๆ ที่เราเพิ่ม
ขอบคุณมากครับ

พ่อหนูดี

drlovecat

เบื้องต้นต้องโค้ดใน root/libraries/joomla/database/table/user.php ด้วย
แต่แนะนำให้ติดตั้ง Community Builder หรือ JomSocial แล้วทำการเพิ่มฟิลด์ในนั้นดีกว่า ง่ายกว่าเยอะ  :wanwan003:

drlovecat

ถ้าชอบโค้ดเอง ดูตัวอย่างตามนี้ครับ http://manchumahara.com/2010/03/18/how-to-add-extra-fields-in-joomla-registration/
แต่ถ้าลง CB (ฟรี), JomSocial (ไม่ฟรี) เราสามารถกำหนด editable filed ของแต่ละ field ได้ด้วย เช่น ฟิลด์นี้ให้เฉพาะ SuperUser แก้ได้ เช่น Permission, หรือเจ้าของ user แก้ได้ เช่น เบอร์โทรศัพท์, หมายเลขบัตรประชาชน, ชื่อกิ๊ก เป็นต้น

mSkyline

เขียนตารางแยกออกมา ง่ายกว่าครับ
จะทำอะไรกับมันก็ไปลิ้งค์เอา
AnyWhereToThai รับขนสินค้าจาก US UK JP KR CN กลับไทย
https://www.facebook.com/AnyWhereToThai

nu_dee

ขอบคุณหัวหน้าแก๊งเสียว drlovecat มากครับ
ผมพึ่งสังเกตว่า โค้ดเดิมมันอ่านข้อมูลได้นะ  แต่ต้องปิด IE ทุกหน้าก่อน แล้วเข้าใหม่  --> ข้อมูลถึงจะอัพเดท

แย่เลยครับ ตั้งใจใช้ ฟิวซ์ในตาราง user ไปจำกัดสิทธิ์การคลิ๊ก"โปรแกรมโหลดเอกสารแค่วันละ 1 ครั้ง"   แบบนี้เอาข้อมูลจาก user ของ JFactory ไปใช้ไม่ได้หรือเปล่าครับ  เพราะ กดปุ่ม Refresh บน IE แล้วข้อมูลไม่อัพเดท  ต้องปิดทุกหน้าแล้วเข้าใหม่ ถึงจะอัพเดทข้อมูล

มีทางแก้หรือเปล่าครับ อยากให้ข้อมูลอัพเดทใหม่ทุกครั้งที่คลิ๊กเข้าอ่าน


drlovecat


nu_dee

จะลองไปศึกษาดูครับ

/ จุดประสงค์ จะให้ user login เข้ามาอ่านเว็บได้ตลอดทั้งวัน ..  แต่ ที่ปุ่มพิเศษ จะยอมให้กด เพียงวันละ 1 ครั้ง ถ้ากดแล้วคะแนนจะกลายเป็น 0   และทุก ตีหนึ่ง ผมจะทำเซ็ทให้สมาชิก 1 คะแนนใหม่ทุกวันครับ

ทีนี้เลยเพิ่มฟิวส์ที่ table user เสียเลย พอ user เข้ามาอ่านเว็บ ระบบก็จะอ่านค่าไว้ว่า คนมีมีคะแนน 1 คะแนน  ยอมให้กดได้ 1 ครั้ง

solutioncom

      $db =& JFactory::getDBO();
      $user =& JFactory::getUser();
      $user_id = $user->id;
เห็นผลที่ต้องใช้ JFactory::getUser() เราต้องการค่าของ user ที่ไม่มีการเปลี่ยนแปลงขณะที่ใช้งานอยู่

ส่วนค่าที่ต้องการอัพเดทขณะที่ทำงานด้วย จะต้องดึงข้อมูลเองครับ

      $userdetail= "SELECT * FROM #__users WHERE id = ".$user_id;
         $db->setQuery($userdetail);
      $getuserdetail= $db->loadObjectList();

เมื่อได้ข้อมูลที่ต้องการก็ทำการอัพเดทลงฐานข้อมูลอีกทีครับ
:wanwan003: