2015-11-15 15:48 GMT-02:00 Peter Haworth <p...@lcsql.com>: > This looks like the server side of things and I'm > looking for examples of using the revXMLRPC@ calls from a Livecode desktop > app. >
Here is my getPost WordPress function: --------------------------- -- GET POST --------------------------- /* -- Fields to return (optionals): string post_id, string post_title, datetime post_date, datetime post_date_gmt, datetime post_modified, datetime post_modified_gmt, string post_status, string post_type, string post_format, string post_name, string post_author, string post_password, string post_excerpt, string post_content, string post_parent string post_mime_type, string link, string guid, int menu_order, string comment_status, string ping_status, boolean sticky, struct post_thumbnail [lack support, yet], array terms (string term_id, string name, string slug, string term_group, string term_taxonomy_id, string taxonomy, string description, string parent, int count ), array custom_fields (id, key, value), array enclosure (url, length, type) */ function wp.getPost pPostID pFieldsA global gDebug global gServer, gPort, gXmlrpcPath, gProto, gBlogID local tID, res, lPostContentA,tMembersNum, tMemberPath, tName local tCustomPath, tCustomNum, tCustomStructPath, tTemp, tCustomName, tCustomValue local tTermsPath, tTermsNum, tTermMembersPath, tTermMembersNum, tTermName local tTermStructChildPath, tTermValue, tEnclosurePath, tEnclosureName local tEnclosureChildPath, tEnclosureValue, tValuePath, tValue put revXMLRPC_CreateRequest(gServer, gPort, gXmlrpcPath, gProto) into tID revXMLRPC_SetMethod tID, "wp.getPost" revXMLRPC_AddParam tID, "int", gBlogID -- this don't select the blog but is neccessary XMLRPC_AddUser tID -- Set the post to retrieve revXMLRPC_AddParam tID, "int", pPostID -- Set optional fields to retrieve revXMLRPC_AddParam tID, "array", pFieldsA XMLRPC_SetAuthorization tID -- Retrieve put revXMLRPC_Execute(tID) into res //put revXMLText(res) into gDebug ----------------debugging revDeleteXMLTree tID Err res -- Build an array with posts data -- This path refers to structure of returned XML put revXMLnumberOfChildren(res, "/methodResponse/params/param/value/struct/","member", 1) into tMembersNum repeat with x = 1 to tMembersNum put format("/methodResponse/params/param/value/struct/member[%s]/", x) into tMemberPath put revXMLNodeContents(res, (tMemberPath & "name")) into tName if tName is "custom_fields" then put format("/methodResponse/params/param/value/struct/member[%s]/value/array/data/",x) into tCustomPath put revxmlnumberofchildren(res, tCustomPath,"value", 1) into tCustomNum repeat with y = 1 to tCustomNum put format("/methodResponse/params/param/value/struct/member[%s]/value/array/data/value[%s]/struct/", x,y) into tCustomStructPath -- Get the fields: "id", "key", "value" repeat with z = 1 to 3 put format("/methodResponse/params/param/value/struct/member[%s]/value/array/data/value[%s]/struct/member[%s]/", x,y,z) into tTemp put revXMLNodeContents(res, (tTemp & "name")) into tCustomName put revXMLNodeContents(res, (tTemp & "value/string")) into tCustomValue put textDecode(tCustomValue,"UTF-8") into lPostContentA[tName][y][tCustomName] end repeat end repeat next repeat end if if tName is "terms" then put format("/methodResponse/params/param/value/struct/member[%s]/value/array/data/",x) into tTermsPath put revxmlnumberofchildren(res, tTermsPath,"value", 1) into tTermsNum repeat with y = 1 to tTermsNum put format("/methodResponse/params/param/value/struct/member[%s]/value/array/data/value[%s]/struct/", x,y) into tTermMembersPath put revxmlnumberofchildren(res, tTermMembersPath,"value", 1) into tTermMembersNum repeat with z = 1 to tTermMembersNum put format("/methodResponse/params/param/value/struct/member[%s]/value/array/data/value[%s]/struct/member[%s]/", x,y,z) into tTemp put revXMLNodeContents(res, (tTemp & "name")) into tTermName put revXMLFirstChild(res,(tTemp & "value")) into tTermStructChildPath put revXMLNodeContents(res, tTermStructChildPath) into tTermValue put textDecode(tTermValue,"UTF-8") into lPostContentA[tName][y][tTermName] end repeat end repeat next repeat end if -- WP return just one enclosure. It apears in custom fields, too. if tName is "enclosure" then put format("/methodResponse/params/param/value/struct/member[%s]/value/struct/", x) into tEnclosurePath -- Get the fields: "url", "length", "type" repeat with y = 1 to 3 put format("/methodResponse/params/param/value/struct/member[%s]/value/struct/member[%s]/", x,y) into tTemp put revXMLNodeContents(res, (tTemp & "name")) into tEnclosureName if tEnclosureName is not empty and not(tEnclosureName begins with "xmlerr,") then put revXMLFirstChild(res,(tTemp & "value")) into tEnclosureChildPath put revXMLNodeContents(res, tEnclosureChildPath) into tEnclosureValue put textDecode(tEnclosureValue,"UTF-8") into lPostContentA[tName][tEnclosureName] end if end repeat next repeat end if -- (TODO: post_thumbnail support) -- If is any other field type: ---- revXMLFirstChild get any type (string, boolean, array, int, i4, dateTime.iso8601, struct) put revXMLFirstChild(res,(tMemberPath & "value")) into tValuePath put revXMLNodeContents(res, tValuePath) into tValue put textDecode(tValue,"UTF-8") into lPostContentA[tName] end repeat return lPostContentA end wp.getPost -- [image: Meira] ------------------------------ nome: "José Antonio Meira da Rocha <https://plus.google.com/+JoséAntonioMeiradaRocha/>" email: joseantonioro...@gmail.com veículo: [ http://meiradarocha.jor.br ] fones: [ 55-8448-3866 55-3744-2994 ] 🐊 ------------------------------ _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode