drupal: แก้ไขงานของโมดูล Import HTML
บันทึกการแก้ไขด้วยมือ
จากครั้งก่อน ผมได้สร้างหน้าเปล่าขึ้นมา แล้วแปลงให้เป็น book เตรียมไว้
แล้วจึงนำเข้าเอกสาร ด้วยโมดูล import HTML ดังนั้น หน้าเปล่าของเราจะเป็น node/1 และเอกสารที่นำเข้า จะเริ่มต้นตั้งแต่ node/2 เป็นต้นไป จนถึงหน้าสุดท้าย สมมุติว่าเป็น node/100 แล้วกัน
เมื่อทำการอิมพอร์ตเข้ามาแล้ว จะพบจุดผิดพลาดมากมาย ขอบันทึกการแก้ไขไว้นิดนึง เผื่อจะขยายขอบเขตไปถึงการแก้ไขโค๊ดต้นฉบับ
ตอนอิมพอร์ต ผมเลือกที่จะไม่เพิ่มรายการในเมนูแบบอัตโนมัติ
เราจึงต้องยกเลิกหัวข้อ Add each page to menu
ตอนนี้ศึกษาเรื่อง adodb อยู่ เลยใช้ไพธอนในการทำงานไปด้วยเลย
เริ่มต้น
$ python
Python 2.4.4 (#2, Oct 20 2006, 00:23:25) [GCC 4.1.2 20061015 (prerelease) (Debian 4.1.1-16.1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import adodb >>> driver = 'mysql' >>> host = 'localhost' >>> user = 'user' # MYSQL USER >>> password = 'password' # MYSQL PASSWORD >>> db = 'testdrupal47' # DRUPAL-4.7 DATABASENAME >>> conn = adodb.NewADOConnection(driver) >>> cur = conn.Connect(host,user,password,db)
งานที่ทำคือ
- เปลี่ยน page เป็น book
- แก้ไข title ล้น โดยใช้ฟังก์ชั่น
string.strip()
- เรียงลำดับหน้าหนังสือใหม่ ด้วยมือ
ขั้นตอน
>>> for i in range(2, 101, 1): ... cur = conn.Execute('INSERT INTO book (vid, nid, parent, weight) VALUE (%s, %s, 0, 0)' % (i, i))
>>> cur=conn.Execute('UPDATE node_revisions SET format=1 WHERE nid>1')
>>> cur=conn.Execute('UPDATE node SET type="book" WHERE nid>1')
>>> cur=conn.Execute('UPDATE book SET parent=1 WHERE nid>1')
>>> cur=conn.Execute('UPDATE node SET comment=2 WHERE nid>1')
>>> cur=conn.Execute('UPDATE node SET promote=0 WHERE nid>1')
string.strip()
>>> for i in range(2, 101, 1): ... cur=conn.Execute('SELECT title FROM node WHERE nid=%s' % (i)) ... title=cur.fields[0].strip() ... cur=conn.Execute('UPDATE node SET title="%s" WHERE nid=%s' % (title, i))
ตาราง node_revisions
>>> for i in range(2, 101, 1): ... cur=conn.Execute('SELECT title FROM node_revisions WHERE nid=%s' % (i)) ... title=cur.fields[0].strip() ... cur=conn.Execute('UPDATE node_revisions SET title="%s" WHERE nid=%s' % (title, i))
เรียงลำดับหน้าหนังสือใหม่ ด้วยมือ
อันนี้นานที่สุด แต่ก็คุ้มกว่าการนำเข้าด้วยมือทั้งหมด
- Printer-friendly version
- Log in or register to post comments
- 4217 reads
Recent comments