วันพุธที่ 4 กุมภาพันธ์ พ.ศ. 2552

วิธีสร้าง external method on plone [ untested ]

บันทึกของP'daอ่ะ ผมไม่ได้เทสนะ ก็อปมาเลย ฮาๆ try at your own risk


import urllib

def helloWorld(self):

f = urllib.urlopen('http://www.gmail.com')
for k,v in f.headers.items():
print k+'='+v
# date = Sun 30 Nov ...
mytext = f.read()
f.close()
print mytext

return mytext


1. หาโฟลเดอร์ชื่อ Extensions ใน Plone Directory ใน Ubuntu ซึ่งจะอยู่ที่ /Plone/zinstance/parts/zope2/Extensions
2. นำไฟล์ .py (python) ที่ต้องการใช้เป็น external method มาวางไว้ในโฟลเดอร์ Extensions (ซึ่งแรกเริ่มเดิมที ในโฟลเดอร์นี้จะมีไฟล์ README.txt อยู่มีข้อความในไฟล์ว่า “Place files containing code for External Method objects in this directory.”)
3. ไปยังหน้า ZOPE manage http://localhost/manage เพื่อทำการ Add External Method โดยเลือก External Method ใน Dropdown List จากนั้นคลิกปุ่ม Add
4. พอมาถึงหน้า Add External Method จะมีฟิลด์อยู่ 4 ฟิลด์ให้กรอก
-ID ให้ใส่ชื่อ ID ใส่อะไรก็ได้(แต่ให้สื่อความหมายนิดส์ก็ดี)
-TITLE ใส่อะไรก็ได้เช่นกัน
-Module Name อันนี้ใส่อะไรก็ได้ไม่ได้แล้ว ต้องใส่ชื่อไฟล์ที่เรานำไปวางไว้ใน Extensions โฟลเดอร์โดยไม่ใส่ .py นะใส่แต่ชื่อไฟล์
-Function Name อันนี้ใส่อะรไรก็ได้ไม่ได้อีกเช่นกัน ต้องใส่ชื่อ Action ในไฟล์ .py ที่เราระบุ
ยกตัวอย่างเช่น ในไฟล์ hello.py มีการประกาศ def helloWorld เราก็ต้องใส่ Function name ว่า helloworld และใส่ Module Name เป็น hello เมื่อกรอกข้อมูลครบเสร็จเรียบร้อยก็ทำการกดแท็บ Test กันได้เลย

หลังจากนั้ไปสร้าง Script python ใน zope

# Import a standard function, and get the HTML request and response objects.

from Products.PythonScripts.standard import html_quote

request = container.REQUEST

RESPONSE = request.RESPONSE

idd = context.run_urllib()

#key = request.form['teststring']

return idd


แล้วไปสร้าง form ใน Plone form gen คะ แล้วไปที่ override

Custom Success Action แล้วพิมพ์ traverse_to:string:testscript0 เปลี่ยน testscript0 เป็นชื่อ External Method ของพง

ไม่มีความคิดเห็น:

LinkWithin

Related Posts Plugin for WordPress, Blogger...