Index: openacs-4/packages/dotlrn-wikipedia/dotlrn-wikipedia.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/dotlrn-wikipedia.info,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/dotlrn-wikipedia.info	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!-- Generated by the OpenACS Package Manager -->
+
+<package key="dotlrn-wikipedia" url="http://openacs.org/repository/apm/packages/dotlrn-wikipedia" type="apm_service">
+    <package-name>dotLRN Wikipedia Applet</package-name>
+    <pretty-plural>dotLRN Wikipedia Applets</pretty-plural>
+    <initial-install-p>f</initial-install-p>
+    <singleton-p>t</singleton-p>
+
+    <version name="0.1d" url="http://openacs.org/repository/download/apm/dotlrn-wikipedia-0.1d.apm">
+        <owner url="http://openacs.org">OpenACS</owner>
+        <release-date>2006-05-15</release-date>
+        <vendor url="http://openacs.org">OpenACS</vendor>
+        <maturity>0</maturity>
+
+        <provides url="dotlrn-wikipedia" version="0.1d"/>
+        <requires url="dotlrn" version="1.0"/>
+        <requires url="wikipedia-portlet" version="0.1d"/>
+
+        <parameters>
+        </parameters>
+
+    </version>
+</package>
Index: openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.ca_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.ca_ES.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.ca_ES.ISO-8859-1.xml	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="dotlrn-wikipedia" package_version="0.1d" locale="ca_ES" charset="ISO-8859-1">
+
+  <msg key="No_Found">No s'ha trobat</msg>
+  <msg key="pretty_name">Enciclop�dia</msg>
+  <msg key="entry">Terme</msg>
+  <msg key="search">Cercar</msg>
+  <msg key="goto">Anar a Enciclop�dia</msg>
+  <msg key="seefull">Tot el terme</msg>
+</message_catalog>
Index: openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.en_US.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.en_US.ISO-8859-1.xml	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="dotlrn-wikipedia" package_version="0.1d" locale="en_US" charset="ISO-8859-1">
+
+  <msg key="No_Found">Not found</msg>
+  <msg key="pretty_name">Encyclopedia</msg>
+  <msg key="entry">Entry</msg>
+  <msg key="search">Search</msg>
+  <msg key="goto">Goto Encyclop�dia</msg>
+  <msg key="seefull">See full entry</msg>
+</message_catalog>
Index: openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.es_ES.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/catalog/dotlrn-wikipedia.es_ES.ISO-8859-1.xml	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="dotlrn-wikipedia" package_version="0.1d" locale="es_ES" charset="ISO-8859-1">
+
+  <msg key="No_Found">No encontrado</msg>
+  <msg key="pretty_name">Enciclopedia</msg>
+  <msg key="entry">T�rmino</msg>
+  <msg key="search">Buscar</msg>  
+  <msg key="goto">Ir a Enciclopedia</msg>  
+  <msg key="seefull">Entrada completa</msg>  
+</message_catalog>
Index: openacs-4/packages/dotlrn-wikipedia/sql/postgresql/dotlrn-wikipedia-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/sql/postgresql/dotlrn-wikipedia-create.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/sql/postgresql/dotlrn-wikipedia-create.sql	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,127 @@
+
+create function inline_0()
+returns integer as '
+begin
+
+    perform acs_sc_impl__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''dotlrn_wikipedia''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''GetPrettyName'',
+        ''dotlrn_wikipedia::get_pretty_name'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''AddApplet'',
+        ''dotlrn_wikipedia::add_applet'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''RemoveApplet'',
+        ''dotlrn_wikipedia::remove_applet'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''AddAppletToCommunity'',
+        ''dotlrn_wikipedia::add_applet_to_community'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''RemoveAppletFromCommunity'',
+        ''dotlrn_wikipedia::remove_applet_from_community'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''AddUser'',
+        ''dotlrn_wikipedia::add_user'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''RemoveUser'',
+        ''dotlrn_wikipedia::remove_user'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''AddUserToCommunity'',
+        ''dotlrn_wikipedia::add_user_to_community'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''RemoveUserFromCommunity'',
+        ''dotlrn_wikipedia::remove_user_from_community'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''AddPortlet'',
+        ''dotlrn_wikipedia::add_portlet'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''RemovePortlet'',
+        ''dotlrn_wikipedia::remove_portlet'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''Clone'',
+        ''dotlrn_wikipedia::clone'',
+        ''TCL''
+    );
+
+    perform acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia'',
+        ''ChangeEventHandler'',
+        ''dotlrn_wikipedia::change_event_handler'',
+        ''TCL''
+    );
+
+    perform acs_sc_binding__new (
+        ''dotlrn_applet'',
+        ''dotlrn_wikipedia''
+    );
+
+    return 0;
+
+end;' language 'plpgsql';
+
+select inline_0();
+drop function inline_0();
+
Index: openacs-4/packages/dotlrn-wikipedia/sql/postgresql/dotlrn-wikipedia-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/sql/postgresql/dotlrn-wikipedia-drop.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/sql/postgresql/dotlrn-wikipedia-drop.sql	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,108 @@
+
+select acs_sc_impl__delete(
+           'dotlrn_applet',             -- impl_contract_name
+           'dotlrn_wikipedia'                -- impl_name
+);
+
+
+-- add all the hooks
+
+-- GetPrettyName
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'GetPrettyName'
+);
+
+-- AddApplet
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'AddApplet'
+);
+
+-- RemoveApplet
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'RemoveApplet'
+);
+
+-- AddAppletToCommunity
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'AddAppletToCommunity'
+);
+
+-- RemoveAppletFromCommunity
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'RemoveAppletFromCommunity'
+);
+
+-- AddUser
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'AddUser'
+);
+
+-- RemoveUser
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'RemoveUser'
+);
+
+-- AddUserToCommunity
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'AddUserToCommunity'
+);
+
+-- RemoveUserFromCommunity
+select acs_sc_impl_alias__delete (
+               'dotlrn_applet',
+               'dotlrn_wikipedia',
+               'RemoveUserFromCommunity'
+);
+
+-- AddPortlet
+select acs_sc_impl_alias__delete (
+        'dotlrn_applet',
+        'dotlrn_wikipedia',
+        'AddPortlet'
+    );
+
+-- RemovePortlet
+select acs_sc_impl_alias__delete (
+        'dotlrn_applet',
+        'dotlrn_wikipedia',
+        'RemovePortlet'
+);
+
+-- Clone
+select acs_sc_impl_alias__delete (
+        'dotlrn_applet',
+        'dotlrn_wikipedia',
+        'Clone'
+);
+
+
+-- Clone
+select acs_sc_impl_alias__delete (
+        'dotlrn_applet',
+        'dotlrn_wikipedia',
+        'ChangeEventHandler'
+);
+
+-- Add the binding
+select acs_sc_binding__delete (
+            'dotlrn_applet',
+            'dotlrn_wikipedia'
+);
+
+
Index: openacs-4/packages/dotlrn-wikipedia/tcl/dotlrn-wikipedia-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/tcl/dotlrn-wikipedia-procs.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/tcl/dotlrn-wikipedia-procs.tcl	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,239 @@
+
+ad_library {
+
+}
+
+namespace eval dotlrn_wikipedia {
+
+    ad_proc -public applet_key {
+    } {
+        What's my applet key?
+    } {
+        return dotlrn_wikipedia
+    }
+
+    ad_proc -public my_package_key {
+    } {
+        What's my package key?
+    } {
+        return "dotlrn-wikipedia"
+    }
+
+    ad_proc -public package_key {
+    } {
+        What package does this applet deal with?
+    } {
+        return wikipedia
+    }
+
+    ad_proc -public get_pretty_name {
+    } {
+        return the pretty name of this applet.
+    } {
+        return Wikipedia
+    }
+
+    ad_proc -public add_applet {
+    } {
+        Add the wikipedia applet to dotlrn - for one-time init
+        Must be repeatable!
+    } {
+        if {![dotlrn_applet::applet_exists_p -applet_key [applet_key]]} {
+
+            db_transaction {
+                dotlrn_applet::mount \
+                    -package_key [my_package_key] \
+                    -url wikipedia \
+                    -pretty_name [get_pretty_name]
+
+                dotlrn_applet::add_applet_to_dotlrn \
+                    -applet_key [applet_key] \
+                    -package_key [my_package_key]
+            }
+
+        }
+    }
+
+    ad_proc -public remove_applet {
+    } {
+        remove the applet from dotlrn
+    } {
+        ad_return_complaint 1 "[applet_key] remove_applet not implemented!"
+    }
+
+    ad_proc -public add_applet_to_community {
+        community_id
+    } {
+        Add the wikipedia applet to a dotlrn community
+    } {
+        # Create and Mount the wikipedia package
+        set package_id [dotlrn::instantiate_and_mount \
+            -mount_point wikipedia \
+            $community_id \
+            [package_key] \
+        ]
+
+        # set up the bboard portlet for this community
+        set portal_id [dotlrn_community::get_portal_id \
+            -community_id $community_id \
+        ]
+
+        # add the portlet to the comm's portal using add_portlet_helper
+        set args [ns_set create]
+        ns_set put $args package_id $package_id
+        ns_set put $args param_action overwrite
+
+        dotlrn_wikipedia::add_portlet_helper $portal_id $args
+
+        return $package_id
+    }
+
+    ad_proc -public remove_applet_from_community {
+        community_id
+    } {
+        remove the applet from the given community
+    } {
+        ad_return_complaint 1 "[applet_key] remove_applet_from_community not implemented!"
+    }
+
+    ad_proc -public add_user {
+        user_id
+    } {
+        Called when the user is initially added as a dotlrn user.
+        For one-time init stuff.
+    } {
+    }
+
+    ad_proc -public remove_user {
+        user_id
+    } {
+        called when a user is removed from dotlrn.
+    } {
+    }
+
+    ad_proc -public add_user_to_community {
+        community_id
+        user_id
+    } {
+        Add a user to a specific dotlrn community
+    } {
+        set portal_id [dotlrn::get_portal_id -user_id $user_id]
+        set package_id [dotlrn_community::get_applet_package_id \
+            -community_id $community_id \
+            -applet_key [applet_key] \
+        ]
+        set args [ns_set create]
+        ns_set put $args package_id $package_id
+        ns_set put $args param_action append
+
+        # don't use the cached version
+        dotlrn_wikipedia::add_portlet_helper \
+            [dotlrn::get_portal_id_not_cached -user_id $user_id] \
+            $args
+
+        dotlrn_wikipedia::add_portlet_helper $portal_id $args
+
+    }
+
+    ad_proc -public remove_user_from_community {
+        community_id
+        user_id
+    } {
+        Remove a user from a community
+    } {
+        set portal_id [dotlrn::get_portal_id -user_id $user_id]
+        set package_id [dotlrn_community::get_applet_package_id \
+            -community_id $community_id \
+            -applet_key [applet_key] \
+        ]
+
+        set args [ns_set create]
+        ns_set put $args package_id $package_id
+
+        remove_portlet $portal_id $args
+
+    }
+
+    ad_proc -public add_portlet {
+        portal_id
+    } {
+        A helper proc to set up default params for templates.
+
+        @param portal_id
+    } {
+        set args [ns_set create]
+        ns_set put $args package_id 0
+        ns_set put $args param_action overwrite
+
+        set type [dotlrn::get_type_from_portal_id -portal_id $portal_id]
+
+        if {[string equal $type user]} {
+            # portal_id is a user portal template
+        }
+
+        add_portlet_helper $portal_id $args
+    }
+
+    ad_proc -public add_portlet_helper {
+        portal_id
+        args
+    } {
+        This does the call to add the portlet to the given portal.
+        Params for the portlet are set by the calllers.
+
+        @param portal_id
+        @param args An ns_set of params
+    } {
+        wikipedia_portlet::add_self_to_page \
+            -portal_id $portal_id \
+            -package_id [ns_set get $args package_id] \
+            -param_action [ns_set get $args param_action]
+    }
+
+    ad_proc -public remove_portlet {
+        portal_id
+        args
+    } {
+        A helper proc to remove the underlying portlet from the given portal.
+
+        @param portal_id
+        @param args An ns_set of args
+    } {
+        set package_id [ns_set get $args package_id]
+        #wikipedia_portlet::remove_self_from_page $portal_id $package_id
+    }
+
+    ad_proc -public clone {
+        old_community_id
+        new_community_id
+    } {
+        Clone this applet's content from the old community to the new one
+    } {
+        dotlrn_wikipedia::add_applet_to_community $new_community_id
+    }
+
+    ad_proc -public change_event_handler {
+        community_id
+        event
+        old_value
+        new_value
+    } { 
+        listens for the following events: rename
+    } { 
+        switch $event {
+            rename {
+                handle_rename -community_id $community_id -old_value $old_value -new_value $new_value
+            }
+        }
+    }   
+
+    ad_proc -private handle_rename {
+        {-community_id:required}
+        {-old_value:required}
+        {-new_value:required}
+    } {
+        what to do with wikipedia when the name of the community changes
+    } {
+    }
+
+}
Index: openacs-4/packages/dotlrn-wikipedia/tcl/dotlrn-wikipedia-procs.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-wikipedia/tcl/dotlrn-wikipedia-procs.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-wikipedia/tcl/dotlrn-wikipedia-procs.xql	22 Jun 2006 09:09:08 -0000	1.1
@@ -0,0 +1,3 @@
+<?xml version="1.0"?>
+<queryset>
+</queryset>
Index: openacs-4/packages/wikipedia/wikipedia.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia/wikipedia.info,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia/wikipedia.info	22 Jun 2006 09:07:44 -0000	1.1
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!-- Generated by the OpenACS Package Manager -->
+
+<package key="wikipedia" url="http://openacs.org/repository/apm/packages/wikipedia" type="apm_application">
+    <package-name>Wikipedia</package-name>
+    <pretty-plural>Wikipedia</pretty-plural>
+    <initial-install-p>f</initial-install-p>
+    <singleton-p>f</singleton-p>
+    <auto-mount>wikipedia</auto-mount>
+
+    <version name="0.1d" url="http://openacs.org/repository/download/apm/wikipedia-0.1d.apm">
+        <owner url="mailto:agustin.lopez@uv.es">Agustin Lopez</owner>
+        <maturity>0</maturity>
+
+        <!-- No dependency information -->
+
+        <callbacks>
+        </callbacks>
+        <parameters>
+        </parameters>
+
+    </version>
+</package>
Index: openacs-4/packages/wikipedia/www/search.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia/www/search.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia/www/search.adp	22 Jun 2006 09:07:44 -0000	1.1
@@ -0,0 +1,22 @@
+<master>
+<link rel="stylesheet" type="text/css" href="/resources/dotlrn/dotlrn-master.css" media="all">
+
+<FORM action="@urltoform@" method="post">
+  #dotlrn-wikipedia.entry#:
+  <input type="text" size="20" maxlength=100" name="whatsearch" value="@whatsearch@" />
+  <SELECT NAME="xlang">
+    <OPTION VALUE="es" label="Espa�ol"    @s_es@>Espa�ol
+    <OPTION VALUE="ca" label="Catal�"     @s_ca@>Catal�
+    <OPTION VALUE="en" label="English"    @s_en@>English
+    <OPTION VALUE="fr" label="Fran�ais"   @s_fr@>Fran�ais
+    <OPTION VALUE="de" label="Deutsch"    @s_de@>Deutsch
+    <OPTION VALUE="pt" label="Portugu�s"  @s_pt@>Portugu�s
+    <OPTION VALUE="it" label="Italiano"   @s_it@>Italiano
+   </SELECT>
+  <input type="submit" name="search" value="#dotlrn-wikipedia.search#" />
+</FORM>
+
+<if @toshow@ ne "">
+  <HR>
+  @toshow;noquote@
+</if>
Index: openacs-4/packages/wikipedia/www/search.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia/www/search.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia/www/search.tcl	22 Jun 2006 09:07:44 -0000	1.1
@@ -0,0 +1,82 @@
+ad_page_contract {
+} {
+  {whatsearch:trim ""}
+  {xlang:trim "es"}
+  {see:trim "short"}
+} -properties {
+}
+
+
+set WIKIPEDIA_BASE "http://%s.wikipedia.org"
+set WIKIPEDIA_URL [format "$WIKIPEDIA_BASE" $xlang]
+set WIKIPEDIA_SEARCH_URL "$WIKIPEDIA_URL/wiki"
+set STRING_MAX_LENGTH 5000
+
+set timeout 30
+set depth 3
+set redirect_url "error.tcl"
+set result ""
+set toshow ""
+
+switch -glob $xlang {
+   "es"      {set s_es "selected"; set s_ca "";         set s_en "";         set s_fr "";         
+              set s_de "";         set s_pt "";         set s_it "";}
+   "ca"      {set s_es "";         set s_ca "selected"; set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "en"      {set s_es "";         set s_ca "";         set s_en "selected"; set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "fr"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "selected";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "de"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "selected"; set s_pt "";         set s_it "";}
+   "pt"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "selected"; set s_it "";}
+   "it"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "selected";}
+   default   {set s_es "";         set s_ca "";         set s_en "selected"; set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+}
+
+set user_id [ad_conn user_id]
+set urltoform [ad_conn url]
+set url ""
+set urlfull ""
+if {$whatsearch ne ""} {
+  set whatsearch [string toupper [string index $whatsearch 0]][string range $whatsearch 1 end]
+  set whatsearch_cod [ns_urlencode $whatsearch]
+  set url [format "$WIKIPEDIA_SEARCH_URL/%s" $whatsearch_cod]
+  set urlfull "/wikipedia/search?whatsearch=$whatsearch_cod"
+
+  if {[catch {set rawtext [ns_httpget $url $timeout $depth]} result]} {
+    #ERROR
+    set toshow "Temporalment fora de servei"
+  } else {
+    set fn "/tmp/wikipedia_$user_id"
+    set fd [open $fn w]
+    puts -nonewline $fd $rawtext
+    close $fd    
+    set fd [open $fn r]
+    fconfigure $fd -encoding "utf-8"
+    set rawtext [read $fd [file size $fn]]
+    close $fd
+    file delete $fn
+
+    set L [string length $rawtext]
+    set start [string first "<!-- start content -->" $rawtext]
+    if {$start <= -1} {
+      set start 0
+    }
+    set end [string first "<!-- end content -->" $rawtext]
+    set end [expr $end - 1]
+    if {$end <= -1} {
+      set end $L
+    }
+
+    set rawtext [string range $rawtext $start $end]
+    set inter "href=\"\?search=Buscar\\&xlang=$xlang\\&whatsearch="
+    regsub -nocase -line -all {href=\"/wiki/} $rawtext $inter rawtext
+    regsub -nocase -line -all {href=\"/w/}  $rawtext "href=\"$WIKIPEDIA_URL/w/" rawtext
+
+    set toshow $rawtext
+  }
+} 
Index: openacs-4/packages/wikipedia/www/search_portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia/www/search_portlet.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia/www/search_portlet.adp	22 Jun 2006 09:07:44 -0000	1.1
@@ -0,0 +1,23 @@
+<FORM action="@urltoform@" method="post">
+  #dotlrn-wikipedia.entry#:
+  <input type="hidden" name="page_num" value="@page_num@">
+  <input type="text" size="20" maxlength=100" name="whatsearch" value="@whatsearch@" />
+  <SELECT NAME="xlang">
+    <OPTION VALUE="es" label="Espa�ol"    @s_es@>Espa�ol
+    <OPTION VALUE="ca" label="Catal�"     @s_ca@>Catal�
+    <OPTION VALUE="en" label="English"    @s_en@>English
+    <OPTION VALUE="fr" label="Fran�ais"   @s_fr@>Fran�ais
+    <OPTION VALUE="de" label="Deutsch"    @s_de@>Deutsch
+    <OPTION VALUE="pt" label="Portugu�s"  @s_pt@>Portugu�s
+    <OPTION VALUE="it" label="Italiano"   @s_it@>Italiano
+  </SELECT>
+  <input type="submit" name="search" value="#dotlrn-wikipedia.search#" />
+  <if @toshow@ ne ""><A HREF="@urlfull@"> 
+    [#dotlrn-wikipedia.seefull#]</A>
+  </if>
+</FORM>
+
+<if @toshow@ ne "">
+  <HR>
+  @toshow;noquote@
+</if>
Index: openacs-4/packages/wikipedia/www/search_portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia/www/search_portlet.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia/www/search_portlet.tcl	22 Jun 2006 09:07:44 -0000	1.1
@@ -0,0 +1,86 @@
+ad_page_contract {
+} {
+} -properties {
+}
+
+set WIKIPEDIA_BASE "http://%s.wikipedia.org"
+set WIKIPEDIA_URL [format "$WIKIPEDIA_BASE" $xlang]
+set WIKIPEDIA_SEARCH_URL "$WIKIPEDIA_URL/wiki"
+set STRING_MAX_LENGTH 5000
+
+set timeout 30
+set depth 3
+set redirect_url "error.tcl"
+set result ""
+set toshow ""
+
+switch -glob $xlang {
+   "es"      {set s_es "selected"; set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "ca"      {set s_es "";         set s_ca "selected"; set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "en"      {set s_es "";         set s_ca "";         set s_en "selected"; set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "fr"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "selected";
+              set s_de "";         set s_pt "";         set s_it "";}
+   "de"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "selected"; set s_pt "";         set s_it "";}
+   "pt"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "selected"; set s_it "";}
+   "it"      {set s_es "";         set s_ca "";         set s_en "";         set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "selected";}
+   default   {set s_es "";         set s_ca "";         set s_en "selected"; set s_fr "";
+              set s_de "";         set s_pt "";         set s_it "";}
+}
+
+set user_id [ad_conn user_id]
+set urltoform [ad_conn url]
+set url ""
+set urlfull ""
+if {$whatsearch ne ""} {
+  set whatsearch [string toupper [string index $whatsearch 0]][string range $whatsearch 1 end]
+  set whatsearch_cod [ns_urlencode $whatsearch]
+  set url [format "$WIKIPEDIA_SEARCH_URL/%s" $whatsearch_cod]
+  set urlfull "/wikipedia/search?xlang=$xlang&whatsearch=$whatsearch_cod"
+
+  if {[catch {set rawtext [ns_httpget $url $timeout $depth]} result]} {
+    #ERROR
+    set toshow "Temporalment fora de servei"
+  } else {
+
+    set fn "/tmp/wikipedia_$user_id"
+    set fd [open $fn w]
+    puts -nonewline $fd $rawtext
+    close $fd    
+    set fd [open $fn r]
+    fconfigure $fd -encoding "utf-8"
+    set rawtext [read $fd [file size $fn]]
+    close $fd
+    file delete $fn
+
+    set L [string length $rawtext]
+    set start [string first "<!-- start content -->" $rawtext]
+    if {$start <= -1} {
+      set start 0
+    }
+    set end [string first "<!-- end content -->" $rawtext]
+    set end [expr $end - 1]
+    if {$end <= -1} {
+      set end $L
+    }
+
+    set rawtext [string range $rawtext $start $end]    
+    set inter "href=\"\?search=Buscar\\&xlang=$xlang\\&whatsearch="
+    regsub -nocase -line -all {href=\"/wiki/} $rawtext $inter rawtext           
+    regsub -nocase -line -all {href=\"/w/}  $rawtext "href=\"$WIKIPEDIA_URL/w/" rawtext
+    
+    set toshow $rawtext
+    if {$see ne "full"} {
+      if {[string length $toshow] > $STRING_MAX_LENGTH} {
+        set toshow [string range $toshow 0 $STRING_MAX_LENGTH]
+        set toshow "$toshow \"...\n"
+      }
+    }    
+  }
+} 
+
Index: openacs-4/packages/wikipedia-portlet/wikipedia-portlet.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/wikipedia-portlet.info,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/wikipedia-portlet.info	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!-- Generated by the OpenACS Package Manager -->
+
+<package key="wikipedia-portlet" url="http://openacs.org/repository/apm/packages/wikipedia-portlet" type="apm_service">
+    <package-name>Wikipedia Portlet</package-name>
+    <pretty-plural>Wikipedia Portlets</pretty-plural>
+    <initial-install-p>f</initial-install-p>
+    <singleton-p>t</singleton-p>
+    
+    <version name="0.1d" url="http://openacs.org/repository/download/apm/wikipedia-portlet-0.1d.apm">
+        <owner url="http://openacs.org">OpenACS</owner>
+        <release-date>2006-04-11</release-date>
+        <vendor url="http://openacs.org">OpenACS</vendor>
+        <maturity>0</maturity>        
+
+        <provides url="wikipedia-portlet" version="0.1d"/>
+        <requires url="new-portal" version="0.1a"/>
+        <requires url="wikipedia" version="0.1d"/>
+
+    </version>
+</package>
Index: openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.ca_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.ca_ES.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.ca_ES.ISO-8859-1.xml	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="wikipedia-portlet" package_version="0.1d" locale="ca_ES" charset="ISO-8859-1">
+
+  <msg key="admin_pretty_name">Administraci� de Wikipedia</msg>
+  <msg key="wikipedia">Wikipedia</msg>
+  <msg key="Wikipedia_main_page">P�gina principal</msg>
+  <msg key="pretty_name">Wikipedia</msg>
+</message_catalog>
Index: openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.en_US.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.en_US.ISO-8859-1.xml	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="wikipedia-portlet" package_version="0.1d" locale="en_US" charset="ISO-8859-1">
+
+  <msg key="admin_pretty_name">Wikipedia administration</msg>
+  <msg key="wikipedia">Wikipedia</msg>
+  <msg key="Wikipedia_main_page">Main page</msg>
+  <msg key="pretty_name">Wikipedia</msg>
+</message_catalog>
Index: openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.es_ES.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.es_ES.ISO-8859-1.xml,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/catalog/wikipedia-portlet.es_ES.ISO-8859-1.xml	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<message_catalog package_key="wikipedia-portlet" package_version="0.1d" locale="es_ES" charset="ISO-8859-1">
+
+  <msg key="admin_pretty_name">Administraci�n de wikipedia</msg>
+  <msg key="wikipedia">Wikipedia</msg>
+  <msg key="Wikipedia_main_page">P�gina principal</msg>
+  <msg key="pretty_name">Wikipedia</msg>
+</message_catalog>
Index: openacs-4/packages/wikipedia-portlet/sql/postgresql/wikipedia-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/sql/postgresql/wikipedia-portlet-create.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/sql/postgresql/wikipedia-portlet-create.sql	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,161 @@
+
+create function inline_0()
+returns integer as '
+declare
+  ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+  ds_id = portal_datasource__new(
+    ''wikipedia_portlet'',                                           -- Name
+    ''Wikipedia portlet''                                            -- description     
+  );
+
+  --  the standard 4 params
+
+  -- shadeable_p 
+  perform portal_datasource__set_def_param (
+        ds_id,                                          -- datasource_id
+        ''t'',                                          -- config_required_p
+        ''t'',                                          -- configured_p 
+        ''shadeable_p'',                        -- key 
+        ''t''                                           -- value
+);      
+
+
+  -- hideable_p 
+  perform portal_datasource__set_def_param (
+        ds_id,
+        ''t'',
+        ''t'',
+        ''hideable_p'',
+        ''t''
+);      
+
+  -- user_editable_p 
+  perform portal_datasource__set_def_param (
+        ds_id,
+        ''t'',
+        ''t'',
+        ''user_editable_p'',
+        ''f''
+);      
+
+  -- shaded_p 
+  perform portal_datasource__set_def_param (
+        ds_id,
+        ''t'',
+        ''t'',
+        ''shaded_p'',
+        ''f''
+);      
+
+  -- link_hideable_p 
+  perform portal_datasource__set_def_param (
+        ds_id,
+        ''t'',
+        ''t'',
+        ''link_hideable_p'',
+        ''t''
+);  
+
+-- wikipedia-specific params
+
+  -- community_id must be configured
+  perform portal_datasource__set_def_param (
+        ds_id,
+        ''t'',
+        ''f'',
+        ''package_id'',
+        ''''
+);
+
+  return 0;
+
+end;' language 'plpgsql';
+
+select inline_0();
+
+drop function inline_0();
+
+
+create function inline_1()
+returns integer as '
+begin
+
+        -- create the implementation
+        perform acs_sc_impl__new (
+                ''portal_datasource'',
+                ''wikipedia_portlet'',
+                ''wikipedia_portlet''
+        );
+
+        -- add all the hooks
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''GetMyName'',
+               ''wikipedia_portlet::get_my_name'',
+               ''TCL''
+        );
+
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''GetPrettyName'',
+               ''wikipedia_portlet::get_pretty_name'',
+               ''TCL''
+        );
+
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''Link'',
+               ''wikipedia_portlet::link'',
+               ''TCL''
+        );
+
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''AddSelfToPage'',
+               ''wikipedia_portlet::add_self_to_page'',
+               ''TCL''
+        );
+
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''Show'',
+               ''wikipedia_portlet::show'',
+               ''TCL''
+        );
+
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''Edit'',
+               ''wikipedia_portlet::edit'',
+               ''TCL''
+        );
+
+        perform  acs_sc_impl_alias__new (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''RemoveSelfFromPage'',
+               ''wikipedia_portlet::remove_self_from_page'',
+               ''TCL''
+        );
+
+        -- Add the binding
+        perform acs_sc_binding__new (
+            ''portal_datasource'',
+            ''wikipedia_portlet''
+        );
+
+        return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+
+drop function inline_1();
+
Index: openacs-4/packages/wikipedia-portlet/sql/postgresql/wikipedia-portlet-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/sql/postgresql/wikipedia-portlet-drop.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/sql/postgresql/wikipedia-portlet-drop.sql	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,82 @@
+
+create function inline_1()
+returns integer as '
+declare  
+  ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+  select datasource_id into ds_id
+      from portal_datasources
+     where name = ''wikipedia_portlet'';
+
+   if not found then
+     RAISE EXCEPTION '' No datasource id found '', ds_id;
+     ds_id := null;
+   end if;
+
+  if ds_id is NOT null then
+    perform portal_datasource__delete(ds_id);
+  end if;
+
+        -- drop the hooks
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''GetMyName''
+        );
+
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''GetPrettyName''
+        );
+
+
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''Link''
+        );
+
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''AddSelfToPage''
+        );
+
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''Show''
+        );
+
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''Edit''
+        );
+
+        perform acs_sc_impl_alias__delete (
+               ''portal_datasource'',
+               ''wikipedia_portlet'',
+               ''RemoveSelfFromPage''
+        );
+
+        -- Drop the binding
+        perform acs_sc_binding__delete (
+            ''portal_datasource'',
+            ''wikipedia_portlet''
+        );
+
+        -- drop the impl
+        perform acs_sc_impl__delete (
+                ''portal_datasource'',
+                ''wikipedia_portlet''
+        );
+        
+        return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+drop function inline_1();
+
Index: openacs-4/packages/wikipedia-portlet/tcl/wikipedia-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/tcl/wikipedia-portlet-procs.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/tcl/wikipedia-portlet-procs.tcl	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,76 @@
+ad_library {
+}
+
+namespace eval wikipedia_portlet {
+
+    ad_proc -private get_my_name {
+    } {
+        return "wikipedia_portlet"
+    }
+
+    ad_proc -private my_package_key {
+    } {
+        return "wikipedia-portlet"
+    }
+
+    ad_proc -public get_pretty_name {
+    } {
+        return "#wikipedia-portlet.pretty_name#"
+    }
+
+    ad_proc -public link {
+    } {
+        return ""
+    }
+
+    ad_proc -public add_self_to_page {
+        {-portal_id:required}
+        {-page_name ""}
+        {-package_id:required}
+        {-extra_params ""}
+        {-force_region ""}
+        {-param_action:required}
+    } {
+        add the portlet element to the given portal
+    } {
+        return [portal::add_element_parameters \
+            -portal_id $portal_id \
+            -page_name $page_name \
+            -pretty_name [get_pretty_name] \
+            -portlet_name [get_my_name] \
+            -key package_id \
+            -value $package_id \
+            -force_region $force_region \
+            -extra_params $extra_params \
+            -param_action $param_action
+            ]
+    }
+
+    ad_proc -public remove_self_from_page {
+        {-portal_id:required}
+        {-package_id:required}
+    } {
+        Removes a wikipedia PE from the given page or the package_id of the
+        wikipedia package from the portlet if there are others remaining
+
+        @param portal_id The page to remove self from
+        @param package_id
+    } {
+        portal::remove_element_parameters \
+            -portal_id $portal_id \
+            -portlet_name [get_my_name] \
+            -value $package_id
+    }
+
+    ad_proc -public show {
+         cf
+    } {
+    } {
+        portal::show_proc_helper \
+            -package_key [my_package_key] \
+            -config_list $cf \
+            -template_src "wikipedia-portlet"
+    }
+
+}
+
Index: openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet-postgresql.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet-postgresql.xql	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+     
+<queryset>
+<rdbms><type>postgresql</type><version>7.1</version></rdbms>
+
+</queryset>
+
Index: openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet.adp	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,4 @@
+
+<include src="/packages/wikipedia/www/search_portlet" whatsearch="@whatsearch;noquote@" xlang="@xlang;noquote@" see="@see;noquote@" page_num="@page_num;noquote@">
+
+
Index: openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/wikipedia-portlet/www/wikipedia-portlet.tcl	22 Jun 2006 09:08:28 -0000	1.1
@@ -0,0 +1,26 @@
+#dotlrn-wikipedia/www/wikipedia-portlet.tcl
+
+ad_page_contract {
+    The display logic for the wikipedia portlet
+
+    @author Agustin Lopez (Agustin.Lopez@uv.es)
+    @version $Id: wikipedia-portlet.tcl,v 1.1 2006/06/22 09:08:28 darior Exp $
+} {           
+  {whatsearch:trim ""}
+  {xlang:trim ""}
+  {see:trim "short"}
+  {page_num:trim "0"}
+} -properties {
+}
+
+if {$xlang eq ""} {
+  set xlang [string range [lang::user::site_wide_locale] 0 1]
+}
+
+array set config $cf
+set community_id [dotlrn_community::get_community_id]
+
+set user_id [ad_conn user_id]
+
+ad_return_template
+