[xwiki-users] how to find out incorrect named pages

xwiki xwiki xwiki at xiancaro.com
Wed Jun 6 10:24:13 CEST 2007


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"
<Esbachb at tycoelectronics.com> 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:xwiki at xiancaro.com] 
> Sent: 05 June 2007 13:37
> To: xwiki-users at objectweb.org
> 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
> 
> 
> 





More information about the users mailing list