สร้างโปรไฟล์ผู้ใช้แบบกำหนดเอง Joomla 2.5

ฉันสร้างฟิลด์โปรไฟล์ผู้ใช้แบบกำหนดเอง ฉันเพิ่งสร้างปลั๊กอินแก้ไขโปรไฟล์ผู้ใช้ (เพิ่มฟิลด์ในprofile.xml ฯลฯ) ตอนนี้เมื่อฉันสร้างผู้ใช้หรือแก้ไข ฉันมีช่องโปรไฟล์แบบคลาสสิก (เมือง ที่อยู่ ฯลฯ) และช่องของตัวเอง ฉันสร้างหน้าโปรไฟล์ผู้ใช้ที่แสดงทุกฟิลด์ แต่ฉันต้องการแก้ไขหน้านี้ ฉันต้องการแสดงเฉพาะฟิลด์ของฉันหรือเพิ่มคลาส css เป็นต้น

ฉันจะแก้ไขมันได้อย่างไร? ฉันสามารถหามันได้ที่ไหน?

ในอีกทางหนึ่ง ฉันสร้างหน้าอื่นด้วยปลั๊กอิน php ฉันสามารถเพิ่มโค้ดบางส่วนได้ ฉันจะเข้าถึงฟิลด์ที่กำหนดเองได้อย่างไร ฉันลองใช้ http://docs.joomla.org/Accessing_the_current_user_object แต่ฉันสามารถเข้าถึงได้เฉพาะฟิลด์เริ่มต้นเท่านั้น .

ไม่มีใครรู้วิธีการเข้าถึงตัวแปรเหล่านี้หรือไม่?

ป.ล. นี่คือสิ่งที่ฉันเขียนในบทความของฉันด้วย php:


    $user =& JFactory::getUser();

    $userId = $user->id;

    $db = &JFactory::getDbo();
        $db->setQuery(
            'SELECT * FROM phs_user_profiles WHERE user_id = '.$userId.' AND profile_key      LIKE \'myfilevalue1.%\''
        );
    $results = $db->loadAssocList();
    if($results) echo $results[0]['profile_value'];
    else echo "dont work";

มันขึ้นว่า "ไม่ทำงาน" :(

เกิดอะไรขึ้นกับรหัสนี้?


person Edoz    schedule 22.10.2012    source แหล่งที่มา
comment
โครงสร้างของไฟล์ฐานข้อมูลของคุณคืออะไร ตัวอย่างเช่น คุณไม่ได้ใช้ #__phs_user_profiles โดยใช้คำนำหน้า joomla ใช่หรือไม่   -  person George Wilson    schedule 22.10.2012
comment
ฉันได้ลองใช้ #__ แล้ว แต่ก็เหมือนเดิม .. ข้อผิดพลาดอยู่ในแบบสอบถามเครื่องหมายอะพอสทรอฟี ' :)   -  person Edoz    schedule 23.10.2012


คำตอบ (2)


วิธีง่ายๆ ที่คุณต้องแก้ไขมุมมอง com_users (โปรไฟล์) และในมุมมองโปรไฟล์ คุณสามารถเข้าถึงผู้ใช้ได้โดย: -

$user =& JFactory::getUser();

 //firstly check you got this.  
echo  $userId = $user->id;
// then you can access all fields using userid.
    $db = &JFactory::getDbo();
    $query = "SELECT * FROM phs_user_profiles WHERE user_id = ".$userId;
        $db->setQuery($query);
    $results = $db->loadAssocList();
// print result using print_r($results); if you get
    if($results) echo $results[0]['profile_value'];
    else echo "dont work";

ตรวจสอบลิงก์ http://docs.joomla.org/Accessing_the_database_using_JDatabase ด้วย

person Rakesh Sharma    schedule 22.10.2012
comment
ขอบคุณ .. ฉันไม่สามารถใช้ print_r ได้เนื่องจากปลั๊กอินของฉันไม่อนุญาต แต่มีบางอย่างผิดปกติกับ ' ของแบบสอบถาม - person Edoz; 23.10.2012

ก่อนอื่น คุณได้ระบุตารางฐานข้อมูลของคุณไม่ถูกต้อง คุณต้องกำหนดคำนำหน้าโดยใช้ #__ เช่น #__content

คุณควรเปลี่ยนรหัสต่อไปนี้ด้วย:

if($results) echo $results[0]['profile_value'];
else echo "dont work";

สำหรับสิ่งนี้:

if($results) { 
   echo $results[0]['profile_value'];
}
else { 
   echo "dont work";

}
person Lodder    schedule 22.10.2012
comment
ครั้งแรกที่ฉันลองด้วย #__ แต่ไม่เปลี่ยนผลลัพธ์... และกับ {} ก็เหมือนเดิม :) - person Edoz; 23.10.2012