function commentNode(nodeRef, comment) { var node = search.findNode(nodeRef); if(!node.hasAspect("fm:discussable")) { node.addAspect("fm:discussable"); } if(!node.hasAspect("fm:commentsRollup")) { node.addAspect("fm:commentsRollup"); } var forums = node.childAssocs["fm:discussion"]; var forum; if(forums.length === 0) { forum = node.createNode(node.properties.name + " discussion", "fm:forum", "fm:discussion"); } else { forum = forums[0]; } var topics = forum.childAssocs["cm:contains"]; var topic; if(topics == null || topics.length === 0) { topic = forum.createNode("Comments", "fm:topic", [], "cm:contains", "cm:Comments"); } else { topic = topics[0]; } var now = new Date(); var name = "comment-" + now.getTime(); var mypost = topic.createNode(name, "fm:post", [], "cm:contains", name); mypost.content = comment; }ตัว Function จะรับ NodeRef และ CommentText ไปจากนั้นนำ NodeRef ไปหา Node จริง จากนั้น check ว่า Node นั้นมี Aspect discussable กับ commentRollup หรือไม่ โดยหากไม่มีจะใส่ Aspect ให้
จากนั้นตรวจสอบว่ามีการทำ Child Association กับตัว discussion และตัว contains ไว้หรือยัง โดยหากยังก็ให้ Create Child Association ด้วย จากนั้นก็ add comment ลงไปครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น