From: Markus K. <ma...@se...> - 2011-06-13 09:42:37
|
On 12/06/11 20:04, Leonard Wallentin wrote: > Thank you Markus, I guess that means that I should write my own result > printer, which is basically a copy of the 'table' one, but producing an > array rather than a html table? I will do that! (Just thought that there > might be some function ready to use) Well, maybe this is not the ideal solution. What I was saying is that the SMWQueryResult basically *is* the array that you are looking for. As long as you are not specifically requiring an array (e.g. for some PHP function elsewhere) there is no use in copying the contents of an SMWQueryResult to another array. Rather, you could just directly use it to do what you eventually want to do with the data (and this is where you will need to iterate over the data like in a result printer). Markus > > > Date: Sun, 12 Jun 2011 12:29:56 +0100 > > From: ma...@se... > > To: leo...@ho... > > CC: sem...@li... > > Subject: Re: [SMW-devel] Getting property values from query, the > right way? > > > > Hi Leonard, > > > > is the SMWQueryResult object that you get from query answering not > > exactly what you want? It basically encodes the structure of a three > > dimensional array (rows -- cells in row -- values in cell), but using > > custom SMW classes for convenient (and efficient) access to the data. > > > > The table format, for example, preserves this structure, while the list > > format (as you rightly remark) does not separate the values coming from > > different cells if property labels are not shown. If you need another > > form of display, you should easily be able to create it from the > > SMWQueryResult. Basically, this means you are writing your own result > > printer. If you look at the code of the table result printer in SMW, you > > can see that the iteration over a three dimensional array is a bit > > cumbersome (esp. if interleaved with formatting customizations), but in > > the end it should not be too difficult to understand. From your email, > > it does not sound as if you really want to print data anyway, but the > > iteration over the data could be the same in other code, just without > > creating text from the data values. > > > > I hope this helps, > > > > Markus > > > > > > On 11/06/11 00:02, Leonard Wallentin wrote: > > > Hello, I'm sorry if this is a very simple question, but I've been > > > reading the manual for the whole day without getting it right. I'm > > > making a query from an extension, asking for two properties, one of > > > which will have multiple values. Problem is that when using > > > SMWQueryProcessor I am stuck with a few predefined formats, more > > > suitable for printing to the screen. What I would like is to get an > > > array or an object, something like this would be neat: > > > > > > 0 => { title => Article 1, property 1=> value, property 2=>{0 => a > > > value, 1 => another value}}, 1 => ... > > > > > > Using the 'list' format I get something like this: > > > > > > ”Article 1 (value, a value, another value)” > > > > > > Starting to write complex parsing functions to convert that into an > > > array seems wrong, as I'm sure the data must, at some point, have been > > > stored in a more progammatically accesible way, after being fetched > from > > > the database, but before being written to a string like such. > > > > > > > > > My function is something like this: > > > > > > function doRequest ( $query, $properties = array() ) { > > > > > > $params = array('link'=>'none'); > > > $context = SMWQueryProcessor::INLINE_QUERY; > > > $format = 'list'; > > > $printouts = array(); > > > foreach ( $properties as $p ) { > > > > > > $printouts[] = new SMWPrintRequest(SMWPrintRequest::PRINT_PROP, "", > > > SMWPropertyValue::makeUserProperty($p)); > > > > > > } > > > > > > $query = SMWQueryProcessor::createQuery($qs, $params, $context, > $format, > > > $printouts); > > > $result = SMWQueryProcessor::getResultFromQuery($query, $params, > > > $printouts, SMW_OUTPUT_WIKI, $context, $format); > > > > > > return ($result); > > > > > > } > > > > > > Any directions on how to proceed would be very appreciated! > > > > > > Best regards > > > Leo Wallentin > > > > > > Leonard Wallentin > > > leo...@ho... > > > +46 (0)735-933 543 > > > http://säsongsmat.nu > > > http://nairobikoll.se/ > > > http://twitter.com/leo_wallentin > > > Skype: leo_wallentin > > > > > > -----BEGIN PGP PUBLIC KEY BLOCK----- > > > Version: GnuPG v1.4.10 (GNU/Linux) > > > > > > mQENBE1JuiUBCADsAnoxo1o3G2Apkjs8NHSfbN4g/H8HbS4XXfjruZ6Afu6PBMJI > > > CoiopKmTzQojjUZEjM2i4QsynU2xX4PmpMloPCOXEWxQg7q6HgHKyBU9NroL+17T > > > WA/30jGTmi2pkuznX1LpYKz0r8oSUsrg9oIeJmSbPRP6bNjwlgaDzarfYjcfEFXu > > > Y0s8KdVT1M8Zw2Sq7QuYPaiT+gfLMN5FaCzCZPdHZu8L1lXszTtFxztiF0hTd2C6 > > > 8yAW3DlTqTOSWqQtt10tf8VxeXPGxfqs6Ti8s5MsAsUtg9vw0A7gQC36SmRXel7W > > > l/rYbkESqDKANgIT6ofbIru0ozdy/BxnL2wXABEBAAG0LUxlb25hcmQgV2FsbGVu > > > dGluIDxsZW9fd2FsbGVudGluQGhvdG1haWwuY29tPokBOAQTAQIAIgUCTUm6JQIb > > > AwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQOYTL0NQ4Ju9AwQf+L655KY1W > > > 9Q43IOfZ6hJBwfPjhC4pWppptxe4atsSIo+wh+UHd4Zle59LjMZqCGJrFmhRNk+E > > > DtReKuZT/9aZ6yIoqIf0qgqs2L+NPsFprLlsl284cZZtU7YR9oeOVwAK6l58pWfD > > > 1YQnZEOZDcklvunXI7SpFesB3YbuEnlcU3AJQ9hBJquEuMsGXlcXin/1zid+wEWW > > > lkJz4nqp/EaZ9ITHpSzhftsvknskttLqbbEiXyGjMH+FO99S5Vbn9PZAs3axRCHV > > > MWZqx7DLM6FOTlowklLR4lH0UGawwDwjRICDJQlhcS4fA5ORByXE3zbZ45MleQJK > > > aTYuzxb6IVBzBrkBDQRNSbolAQgAv2RTauQ/aQbpS718FPoxPCdA/GgRXvYQ/dle > > > G7m+p0EBUuu+XlDThyQOrWMBy4UICp2OvChfeb0x7SQ2Xg7ahRkWuKnhGiPKkvoZ > > > qBVrbZ1bKcjA6QXcImelICtSjd3UTtCHcfNttEe5d000GaRJBAzsZseDVebpblLt > > > X1z/n/9nsas+moAdRpiyfSPX1HFW57429GzDUsyCvQfqaPwPCuZa4OBtqxw/ydyn > > > hGh1fBcm4bwOU5nqUt+N/d7GXSpZtYChuNhQZj0uwtvMnXJoKyIEPRIx1xkRJTaC > > > uZTZKqnNU3EGwtYDhAgMQpVzFXXBoSBAfV9Jz9XPHd4RidakEwARAQABiQEfBBgB > > > AgAJBQJNSbolAhsMAAoJEDmEy9DUOCbviRgH/3Tm05nqdsFk531eOLMkCqSoPupM > > > YSId04pE9qgKZCGHvqYYxWuksgDj9BFCm+vMfW+e45bX4nd2bxkZecMCVvAOQrsB > > > yKnk7g4BFI6YxYluCt5ouaRPcB73ztk+08z9j0GvlCo3IAp06neoC/IH1XhUvkts > > > bXBzxQt7zO7Gic54U516Qzsr4iD6MQsBkGoaSKtLtk4v8xFMgDWIl1ODy70qabES > > > 7+5IJn0vnh9DWJqkosofRMcqYoblwvf7orDuSgr76wokaTKCCsNEOt7TTbO8XVyQ > > > r3wzIiopALjOj/2N9kxaHg9MQOfERV6prfZmkxPP69ptlCnJVZL7vwTO/0E= > > > =KIpq > > > -----END PGP PUBLIC KEY BLOCK----- > > > > > > > > > > > > > > > > ------------------------------------------------------------------------------ > > > EditLive Enterprise is the world's most technically advanced content > > > authoring tool. Experience the power of Track Changes, Inline Image > > > Editing and ensure content is compliant with Accessibility Checking. > > > http://p.sf.net/sfu/ephox-dev2dev > > > > > > > > > > > > _______________________________________________ > > > Semediawiki-devel mailing list > > > Sem...@li... > > > https://lists.sourceforge.net/lists/listinfo/semediawiki-devel > > |