ถามเรื่องการนำค่า File tokens มาใช้ รบกวนท่าน sugree แวะดูหน่อยครับ

By kongdirector

ผมสร้าง content type มีรายละเอียดดังนี้
1.สร้าง cck ชนิด image
และใช้ File tokens ในการเก็บชื่อ file และ folder ดังนี้
1.1 File path: panorama/[field_panoimage-filefield-onlyname]
1.2 File name: [field_panoimage-filefield-onlyname].[field_panoimage-filefield-extension]

2.แล้วผมสร้าง cck ชนิด text เพื่อใส่ค่า php
ผมต้องการรับค่าชื่อภาพของ image ในข้อ 1 ([field_panoimage-filefield-onlyname]) เพื่อนำไปอ้างอิง folder ในการใช้งาน
ผมใช้คำสั่งใน php ดังนี้

<?php
$token = '[field_panoimage-filefield-onlyname]';

...........
?>

แต่ค่าของ $token จะได้เป็น "[field_panoimage-filefield-onlyname]" ไม่ได้เป็นชื่อของ image ที่ upload
ผมไม่เข้าใจเรื่องนี้เลยครับ
จึงอยากถามว่าจะใช้คำสั่งอะไร ดึงค่า file tokens ในข้อ 2 มาใช้ครับ
ขอบคุณครับ

6 comments

รูปภาพของ ball.in.th
By ball.in.th
1 ปี 32 weeks ago

เท่าที่เข้าใจ token

เท่าที่เข้าใจ token นี่เราไม่สามารถเพิ่มเองได้ (ยกเว้นทำเป็นโมดูล) ต้องเลือกใช้เอาเท่าที่มีให้มาครับ และอาจจะใช้ http://drupal.org/project/filefield_paths เพื่อเพิ่ม token อีกนิดหน่อยครับ

ปล. ถ้าจะตั้งให้เก็บไฟล์ใส่ไว้ใน folder panorama ก็แค่เปลี่ยน Path settings File path: ใน admin/content/node-type/type/fields/field_name เป็น panorama ครับ

By kongdirector
1 ปี 32 weeks ago

ขอขอบคุณคุณ Ball

ขอขอบคุณคุณ Ball ที่มาช่วยแนะนำครับ

แต่ผมขออธิบายใหม่คร่าวๆครับ ยกตัวอย่างเลยนะครับ
content นี้จะนำภาพเข้ามาใช้ ยกตัวอย่างว่า create content แล้ว upload ภาพชื่อ spiderman.jpg
รายละเอียดมีดังนี้
1.ผมสร้าง cck ชนิด file image เพื่อ uploadรูปภาพชื่อ spiderman.jpgไปไว้ใน folder ชื่อ spiderman โดยใช้ token นี้ ====> [field_panoimage-filefield-onlyname] ซึ่งจะสร้าง folder spiderman ขึ้นมาให้อัตโนมัติและเก็บภาพ spiderman.jpg ไว้ข้างใน (File path: [field_panoimage-filefield-onlyname] ซึ่งตรงนี้ไม่มีปัญหา)
2.ผมสร้าง ckk อีก 1 ตัวชนิด text และ set ค่าใน default value รูปแบบอินพุตเป็น php เพื่อต้องการใช้ภาษา php เขียน file xml ไปไว้ใน folder spiderman ด้วย และภายใน file xml นี้จะต้องไปเรียก file รูปชื่อ spiderman.jpg มาใช้งาน
3.ผมต้อง copy file html 1 file ไปไว้ใน folder นี้ด้วย

ผมต้องการจะสร้างตัวแปลชื่อ $token มาเพื่อรับค่าชื่อของภาพที่ไม่ต้องมี extension (spiderman) มาใช้ แต่ลองใช้คำสั่ง $token = '[field_panoimage-filefield-onlyname]'; แล้วแต่ก็ไม่ได้ค่ามา

ช่วยแนะนำด้วยครับ
ขอบคุณครับ

ปล.เพราะตอนนี้เวลาผม upload รูป ผมต้อง copy เฉพาะชื่อภาพมาไว้แทนค่าของ $token
เช่น $token = 'spiderman';

รูปภาพของ ball.in.th
By ball.in.th
1 ปี 32 weeks ago

ยังไม่ค่อยเข้าใจอยู่ดีครับ

ยังไม่ค่อยเข้าใจอยู่ดีครับ 555
php ที่จะเขียนจะไปเขียนตรงไหนครับ? แล้ว $token นี่เกี่ยวกับโมดูล token หรือเปล่า?

ไม่แน่ใจว่ามี hook ตอน upload file หรือเปล่า แต่อาจใช้ hook_nodeapi http://api.drupal.org/api/function/hook_nodeapi/6 ตอน 'presave' เพื่อดูค่าใน field ต่างๆใน $node แล้วก็สร้างไฟล์ xml และ html ตามต้องการก็ได้ครับ

ถ้าจะเขียนโมดูลให้ใช้งานกับโมดูล token ลองอ่าน http://drupal.org/handbook/modules/token

By kongdirector
1 ปี 32 weeks ago

ขอบคุณครับคุณ

ขอบคุณครับคุณ Ball
ผมจะลองดูก่อนนะครับ

แต่ขอถามนิดครับ
สมมุติว่าผมต้องการ สร้าง cck image แล้ว upload fileภาพไปเก็บใน folder ที่กำหนด และต้องการสร้าง file xml ไปเก็บไว้ใน folder เดียวกันกับ file ภาพนั้นด้วยต้องทำอย่างไรครับ และต้องการ copy file html ลงไปเก็บที่ folder นั้นอีกตัวด้วยครับ

ยกตัวอย่าง file ภาพที่ upload ชื่อ spideman.jpg โดยจะจัดเก็บ file ดังนี้
/spiderman
   /spiderman.jpg
   /index.xml
   /index.html

แต่ folder ที่จัดเก็บแต่ละ node ที่ create ขึ้นจะเป็นชื่อของภาพนั้นๆครับ

รูปภาพของ ball.in.th
By ball.in.th
1 ปี 32 weeks ago

ไม่น่าจะมีโมดูลสำเร็จรูปเพราะ

ไม่น่าจะมีโมดูลสำเร็จรูปเพราะคงไม่เหมือนใครครับ

คงต้องเขียนโมดูลเพิ่มเติม ในส่วนสร้าง xml ไฟล์ ผมว่าใช้ hook_nodeapi http://api.drupal.org/api/function/hook_nodeapi/6 ตอน 'presave' เพื่อดูค่าใน field ต่างๆใน $node แล้วก็สร้างไฟล์ xml และ html ตามต้องการก็ได้ครับ

ส่วน copy file html จะ copy จากไหนครับ?

By kongdirector
1 ปี 23 weeks ago

ได้แล้วครับ ผมไปทำที่ themes

ได้แล้วครับ ผมไปทำที่ themes ครับ โดย duplicate ->node.tpl.php เป็น node-pano.tpl.php ขึ้นมาแล้ว ใช้คำสั่ง php ที่นั่นครับ รับค่า field จาก node ได้เลยครับ ขอบคุณคุณ Ball ด้วยนะครับที่ช่วยตอบคำถามทำให้ได้แนวทาง