Commit 2f060aa1 authored by Frank Bergmann's avatar Frank Bergmann

Initial Import

parents
<div>
[<a href="index">Home</a>]
| [<a href="Editing">Help</a>]
| [<a href="Category">Categories</a>]
<if @edit_link_p@ true>
| [<a href="?edit">Edit This Page</a>]
</if>
<if @admin_p@ true>
| [<a href="admin/index?folder_id=@folder_id@">Admin</a>]
| [<a href="admin/index?folder_id=@folder_id@&modified_only=1">Changes</a>]
</if>
</div>
# footer for wiki pages shows edit, recent changes, search etc...
# show last modified
if {![exists_and_not_null edit_link_p]} {
set edit_link_p "f"
}
if {![exists_and_not_null admin_p]} {
set admin_p "f"
}
<master>
<property name="title">@title@</property>
<property name="header_stuff">@header_stuff@<STYLE TYPE="text/css">
textarea { overflow: auto; width: 50em; height: 30em;}
</STYLE>
</property>
<property name="context">@context@</property>
<property name="focus">@focus@</property>
<formtemplate id="new"></formtemplate>
<include src="/packages/wiki/lib/footer" write_p="0"/>
\ No newline at end of file
ad_page_contract {
create a new wiki page
} -query {
name
item_id:integer,optional
}
set folder_id [wiki::get_folder_id]
set user_id [ad_conn user_id]
set ip_address [ad_conn peeraddr]
permission::require_permission \
-object_id $folder_id \
-party_id $user_id \
-privilege "create"
# this is a wiki so we can always force the
# format and don't need richtext widget
set edit ""
ad_form -name new -action "new" -export {name edit} -form {
item_id:key
title:text
content:text(textarea)
revision_notes:text(textarea),optional
} -edit_request {
# content::item::get -item_id $item_id
db_1row get_item "
select
cr_items.item_id,
title,
content
from
cr_items,
cr_revisions
where
name=:name
and parent_id=:folder_id
and latest_revision=revision_id
"
} -new_data {
set item_id [content::item::new \
-name $name \
-parent_id $folder_id \
-creation_user $user_id \
-creation_ip $ip_address \
-title $title \
-text $content \
-description $revision_notes \
-is_live "t" \
-storage_type "text" \
-mime_type "text/x-openacs-wiki"]
} -edit_data {
content::revision::new \
-item_id $item_id \
-title $title \
-content $content \
-description $revision_notes
# fraber: After discussion with Dave: Let's use "live_version" to indicated an approved
# version and use the latest_version for display.
# db_dml set_live "update cr_items set live_revision=latest_revision where item_id=:item_id"
} -after_submit {
# do something clever with internal refs
set stream [Wikit::Format::TextToStream $content]
set refs [Wikit::Format::StreamToRefs $stream "wiki::get_info"]
if {![llength $refs]} {
set refs [list ""]
}
ns_log Notice "/wiki/lib/new.tcl: refs=$refs"
db_foreach get_ids "
select
ci.item_id as ref_item_id
from
cr_items ci left join cr_item_rels cr on (cr.related_object_id=:item_id)
where
ci.parent_id = :folder_id
and ci.name in ([template::util:::tcl_to_sql_list $refs])
and cr.rel_id is null
" {
ns_log Notice "/wiki/lib/new.tcl: content::item::relate: item_id=$item_id, ref_item_id=$ref_item_id, relation_tag=wiki_reference"
content::item::relate \
-item_id $item_id \
-object_id $ref_item_id \
-relation_tag "wiki_reference"
}
ad_returnredirect "./$name"
}
set title ""
set context [list $title]
set header_stuff ""
set focus ""
ad_return_template
<master src="../www/master">
<property name="title">@title@</property>
<property name="header_stuff">@header_stuff@</property>
<property name="context">@context@</property>
<property name="focus">@focus@</property>
<hr />
<include src="footer" edit_link_p="@edit_link_p@" admin_p="@admin_p@" folder_id="@folder_id@" >
<hr />
@content;noquote@
<if @related_items:rowcount@ gt 0><p>Pages that link to his page:
<multiple name="related_items">
<a href="@related_items.name@">@related_items.title@</a>
</multiple>
</p>
</if>
<hr />
<include src="footer" edit_link_p="@edit_link_p@" admin_p="@admin_p@" folder_id="@folder_id@">
<hr />
ad_page_contract {
} -query {
edit:optional
revision_id:optional
}
# Show or edit wiki pages
#
# @author Dave Bauer (dave@thedesignexperience.org)
# @creation-date 2004-09-03
# @arch-tag: e5d58124-f276-4a01-a61a-e85959bbe0d1
# @cvs-id $Id$
set folder_id [wiki::get_folder_id]
set name [ad_conn path_info]
if {$name == ""} {
# the path resolves directly to a site node
set name "index"
}
ns_log debug "
DB --------------------------------------------------------------------------------
DB DAVE debugging /var/lib/aolserver/openacs-5-1/packages/wiki/lib/page.tcl
DB --------------------------------------------------------------------------------
DB name = '${name}'
DB folder_id = '${folder_id}'
DB --------------------------------------------------------------------------------"
set item_id [content::item::get_id -item_path $name -resolve_index "t" -root_folder_id $folder_id]
if {[string equal "" $item_id]} {
rp_form_put name [ad_conn path_info]
rp_internal_redirect "/packages/wiki/lib/new"
ad_script_abort
}
if {[info exists edit]} {
set form [rp_getform]
ns_log debug "
DB --------------------------------------------------------------------------------
DB DAVE debugging /var/lib/aolserver/openacs-5-head-cr-tcl-api/packages/wiki/lib/page.tcl
DB --------------------------------------------------------------------------------
DB form = '${form}'
DB [ns_set find $form "item_id"]
DB --------------------------------------------------------------------------------"
if {[ns_set find $form "item_id"] < 0} {
rp_form_put item_id $item_id
rp_form_put name $name
}
rp_internal_redirect "/packages/wiki/lib/new"
}
if {![info exists revision_id]} {
db_1row get_content "
select
content,
title
from
cr_revisions,
cr_items
where
revision_id = latest_revision
and cr_items.item_id=:item_id
"
} else {
db_1row get_content "
select
content,
title
from
cr_revisions
where
revision_id = :revision_id
"
}
set stream [Wikit::Format::TextToStream $content]
set refs [Wikit::Format::StreamToRefs $stream "wiki::get_info"]
db_multirow related_items get_related_items "
select
cr.name,
cr.title,
cr.description
from
cr_revisionsx cr,
cr_items ci,
cr_item_rels cir
where
cir.related_object_id=:item_id
and cir.relation_tag='wiki_reference'
and ci.live_revision=cr.revision_id
and ci.item_id=cir.item_id
"
set content [ad_wiki_text_to_html $content "wiki::get_info"]
set context [list $title]
set focus ""
set header_stuff ""
set edit_link_p [permission::permission_p \
-object_id $item_id \
-party_id [ad_conn user_id] \
-privilege "write"
]
set edit_link_p "t"
set admin_p [permission::permission_p \
-object_id $folder_id \
-party_id [ad_conn user_id] \
-privilege "admin"
]
ad_return_template "page"
--
--
--
-- @author Dave Bauer (dave@thedesignexperience.org)
-- @creation-date 2004-09-06
-- @arch-tag: 0d6b6723-0e95-4c00-8a84-cb79b4ad3f9d
-- @cvs-id $Id$
--
insert into cr_mime_types values ('Text - Wiki','text/x-openacs-wiki','');
insert into cr_mime_types values ('Text - Markdown','text/x-openacs-markdown','');
\ No newline at end of file
--
--
--
-- @author Dave Bauer (dave@thedesignexperience.org)
-- @creation-date 2004-09-06
-- @arch-tag: 0d6b6723-0e95-4c00-8a84-cb79b4ad3f9d
-- @cvs-id $Id$
--
insert into cr_mime_types values ('Text - Wiki','text/x-openacs-wiki','');
insert into cr_mime_types values ('Text - Markdown','text/x-openacs-markdown','');
\ No newline at end of file
#
ad_library {
Install callbacks for wiki package
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2004-09-06
@arch-tag: 86a85f67-568e-422f-bd56-6c8fba89f1a2
@cvs-id $Id$
}
namespace eval wiki::install {}
ad_proc -public wiki::install::package_install {
} {
Callback for package install
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2004-09-06
@return
@error
} {
content::type::register_relation_type \
-content_type "content_revision" \
-target_type "acs_object" \
-relation_tag "wiki_referece"
}
ad_proc -public wiki::install::after_instantiate {
-package_id
-node_id
} {
After instantiate callback for wiki package
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2004-09-06
@param package_id
@param node_id
@return
@error
} {
# create new folder
set folder_id [content::folder::new \
-name $package_id \
-label "Wiki Folder" \
-package_id $package_id \
-context_id $package_id]
# register content types
content::folder::register_content_type \
-folder_id $folder_id \
-content_type "content_revision" \
-include_subtypes "t"
# TODO: setup default page to fill in index
set index_page_id [content::item::new \
-name "index" \
-parent_id $folder_id \
-title "New Wiki" \
-storage_type "text"]
db_dml set_live "update cr_items set live_revision=latest_revision where item_id=:index_page_id"
}
#
ad_library {
procs for wiki style cms
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2004-09-03
@arch-tag: 407a000b-0f99-4129-ae94-40679a0d4df2
@cvs-id $Id$
}
namespace eval wiki:: {}
ad_proc -public wiki::get_info {
ref
} {
Tries to resolve a wiki reference to
a URL within OpenACS
@author Dave Bauer dave@thedesignexperience.org
@creation-date 2004-09-03
@param ref Wiki reference to a file/url
@return id, name, date
} {
# resolve reference to a package_id/package_key
# see if package_key::wiki_info exists, if so call it
# first element is the relative URL of the link
# second element I have no idea
# 3rd element is the last modified date. leave empty if the
# ref doesn't exist yet
# this sucks we have to hammer the databse for every link
set package_id [ad_conn package_id]
set d [db_string get_lm "
select
o.last_modified
from
acs_objects o,
cr_items ci,
cr_folders cf
where
cf.package_id = :package_id
and ci.parent_id = cf.folder_id
and ci.name = :ref
and o.object_id = ci.item_id
" -default ""]
set ret [list "${ref}" "${ref}" "$d"]
ns_log debug "
DB --------------------------------------------------------------------------------
DB DAVE debugging procedure wiki::get_info
DB --------------------------------------------------------------------------------
DB ref = '${ref}'
DB ret = '${ret}'
DB --------------------------------------------------------------------------------"
return $ret
}
ad_proc -public wiki::get_folder_id {
{-package_id ""}
} {
Return content repository folder_id for the
specified wiki package_id.
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2004-09-06
@param package_id If not speicifed use the current package_id from
ad_conn. It there is no current connection or folder does not
exist, returns empty string.
@return
@error
} {
# should really map site_nodes to cr_folders, but I
# want to see what can be done with stock OpenACS
if {$package_id == ""} {
if {[ad_conn -connected_p]} {
set package_id [ad_conn package_id]
} else {
return ""
}
}
return [db_string get_folder_id \
"select folder_id from cr_folders where package_id=:package_id" \
-default ""]
}
# procs for generic wiki::info procedure
# procs to index and for search syndication/rss
# procs for recent changes (use search syndication??)
# attachments/images/uploads?
# TODO figure out where this belongs!
# it needs to integrate with the richtext widget someday
ad_proc -public ad_wiki_text_to_html {
text
{info_proc "ad_wiki_info"}
} {
Converts Wiki formatted text to html
@author Dave Bauer (dave@thedesignexperience.org)
@creation-date 2004-09-03
} {
set stream [Wikit::Format::TextToStream $text]
# wiki::info will find the parent site node of a reference, and
# look for a proc called package-key::wiki_info which should
# return the id, name, modified date of the item
# (i think id means "url" but I might be wrong!)
set html [Wikit::Format::StreamToHTML $stream " " $info_proc]
return [lindex $html 0]
}
ad_proc -public ad_wiki_info {
ref
} {
Tries to resolve a wiki reference to
a URL within OpenACS
@author Dave Bauer dave@thedesignexperience.org
@creation-date 2004-09-03
@param ref Wiki reference to a file/url
@return id, name, date
} {
# resolve reference to a package_id/package_key
# see if package_key::wiki_info exists, if so call it
# first element is the relative URL of the link
# second element I have no idea
# 3rd element is the last modified date. leave empty if the
# ref doesn't exist yet
set ret [list "${ref}" "${ref}" "1"]
# ns_log debug "
#DB --------------------------------------------------------------------------------
#DB DAVE debugging procedure wiki::ad_wiki_info
#DB --------------------------------------------------------------------------------
#DB ref = '${ref}'
#DB ret = '${ret}'
#DB --------------------------------------------------------------------------------"
return $ret
}
This diff is collapsed.
<?xml version="1.0"?>
<!-- Generated by the OpenACS Package Manager -->
<package key="wiki" url="http://openacs.org/repository/apm/packages/wiki" type="apm_application">
<package-name>Wiki</package-name>
<pretty-plural>Wikis</pretty-plural>
<initial-install-p>f</initial-install-p>
<singleton-p>f</singleton-p>
<version name="0.1d" url="http://openacs.org/repository/download/apm/wiki-0.1d.apm">
<owner url="mailto:dave@thedesignexperience,org">Dave Bauer</owner>
<owner url="mailto:frank.bergmann@project-open.com">Frank Bergmann</owner>
<summary>Wiki</summary>
<description format="text/plain">Wiki implementation on the CR</description>
<provides url="wiki" version="0.2d"/>
<requires url="acs-kernel" version="5.1.4"/>
<requires url="cms" version="5.1.4"/>
<callbacks>
<callback type="after-install" proc="wiki::install::package_install"/>
<callback type="after-instantiate" proc="wiki::install::after_instantiate"/>
</callbacks>
<parameters>
<!-- No version parameters -->
</parameters>
</version>
</package>
<?xml version="1.0"?>
<queryset>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="get_folder_contents_paginate">
<querytext>
select
r.item_id, v.title, last_modified
from
cr_resolved_items r, cr_items i, cr_folders f, cr_revisions v,
cr_revisions u, acs_objects o
where
r.parent_id = :parent_id
and
r.resolved_id = i.item_id
and
i.item_id = o.object_id
and
i.latest_revision = v.revision_id (+)
and
i.live_revision = u.revision_id (+)
and
i.item_id = f.folder_id (+)
[template::list::orderby_clause -name folder_items -orderby]
</querytext>
</fullquery>
<partialquery name="get_folder_contents">
<querytext>
select
r.item_id, r.item_id as id, v.revision_id, r.resolved_id, r.is_symlink,
r.name, i.parent_id, i.content_type, i.publish_status, u.publish_date,
NVL(trim(
decode(o.object_type, 'content_symlink', r.label,
'content_folder', f.label,
nvl(v.title, i.name))),
'-') title,
o.object_type, t.pretty_name as pretty_content_type, last_modified,
v.content_length
from
cr_resolved_items r, cr_items i, cr_folders f, cr_revisions v,
cr_revisions u, acs_objects o, acs_object_types t
where
r.parent_id = :parent_id
and
r.resolved_id = i.item_id
and
i.item_id = o.object_id
and
i.content_type = t.object_type
and
i.latest_revision = v.revision_id (+)
and
i.live_revision = u.revision_id (+)
and
i.item_id = f.folder_id (+)
and
[template::list::page_where_clause -and -name folder_items -key r.item_id]
[template::list::orderby_clause -name folder_items -orderby]
</querytext>
</partialquery>
<fullquery name="get_resolved_id">
<querytext>
select content_symlink.resolve( :item_id ) from dual
</querytext>
</fullquery>
<fullquery name="get_index_page_id">
<querytext>
select content_folder.get_index_page(:parent_id) from dual
</querytext>
</fullquery>
<fullquery name="get_symlinks">
<querytext>
select
i.item_id id,
content_item.get_path(i.item_id) path
from
cr_items i, cr_symlinks s
where
i.item_id = s.target_id
and
i.item_id = :original_id
</querytext>
</fullquery>
<fullquery name="get_info">
<querytext>
select
parent_id, NVL(label, name) label, description
from
cr_items i, cr_folders f
where
i.item_id = f.folder_id
and
f.folder_id = :item_id
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>7.1</version></rdbms>
<fullquery name="get_folder_contents_paginate">
<querytext>
select
r.item_id, v.title, last_modified
from
cr_items i
LEFT OUTER JOIN
cr_revisions v ON i.latest_revision = v.revision_id
LEFT OUTER JOIN
cr_revisions u ON i.live_revision = u.revision_id
LEFT OUTER JOIN
cr_folders f ON i.item_id = f.folder_id,
cr_resolved_items r, acs_objects o
where
r.parent_id = $parent_var
and
r.resolved_id = i.item_id
and
i.item_id = o.object_id
[template::list::orderby_clause -name folder_items -orderby]
</querytext>
</fullquery>
<fullquery name="get_folder_contents">
<querytext>
select
r.item_id,
r.item_id as id,
v.revision_id as latest_revision_id,
v.content_length,
v.content_length as latest_length,
v.publish_date as latest_publish_date,
ro.creation_user as latest_creation_user,
u.revision_id as live_revision_id,
u.publish_date as live_publish_date,
u.content_length as live_length,
r.resolved_id,
r.is_symlink,
r.name,
i.parent_id,
i.content_type,
i.publish_status,
t.pretty_name as pretty_content_type,
o.last_modified,
coalesce(trim(
case
when i.content_type = 'content_symlink' then r.label
when i.content_type = 'content_folder' then f.label
else coalesce(v.title, i.name)
end
),'-') as title
from
cr_items i
LEFT OUTER JOIN
cr_revisions v ON i.latest_revision = v.revision_id
LEFT OUTER JOIN
cr_revisions u ON i.live_revision = u.revision_id
LEFT OUTER JOIN
cr_folders f ON i.item_id = f.folder_id,
cr_resolved_items r, acs_objects o, acs_object_types t, acs_objects ro
where
r.parent_id = $parent_var
$modified_only_where
and r.resolved_id = i.item_id
and i.item_id = o.object_id
and v.revision_id = ro.object_id
and i.content_type = t.object_type
[template::list::page_where_clause -and -name folder_items -key r.item_id]
[template::list::orderby_clause -name folder_items -orderby]
</querytext>
</fullquery>
<fullquery name="get_resolved_id">
<querytext>
select content_symlink__resolve( :folder_id )
</querytext>
</fullquery>
<fullquery name="get_index_page_id">
<querytext>
select content_folder__get_index_page($parent_var)
</querytext>
</fullquery>
<fullquery name="get_symlinks">
<querytext>
select
i.item_id as id,
content_item__get_path(i.item_id, null) as path
from
cr_items i, cr_symlinks s
where
i.item_id = s.target_id
and
i.item_id = :original_folder_id
</querytext>
</fullquery>
<fullquery name="get_info">
<querytext>
select
parent_id, coalesce(label, name) as label, description
from
cr_items i, cr_folders f
where
i.item_id = f.folder_id
and
f.folder_id = :folder_id
</querytext>
</fullquery>
</queryset>
<master src="../../../intranet-core/www/admin/master">
<property name="title">@page_title@</property>
<listtemplate name="folder_items"></listtemplate>
ad_page_contract {
List contents of a folder
List path of this folder
List path of any symlinks to this folder
@author Michael Steigman
@author Frank Bergmann (frank.bergmann@project-open.com)
@creation-date April 2005
} {
folder_id:integer
{ mount_point "sitemap" }
{ parent_id:integer ""}
{ orderby "latest_publish_date,desc" }
{ page:optional }
{ modified_only 0 }
}
set original_folder_id $folder_id
set user_id [auth::require_login]
set root_id [cm::modules::${mount_point}::getRootFolderID]
set return_url "[ad_conn url]?[ad_conn query]"
set parent_var :folder_id
permission::require_permission -party_id $user_id \
-object_id $folder_id -privilege admin
# Show only the modified items?
set modified_only_where ""
if {$modified_only} {
set modified_only_where "\tand i.latest_revision != i.live_revision\n"
}
# Resolve the symlink, if any
set resolved_id [db_string get_resolved_id ""]
if { $resolved_id != $folder_id } {
set is_symlink t
set item_id $resolved_id
set what "Link"
} else {
set is_symlink f
set what "Folder"
}
db_1row get_info "" -column_array info
if { $info(parent_id) == 0 } {
# at root; this will change once inheritance is set up for modules
set parent_id ""
} else {
set parent_id $info(parent_id)
}
# Get the index page ID
set index_page_id [db_string get_index_page_id ""]
set page_title "$info(label)"
# set actions "Attributes [export_vars -base attributes?mount_point=sitemap {folder_id}] \"Folder Attributes\""
set actions [list]
template::list::create \
-name folder_items \
-multirow folder_contents \
-has_checkboxes \
-key item_id \
-page_size 50 \
-page_query_name get_folder_contents_paginate \
-actions $actions \
-elements {
title {
label "Name"
link_html { title "View this item"}
link_url_col cms_admin_url
orderby title
}
live_preview {
label "Conf. Prev"
link_html { title "View the latest confirmed version of this item"}
link_url_col live_preview_url
}
latest_preview {
label "New Prev"
link_html { title "View the latest version of this item"}
link_url_col latest_preview_url
}
live_size {
label "Conf. Size"
}
latest_size {
label "New Size"
}
live_publish_date {
label "Conf. Date"
display_eval { [lc_time_fmt $live_publish_date "%y-%m-%d"] }
orderby u.publish_date
}
latest_publish_date {
label "New Date"
display_eval { [lc_time_fmt $latest_publish_date "%y-%m-%d"] }
orderby v.publish_date
}
latest_creation_user {
label "Mod. by"
link_html { title "More information about this user"}
link_url_col latest_creation_user_url
}
cancel_action {
label "Revert"
link_html { title "Revert to last confirmed value"}
link_url_col cancel_action_url
}
confirm_action {
label "Confirm"
link_html { title "Confirm the new revision"}
link_url_col confirm_action_url
}
} \
-filters {
folder_id {}
parent_id {}
mount_point {}
}
set wiki_mount "l10n-pm"
set folder_id 3407
db_multirow -extend { item_url latest_size live_size cancel_action confirm_action cancel_action_url confirm_action_url live_preview latest_preview live_preview_url latest_preview_url cms_admin_url latest_creation_user_url } folder_contents get_folder_contents "" {
set cancel_action "Revert"
set cancel_action_url [export_vars -base "update_latest_revision?item_id=$item_id&revision_id=$live_revision_id" { return_url} ]
set confirm_action "Confirm"
set confirm_action_url [export_vars -base "update_live_revision?item_id=$item_id&revision_id=$latest_revision_id" { return_url} ]
set latest_preview "New"
set latest_preview_url "/$wiki_mount/[ns_urlencode $name]"
set live_preview "Confirmed"
set live_preview_url "/$wiki_mount/[ns_urlencode $name]?revision_id=$live_revision_id"
set cms_admin_url "/cms/modules/items/index?item_id=$item_id"
set latest_creation_user_url "/acs-admin/users/one?user_id=$latest_creation_user"
switch $content_type {
content_folder {
set folder_id $item_id
set item_url [export_vars -base index?mount_point=sitemap { folder_id parent_id }]
}
default {
set item_url [export_vars -base /$wiki_mount/[ns_urlencode $name]]
}
}
if { ![ template::util::is_nil content_length ] } {
set live_size [lc_numeric [expr $live_length / 1000.00] "%.2f"]
} else {
set live_size "-"
}
if { ![ template::util::is_nil content_length ] } {
set latest_size [lc_numeric [expr $latest_length / 1000.00] "%.2f"]
} else {
set latest_size "-"
}
}
# set item_url [export_vars -base /cms/modules/items/index?mount_point=sitemap { item_id revision_id parent_id }]
<?xml version="1.0"?>
<queryset>
<fullquery name="get_module_id">
<querytext>
select module_id from cm_modules where key = 'sitemap'
</querytext>
</fullquery>
<fullquery name="get_module_name">
<querytext>
select name from cm_modules where key = :mount_point
</querytext>
</fullquery>
<fullquery name="get_reg_types">
<querytext>
select
content_type
from
cr_folder_type_map
where
folder_id = :root_id
</querytext>
</fullquery>
<fullquery name="get_types">
<querytext>
select
content_type
from
cr_folder_type_map
where
folder_id = :folder_id
</querytext>
</fullquery>
</queryset>
ad_page_contract {
Update the cr_revision of a content item
@author Frank Bergmann (frank.bergmann@project-open.com)
@creation-date April 2005
} {
item_id:integer
revision_id:integer
return_url
}
set user_id [auth::require_login]
permission::require_permission -party_id $user_id \
-object_id $item_id -privilege admin
db_dml update_revision "
update cr_items
set latest_revision = :revision_id
where item_id = :item_id
"
ad_returnredirect $return_url
ad_page_contract {
Update the cr_revision of a content item
@author Frank Bergmann (frank.bergmann@project-open.com)
@creation-date April 2005
} {
item_id:integer
revision_id:integer
return_url
}
set user_id [auth::require_login]
permission::require_permission -party_id $user_id \
-object_id $item_id -privilege admin
db_dml update_revision "
update cr_items
set live_revision = :revision_id
where item_id = :item_id
"
ad_returnredirect $return_url
<master>
<p>Borrowed from <a href="http://mini.net/tcl/14">http://mini.net/tcl/14</a></p><p><b>References:</b></p><ol><li>You can refer to another page by putting its name in square brackets like this: [PAGE]. Note that it is not necessary for the words inside the brackets to have the same case as the original page. It is, however, necessary for the specific white spacing to be the same.
<li>URLs will automatically be recognized and underlined: <a href="http://your.site/contents.html">http://your.site/contents.html</a>
<li>If you put URLs in square brackets, they'll be shown as a tiny reference [<a href="http://your.site/contents.html">1</a>] instead. <i>In this situation</i>, the system assumes that any url ending in <b>.jpg</b>, <b>.png</b>, or <b>.gif</b> is an image and displays it inline.
<li>URL methods recognized are:</ol><ul><li><a href="http://www.w3.org/">http://www.w3.org/</a>
<li><a href="ftp://ftp.x.org/">ftp://ftp.x.org/</a>
<li><a href="mailto:user@somehost.com">mailto:user@somehost.com</a>
<li><a href="news:comp.lang.tcl">news:comp.lang.tcl</a></ul><p><b>Adding highlights:</b></p><ul><li>Surround text by pairs of single quotes to make it <i>display in italic</i>
<li>Surround text by triples of single quotes to make it <b>display in bold</b>
<li>Surround text by quintuples of single quotes to make it <i><b>display in bold italic</b></i></ul><p><b>Adding structure to your text:</b></p><ul><li>Lines of text are normally joined, with empty lines used to delineate paragraphs
<li>Lines starting with three spaces, a &quot;*&quot;, and another space are shown as bulleted items. The entire item must be entered as one line (possibly wrapping).
<li>Lines starting with three spaces, a &quot;1.&quot;, and another space are shown as a numbered list. Each numbered item must be entered as one logical line.</ul><ol><li>first numbered bullet
<li>second numbered bullet</ol><ul><li>Lines starting with three spaces, item tag name, &quot;:&quot;, three spaces, and then the item tag body (entered as 1 logical line) are shown as tagged lists.</ul><dl><dt>tag<dd>text<dt>tag<dd>text2</dl><ul><li>All other lines beginning with white space are shown as is - no highlighting, reference generating, or even text wrapping occur.</ul><pre> However, just to keep you on your toes, even in this literal mode, <a href="http://wiki.tcl.tk/">http://wiki.tcl.tk/</a> style URLs are recognized and turned into active links.</pre><p><b>Other features:</b></p><ul><li>Put four or more dashes on a line to get a horizontal separator, like the &quot;----&quot; below:</ul><hr size=1><p><b><i>Note: there's no way YET to undo once changes are saved</b></i> It is however possible to go back in history on <a href="http://mini.net/tclhist/">http://mini.net/tclhist/</a> and fetch old parts of a page that was accidentally lost. Chances are however that changes less than a day old will not yet have made it into this archive.</p><hr size=1><p><i>To get more than one highlight on a single line,</i> you can use returns to break the line in separate physicial lines. WiKit will concatenate them all into one. So if you do this (without indents):</p><pre> I'm going to ''draw''
your ''attention''.</pre><p>You'll end up with: I'm going to <i>draw</i> your <i>attention</i>.</p><p>It usually works (for non-pathological cases) just fine if you put everything on a single line. Experiment on the <a href="Graffiti">[</a>Graffiti<a href="Graffiti">]</a> page if you want to check whether anything in particular will work.</p><hr size=1><p><i>Using brackets in your text</i> can be done by doubling them, so <b>[[</b> shows as <b>[</b>.</p><hr size=1>
rp_internal_redirect /packages/wiki/lib/page
This diff is collapsed.
<include src="/packages/wiki/lib/new">
\ No newline at end of file
<master>
<property name="title">@title@</property>
<property name="header_stuff">@header_stuff@</property>
<property name="context">@context@</property>
<property name="focus">@focus@</property>
@content;noquote@
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment