Hi Brandon, thanks, it really works, now I know the escaping in this script is ' :) but the problem was not totaly solved, the script of navagation panel can ran, but the malnamed pages getting cluttering the page, for example someone name a page called "2007.3 something" it will go listed into 2007 space, and "abcd --a new way to go" will result in an opening of striked string and mess up the whole page. now I disable the navagation panel since I find the loading speed is quite slow. but considering that the naming in xwiki is not transparent for scripting, thinking a way to have name filter/check or a blacklist macro to restirict from naming it. like using condom to solve inherited disease :) any idea? cheers, Muzi p.s. following is the modified navagation panel script, if someone want use it and it's problem with some doc name: simply add following line: #set($space = $space.replace("'", "''")) just one line before this line: #set($sqlQuery = "doc.web='$space' order by doc.name" ) On Jun 05, 2007 08:50 PM, "Esbach, Brandon" <[email protected]> wrote:
Hi,
It's technically Monday here (yesterday was a bank holiday), so hopefully I understand the question correctly!
Easiest way would be to escape the "'" itself when used in the relevant place. You can escape "'" with a double quote using the .replace() string command. For example: #set($t_sSQLQuery="this is ${t_sUserName}'s query") #set($t_sSQLQuery=$t_sSQLQuery.replace("'", "''")) This is not the shortest way - but it is the more flexible way to do this; and ensures you can still update your query along the way if needed.
Thus, your snippet #set ($query = "where doc.name like '%--%'") Would become #set($docname="document'sname") #set($docname=$docname.replace("'", "''") #set ($query = "where doc.name like '%${docname}%'")
**In case you missed it, "${velocity_variable_without_the_dollar_sign}" is the formal method of accessing a variable's value; it allows you to build up strings using variables directly as demonstrated above.
-----Original Message----- From: xwiki xwiki [mailto:[email protected]] Sent: 05 June 2007 13:37 To: [email protected] Subject: [xwiki-users] how to find out incorrect named pages
Hi,
here I have a problem with a xwiki 1.0 which upgraded from an existing xwiki 0.9.840 which someone named a page like: "Jon's Pages" conflict with the navagation panel's sql statement.
I did a velocity script but I don't find it support "[ ]" wildcard noted in this reference manual:
http://manuals.sybase.com:80/onlinebooks/group-as/asg1250e/refman/%40ebt -link;pt=26021?target=%25N%15_26195_START_RESTART_N%25
since I just want to select where name not like mywhitelisted characters.
the blacklisted characters should be those used by xwiki syntax, and those symbol used in sql statement like "'" """
any one know how to use the wildcard to done that?
or any other solutions?
Thx in advance!
I already have this:
#set ($query = "where doc.name like '%--%'")
{table} Page Name | Author | date #foreach ($item in $xwiki.searchDocuments("${query}")) ##if ($xwiki.hasAccessLevel("view", $context.user, "${context.database}:${item}")) #set($bentrydoc = $xwiki.getDocument($item)) [${bentrydoc.web}.$bentrydoc.name] | $xwiki.getLocalUserName($bentrydoc.author) | $xwiki.formatDate($bentrydoc.date, $dateFormat) ##end #end {table}
Muzi