Commit 5b64960f authored by Frank Bergmann's avatar Frank Bergmann

- Update to OpenACS 5.9.1

parent 07bd423b
......@@ -51,7 +51,7 @@
<msg key="lt_Are_you_sure_you_want_3">Sind Sie sicher, dass Sie den Kategorienbaum &#34;%tree_name%&#34; lschen wollen:</msg>
<msg key="lt_Are_you_sure_you_want_4">Sind Sie sicher, dass Sie die Zuordnung des Kategorienbaums &#34;%tree_name%&#34; zum Wiki &#34;%object_name%&#34; aufheben wollen?</msg>
<msg key="lt_Categories_still_used">Kategorien in Verwendung</msg>
<msg key="lt_Category_Administrati">Admin Kategorien</msg>
<msg key="lt_Category_Administrati">Kategorien verwalten</msg>
<msg key="lt_Category_trees_availa">Kategorienbume, die zugeordnet werden knnen</msg>
<msg key="lt_Category_trees_mapped">Kategorienbume, die dem Wiki &#34;%object_name%&#34; zugeordnet sind</msg>
<msg key="lt_Create_and_map_a_new_">Neuen Kategorienbaum erstellen und zuordnen</msg>
......@@ -64,8 +64,8 @@
<msg key="lt_This_tree_is_not_used">Dieser Kategorienbaum wird nicht genutzt.</msg>
<msg key="lt_This_tree_is_still_us">Dieser Kategorienbaum wird noch von einigen Anwendungen verwendet. Fr eine Liste, klicken Sie bitte</msg>
<msg key="lt_To_deselect_or_select">Um mehrere Kategorien auszuwhlen, verwenden Sie die Strg-Taste auf Ihrer Tastatur.</msg>
<msg key="Make_it_Local">Lokal machen</msg>
<msg key="Make_it_Site-Wide">Global machen</msg>
<msg key="Make_it_Local">Als lokal festlegen</msg>
<msg key="Make_it_Site-Wide">Als seitenweit festlegen</msg>
<msg key="Map_subtree">Subkategorie zuordnen</msg>
<msg key="Map_this_subtree">Diese Subkategorie zuordnen</msg>
<msg key="Map_tree">Kategorienbaum zuordnen</msg>
......@@ -85,10 +85,10 @@
<msg key="required">erforderlich</msg>
<msg key="Restore">Wiederherstellen</msg>
<msg key="Restore_category_link_title">Ausgewhlte Kategorien wiederherstellen</msg>
<msg key="Search_string">Suchen</msg>
<msg key="Search_string">Suchbegriff</msg>
<msg key="selected">ausgewhlt</msg>
<msg key="single">einfach</msg>
<msg key="SiteWide_tree">Globaler Baum</msg>
<msg key="SiteWide_tree">seitenweiter Baum</msg>
<msg key="This_tree_is_local">Dieser Baum ist lokal</msg>
<msg key="Tree_copy">Kategorienbaum bernehmen</msg>
<msg key="Tree_copy_title">Einen Kategorienbaum in &#34;%tree_name%&#34; bernehmen</msg>
......@@ -102,8 +102,8 @@
<msg key="Usage">Verwendung</msg>
<msg key="Usage_title">Anwendungen, die den Kategorienbaum &#34;%tree_name%&#34; verwenden</msg>
<msg key="Widget">Optionen</msg>
<msg key="Widget_checkbox">Checkbox - Benutzer knnen eine Seite mehreren Kategorien zuweisen</msg>
<msg key="Widget_multiselect">Multiselect - Benutzer knnen eine Seite mehreren Kategorien zuweisen</msg>
<msg key="Widget_checkbox">Checkbox - User/innen knnen eine Seite mehreren Kategorien zuweisen</msg>
<msg key="Widget_multiselect">Multiselect - User/innen knnen eine Seite mehreren Kategorien zuweisen</msg>
<msg key="Widget_radio">Radio</msg>
<msg key="Widget_required_category">Muss eine Seite mindestens einer Kategorie zugewiesen werden?</msg>
<msg key="Widget_select">Auswhlen</msg>
......
......@@ -35,7 +35,7 @@
<msg key="Delete">Delete</msg>
<msg key="Delete_action_link_title">Delete checked categories</msg>
<msg key="Delete_category_link_title">Delete category and all subcategories</msg>
<msg key="Delete_category_tree_title">Delete Category Tree &#34;%tree_name%&#34;</msg>
<msg key="Delete_category_tree_title">Delete Category Tree &quot;%tree_name%&quot;</msg>
<msg key="Deprecate">Deprecate</msg>
<msg key="Deprecate_category_link_title">Deprecate checked categories</msg>
<msg key="Deprecated">Deprecated</msg>
......@@ -50,12 +50,12 @@
<msg key="lt_Are_you_sure_you_want">Are you sure you want to delete these categories:</msg>
<msg key="lt_Are_you_sure_you_want_1">Are you sure you want to delete these category links:</msg>
<msg key="lt_Are_you_sure_you_want_2">Are you sure you want to delete these synonyms:</msg>
<msg key="lt_Are_you_sure_you_want_3">Are you sure you want to delete the tree &#34;%tree_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Are you sure you want to unmap the tree &#34;%tree_name%&#34; from &#34;%object_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_3">Are you sure you want to delete the tree &quot;%tree_name%&quot;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Are you sure you want to unmap the tree &quot;%tree_name%&quot; from &quot;%object_name%&quot;?</msg>
<msg key="lt_Categories_still_used">Categories still used</msg>
<msg key="lt_Category_Administrati">Category Administration</msg>
<msg key="lt_Category_trees_availa">Category trees available for mapping</msg>
<msg key="lt_Category_trees_mapped">Category trees mapped to &#34;%object_name%&#34;</msg>
<msg key="lt_Category_trees_mapped">Category trees mapped to &quot;%object_name%&quot;</msg>
<msg key="lt_Create_and_map_a_new_">Create and map a new category tree</msg>
<msg key="lt_Explanation_Any_categ">Explanation: Any categorization made to the source category will
also be made to the target category.</msg>
......@@ -66,7 +66,7 @@ also be made to the target category.</msg>
<msg key="lt_Search_for_a_category">Search for a category</msg>
<msg key="lt_Select_Trees_for_brow">Select Trees for browsing</msg>
<msg key="lt_There_are_instances_w">There are %instances_without_permission% more uses of this tree, but you
don&#39;t have the permission to see them.</msg>
don't have the permission to see them.</msg>
<msg key="lt_This_is_a_site_wide_c">This is a site wide category tree</msg>
<msg key="lt_This_tree_is_not_used">This tree is not used.</msg>
<msg key="lt_This_tree_is_still_us">This tree is still used by some modules. For a complete list, please go</msg>
......@@ -78,8 +78,8 @@ also be made to the target category.</msg>
<msg key="Map_tree">Map tree</msg>
<msg key="Mapiing_parameters_subtree_title"></msg>
<msg key="Mapping_parameters">Mapping Parameters</msg>
<msg key="Mapping_parameters_subtree_title">Parameters of mapping to subtree &#34;%tree_name% :: %category_name%&#34;</msg>
<msg key="Mapping_parameters_tree_title">Parameters of mapping to tree &#34;%tree_name%&#34;</msg>
<msg key="Mapping_parameters_subtree_title">Parameters of mapping to subtree &quot;%tree_name% :: %category_name%&quot;</msg>
<msg key="Mapping_parameters_tree_title">Parameters of mapping to tree &quot;%tree_name%&quot;</msg>
<msg key="multiple">multiple</msg>
<msg key="No_Cancel">No, Cancel</msg>
<msg key="None">None</msg>
......@@ -90,7 +90,7 @@ also be made to the target category.</msg>
<msg key="Ordering_update">Update ordering</msg>
<msg key="Ordering_update_link_title">Update ordering from values in list</msg>
<msg key="Permissions_manage">Manage Permissions</msg>
<msg key="Permissions_manage_title">Permissions Managment for tree &#34;%tree_name%&#34;</msg>
<msg key="Permissions_manage_title">Permissions Management for tree &quot;%tree_name%&quot;</msg>
<msg key="required">required</msg>
<msg key="Restore">Restore</msg>
<msg key="Restore_category_link_title">Restore checked categories</msg>
......@@ -100,16 +100,16 @@ also be made to the target category.</msg>
<msg key="SiteWide_tree">Site-Wide Tree</msg>
<msg key="This_tree_is_local">This tree is local</msg>
<msg key="Tree_copy">Tree copy</msg>
<msg key="Tree_copy_title">Copy a tree into &#34;%tree_name%&#34;</msg>
<msg key="Tree_map_title">Select a subtree of &#34;%tree_name%&#34; to map</msg>
<msg key="Tree_copy_title">Copy a tree into &quot;%tree_name%&quot;</msg>
<msg key="Tree_map_title">Select a subtree of &quot;%tree_name%&quot; to map</msg>
<msg key="Tree_Name">Tree Name</msg>
<msg key="Tree_view_title">Category Tree &#34;%tree_name%&#34;</msg>
<msg key="Tree_view_title">Category Tree &quot;%tree_name%&quot;</msg>
<msg key="Trees_you_can_manage">Trees you can manage</msg>
<msg key="Trees_you_can_view">Trees you can view</msg>
<msg key="Unmap">Unmap</msg>
<msg key="unmap">unmap</msg>
<msg key="Usage">Usage</msg>
<msg key="Usage_title">Modules using Category Tree &#34;%tree_name%&#34;</msg>
<msg key="Usage_title">Modules using Category Tree &quot;%tree_name%&quot;</msg>
<msg key="Widget">Widget</msg>
<msg key="Widget_checkbox">Checkbox - let users assign multiple categories</msg>
<msg key="Widget_multiselect">Multiselect - let users assign multiple categories</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="categories" locale="es_ES" charset="ISO-8859-1">
<msg key="Action">Accin</msg>
<msg key="Action_add_root">Aadir categora raz</msg>
<msg key="Action_add_root_link_title">Aadir categora al nivel raz</msg>
<msg key="Action_applications">Aplicaciones</msg>
<msg key="Action_applications_link_title">Aplicaciones</msg>
<msg key="Action_change_parent">Cambiar padre</msg>
<msg key="Action_copy_tree">Copiar rbol</msg>
<msg key="Action_copy_tree_link_title">Copiar categoras desde otro rbol</msg>
<msg key="Action_delete_tree">Eliminar rbol</msg>
<msg key="Action_delete_tree_link_title">Eliminar este rbol de categoras</msg>
<msg key="Action_permissions_link_title">Administrar los permisos del rbol</msg>
<msg key="Action_view_links">Ver enlaces</msg>
<msg key="Action_view_synonyms">Ver sinnimos</msg>
<msg key="Actions">Acciones</msg>
<msg key="Add_category">Aadir categora</msg>
<msg key="Add_subcategory_link_title">Aadir subcategora</msg>
<msg key="Add_tree">Aadir rbol</msg>
<msg key="AND__">&gt; Y |</msg>
<msg key="Browse">Examinar</msg>
<msg key="Browse_link_title">Examinar los rboles de categoras seleccionados</msg>
<msg key="cadmin">Administracin de Categoras</msg>
<msg key="Cancel_do_not_unmap">Cancelar, no desmapear</msg>
<msg key="Categories">Categoras</msg>
<msg key="Categorize_name">Categorizar %name%</msg>
<msg key="Category">Categora</msg>
<msg key="checked">marcado</msg>
<msg key="code_export">Exportar cdigo para recrear los rboles de categoras</msg>
<msg key="code_necessary">Cdigo Tcl para recrear los rboles de categoras seleccionados</msg>
<msg key="Create_a_new_tree">Crear un nuevo rbol</msg>
<msg key="Current_categories">Categoras actuales</msg>
<msg key="Delete">Eliminar</msg>
<msg key="Delete_action_link_title">Eliminar categoras marcadas</msg>
<msg key="Delete_category_link_title">Eliminar categora y todas sus subcategoras</msg>
<msg key="Delete_category_tree_title">Eliminar rbol de categoras &#34;%tree_name%&#34;</msg>
<msg key="Deprecate">Marcar como obsoleto</msg>
<msg key="Deprecate_category_link_title">Poner como obsoletas las categoras marcadas</msg>
<msg key="Deprecated">Obsoleto</msg>
<msg key="Description">Descripcin</msg>
<msg key="Edit_category">Editar categora</msg>
<msg key="Edit_category_link_title">Editar esta categora</msg>
<msg key="Edit_parameters">Editar parmetros</msg>
<msg key="Edit_tree">Editar rbol</msg>
<msg key="export">Exportar</msg>
<msg key="here">aqu</msg>
<msg key="Language">Lenguaje</msg>
<msg key="lt_Are_you_sure_you_want">Est seguro de querer eliminar estas categoras:</msg>
<msg key="lt_Are_you_sure_you_want_1">Est seguro de querer eliminar estos enlaces a categoras:</msg>
<msg key="lt_Are_you_sure_you_want_2">Est seguro de querer eliminar estos sinnimos</msg>
<msg key="lt_Are_you_sure_you_want_3">Est seguro de querer eliminar el rbol &#34;%tree_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Est seguro de querer desmapear el rbol &#34;%tree_name%&#34; de &#34;%object_name%&#34;?</msg>
<msg key="lt_Categories_still_used">Categoras todava utilizadas</msg>
<msg key="lt_Category_Administrati">Administracin de categoras</msg>
<msg key="lt_Category_trees_availa">rboles de categoras disponibles para mapeo</msg>
<msg key="lt_Category_trees_mapped">rboles de categoras mapeadas a &#34;%object_name%&#34;</msg>
<msg key="lt_Create_and_map_a_new_">Crear y mapear un nuevo rbol de categoras</msg>
<msg key="lt_Explanation_Any_categ">Explicacin: Cualquier clasificacin realizada a la categora de origen tambin se realizar en la categora de destino.</msg>
<msg key="lt_form_varsnoquote__Com">%form_vars;noquote% Combina por [</msg>
<msg key="lt_object_count_objects_">%object_count% objetos eb %page_count% pginas</msg>
<msg key="lt_Search_for_a_category">Buscar una categora</msg>
<msg key="lt_Select_Trees_for_brow">Seleccionar rboles para examinar</msg>
<msg key="lt_There_are_instances_w">Hay %instances_without_permission% usos mas de este rbol, pero no tiene permiso para verlos.</msg>
<msg key="lt_This_is_a_site_wide_c">Este es un rbol de categoras de todo el sitio &#34;site wide&#34;</msg>
<msg key="lt_This_tree_is_not_used">Este rbol no est siendo utilizado.</msg>
<msg key="lt_This_tree_is_still_us">Este rbol est siendo utilizado todava por algunos mdules. Para una lista completa, por favor vaya a </msg>
<msg key="lt_To_deselect_or_select">Para seleccionar o deseleccionar mltiples categoras utilice la tecla Control del teclado.</msg>
<msg key="Make_it_Local">Hacerla local.</msg>
<msg key="Make_it_Site-Wide">Hacerla &#34;site wide&#34;</msg>
<msg key="Map_subtree">Mapear subrbol</msg>
<msg key="Map_this_subtree">Mapear este subrbol</msg>
<msg key="Map_tree">Mapear rbol</msg>
<msg key="Mapiing_parameters_subtree_title"></msg>
<msg key="Mapping_parameters">Mapear parmetros</msg>
<msg key="Mapping_parameters_subtree_title">Parmetros del mapeo al subrbol &#34;%tree_name% :: %category_name%&#34;</msg>
<msg key="Mapping_parameters_tree_title">Parmetros del mapeo al rbol &#34;%tree_name%</msg>
<msg key="multiple">mltiple</msg>
<msg key="No_Cancel">No, cancelar</msg>
<msg key="None">Ninguno</msg>
<msg key="OK">Ok</msg>
<msg key="optional">opcional</msg>
<msg key="OR_">&gt; O ]</msg>
<msg key="Ordering">Ordenacin</msg>
<msg key="Ordering_update">Actualizar ordenacin</msg>
<msg key="Ordering_update_link_title">Actualizar ordenacin a partir de los valores en la lista</msg>
<msg key="Permissions_manage">Administrar permisos</msg>
<msg key="Permissions_manage_title">Administracin de los permisos del rbol &#34;%tree_name%&#34;</msg>
<msg key="required">requerido</msg>
<msg key="Restore">Restaurar</msg>
<msg key="Restore_category_link_title">Restaurar categoras marcadas</msg>
<msg key="Search_string">Buscar palabra</msg>
<msg key="selected">seleccionada</msg>
<msg key="single">nico</msg>
<msg key="SiteWide_tree">rbol &#34;site wide&#34;</msg>
<msg key="This_tree_is_local">Este rbol es local</msg>
<msg key="Tree_copy">Copiar rbol</msg>
<msg key="Tree_copy_title">Copiar un rbol en &#34;%tree_name%&#34;</msg>
<msg key="Tree_map_title">Seleccionar un subrbol de &#34;%tree_name%&#34; para mapear</msg>
<msg key="Tree_Name">Nombre del rbol</msg>
<msg key="Tree_view_title">rbol de categoras &#34;%tree_name%&#34;</msg>
<msg key="Trees_you_can_manage">rboles que puedes administrar</msg>
<msg key="Trees_you_can_view">rboles que puedes ver</msg>
<msg key="Unmap">Desmapear</msg>
<msg key="unmap">desmapear</msg>
<msg key="Usage">Uso</msg>
<msg key="Usage_title">Mdulos usando rbol de categoras &#34;%tree_name%&#34;</msg>
<msg key="Widget">Widget</msg>
<msg key="Widget_checkbox">Checkbox: permite a los usuarios asignar varias categoras</msg>
<msg key="Widget_multiselect">Multiselect: permite a los usuarios asignar varias categoras</msg>
<msg key="Widget_radio">Radio</msg>
<msg key="Widget_required_category">Se requiere que los usuarios asignen al menos una categora?</msg>
<msg key="Widget_select">Seleccionar</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="categories" locale="it_IT" charset="ISO-8859-1">
<msg key="Action">Azione</msg>
<msg key="Action_add_root">Aggiungi categoria radice</msg>
<msg key="Action_add_root_link_title">Aggiungi categoria al livello di radice</msg>
<msg key="Action_applications">Applicazioni</msg>
<msg key="Action_applications_link_title">Applicazioni</msg>
<msg key="Action_change_parent">Modifica genitore</msg>
<msg key="Action_copy_tree">Copia albero</msg>
<msg key="Action_copy_tree_link_title">Copia categorie da un altro albero</msg>
<msg key="Action_delete_tree">Elimina albero</msg>
<msg key="Action_delete_tree_link_title">Elimina questo albero di categorie</msg>
<msg key="Action_permissions_link_title">Gestisci i permessi per l&#39;albero</msg>
<msg key="Action_view_links">Vedi collegamenti</msg>
<msg key="Action_view_synonyms">Vedi sinonimi</msg>
<msg key="Actions">Azioni</msg>
<msg key="Add_category">Aggiungi categoria</msg>
<msg key="Add_subcategory_link_title">Aggiungi sottocategoria</msg>
<msg key="Add_tree">Aggiungi albero</msg>
<msg key="AND__">&gt;E |</msg>
<msg key="Browse">Naviga</msg>
<msg key="Browse_link_title">Naviga attraverso l&#39;albero di categorie selezionato</msg>
<msg key="cadmin">Gestione Categorie</msg>
<msg key="Cancel_do_not_unmap">Annulla, non eliminare la mappatura</msg>
<msg key="Categories">Categorie</msg>
<msg key="Categorize_name">Categorizza %name%</msg>
<msg key="Category">Categoria</msg>
<msg key="checked">selezionato</msg>
<msg key="code_export">Esporta codice per ricreare gli alberi di categorie</msg>
<msg key="code_necessary">Codice Tcl per ricreare gli alberi di categorie selezionati</msg>
<msg key="Create_a_new_tree">Crea un nuovo albero</msg>
<msg key="Current_categories">Categorie correnti</msg>
<msg key="Delete">Elimina</msg>
<msg key="Delete_action_link_title">Elimina le categorie selezionate</msg>
<msg key="Delete_category_link_title">Elimina categoria e tutte le sottocategorie</msg>
<msg key="Delete_category_tree_title">Elimina Albero di Categorie &#34;%tree_name%&#34;</msg>
<msg key="Deprecate">Depreca</msg>
<msg key="Deprecate_category_link_title">Categorie deprecate selezionate</msg>
<msg key="Deprecated">Deprecata</msg>
<msg key="Description">Descrizione</msg>
<msg key="Edit_category">Edita categoria</msg>
<msg key="Edit_category_link_title">Edita questa categoria</msg>
<msg key="Edit_parameters">Edita parametri</msg>
<msg key="Edit_tree">Edita albero</msg>
<msg key="export">Esporta</msg>
<msg key="here">qui</msg>
<msg key="Language">Lingua</msg>
<msg key="lt_Are_you_sure_you_want">Sei sicuro/a di voler eliminare queste categorie:</msg>
<msg key="lt_Are_you_sure_you_want_1">Sei sicuro/a di voler eliminare questi collegamenti a categorie:</msg>
<msg key="lt_Are_you_sure_you_want_2">Sei sicuro/a di voler eliminare questi sinonimi:</msg>
<msg key="lt_Are_you_sure_you_want_3">Sei sicuro/a di voler eliminare l&#39;albero &#34;%tree_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Sei sicuro/a di voler eliminare la mappatura con l&#39;albero &#34;%tree_name%&#34; da &#34;%object_name%&#34;?</msg>
<msg key="lt_Categories_still_used">Categorie ancora in uso</msg>
<msg key="lt_Category_Administrati">Amministrazione Categorie</msg>
<msg key="lt_Category_trees_availa">Alberi di categorie disponibili per il mapping</msg>
<msg key="lt_Category_trees_mapped">Alberi di categorie mappati con &#34;%object_name%&#34;</msg>
<msg key="lt_Create_and_map_a_new_">Crea e mappa un nuovo albero di categorie</msg>
<msg key="lt_Explanation_Any_categ">Spiegazione: qualsiasi categorizzazione fatta sulla categoria di origine avverr anche sulla categoria destinazione.</msg>
<msg key="lt_form_varsnoquote__Com">%form_vars;noquote% Combina per [</msg>
<msg key="lt_object_count_objects_">%object_count% oggetti in %page_count% pagine</msg>
<msg key="lt_Search_for_a_category">Ricerca per una categoria</msg>
<msg key="lt_Select_Trees_for_brow">Seleziona Alberi per la navigazione</msg>
<msg key="lt_There_are_instances_w">Ci sono %instances_without_permission% ulteriori usi di questo albero, ma non hai il permesso di vederli.</msg>
<msg key="lt_This_is_a_site_wide_c">Questo un albero di categorie a livello dell&#39;intero sito</msg>
<msg key="lt_This_tree_is_not_used">Questo albero non utilizzato</msg>
<msg key="lt_This_tree_is_still_us">Questo albero viene usato da alcuni moduli. Per una lista completa, vai per favore</msg>
<msg key="lt_To_deselect_or_select">Per deselezionare o selezionare categorie multiple, usa il tasto CTRL sulla tua tastiera.</msg>
<msg key="Make_it_Local">Rendila Locale</msg>
<msg key="Make_it_Site-Wide">Rendila a Livello dell&#39;Intero Sito</msg>
<msg key="Map_subtree">Mappa sottoalbero</msg>
<msg key="Map_this_subtree">Mappa questo sottoalbero</msg>
<msg key="Map_tree">Mappa albero</msg>
<msg key="Mapping_parameters">Parametri di Mappatura</msg>
<msg key="Mapping_parameters_subtree_title">Parametri di mappatura al sottoalbero &#34;%tree_name% :: %category_name%&#34;</msg>
<msg key="Mapping_parameters_tree_title">Parametri di mappatura all&#39;albero &#34;%tree_name%&#34;</msg>
<msg key="multiple">multiple</msg>
<msg key="No_Cancel">No, Annulla</msg>
<msg key="None">Nessuna</msg>
<msg key="OK">OK</msg>
<msg key="optional">opzionale</msg>
<msg key="OR_">&gt;O ]</msg>
<msg key="Ordering">Ordinamento</msg>
<msg key="Ordering_update">Aggiorna ordinamento</msg>
<msg key="Ordering_update_link_title">Aggiorna ordinamento dai valori nella lista</msg>
<msg key="Permissions_manage">Gestisci Permessi</msg>
<msg key="Permissions_manage_title">Gestione Permessi per l&#39;albero &#34;%tree_name%&#34;</msg>
<msg key="required">richiesto</msg>
<msg key="Restore">Ripristina</msg>
<msg key="Restore_category_link_title">Ripristina le categorie selezionate</msg>
<msg key="Search_string">Stringa di Ricerca</msg>
<msg key="selected">seletionato</msg>
<msg key="single">singola</msg>
<msg key="SiteWide_tree">Albero a Livello di Sito</msg>
<msg key="This_tree_is_local">Questo albero locale</msg>
<msg key="Tree_copy">Copia albero</msg>
<msg key="Tree_copy_title">Copia un albero in &#34;%tree_name%&#34;</msg>
<msg key="Tree_map_title">Seleziona un sottoalbero di &#34;%tree_name%&#34; da mappare</msg>
<msg key="Tree_Name">Nome Albero</msg>
<msg key="Tree_view_title">Albero di Categorie &#34;%tree_name%&#34;</msg>
<msg key="Trees_you_can_manage">Alberi che puoi gestire</msg>
<msg key="Trees_you_can_view">Alberi che puoi vedere</msg>
<msg key="Unmap">Elimina Mappatura</msg>
<msg key="unmap">elimina mappatura</msg>
<msg key="Usage">Utilizzi</msg>
<msg key="Usage_title">Moduli che utilizzano l&#39;Albero di Categorie &#34;%tree_name%&#34;</msg>
<msg key="Widget">Widget</msg>
<msg key="Widget_checkbox">Checkbox - permetti che l&#39;utente assegni categorie multiple</msg>
<msg key="Widget_multiselect">Multiselect - permetti che l&#39;utente assegni categorie multiple</msg>
<msg key="Widget_radio">Radio</msg>
<msg key="Widget_required_category">Richiedi agli utenti di assegnare almeno una categoria?</msg>
<msg key="Widget_select">Tendina</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="categories" locale="nl_NL" charset="ISO-8859-1">
<msg key="Action">Actie</msg>
<msg key="Action_add_root">Voeg root categorie toe</msg>
<msg key="Action_add_root_link_title">Voeg categorie op root niveau toe</msg>
<msg key="Action_applications">Applicaties</msg>
<msg key="Action_applications_link_title">Applicaties</msg>
<msg key="Action_change_parent">Wijzig parent</msg>
<msg key="Action_copy_tree">Kopieer boom</msg>
<msg key="Action_copy_tree_link_title">Kopieer categorie vanuit een andere boom</msg>
<msg key="Action_delete_tree">Verwijder boom</msg>
<msg key="Action_delete_tree_link_title">Verwijder deze categorie-boom</msg>
<msg key="Action_permissions_link_title">Beheer toegangsrechten voor deze boom</msg>
<msg key="Action_view_links">Bekijk links</msg>
<msg key="Action_view_synonyms">Bekijk synoniemen</msg>
<msg key="Actions">Acties</msg>
<msg key="Add_category">Voeg categorie toe</msg>
<msg key="Add_subcategory_link_title">Voeg sub-categorie toe</msg>
<msg key="Add_tree">Voeg boom toe</msg>
<msg key="AND__">&gt;EN |</msg>
<msg key="Browse">Blader</msg>
<msg key="Browse_link_title">Blader door de geselecteerde categorie boom</msg>
<msg key="cadmin">Categorienbeheer</msg>
<msg key="Cancel_do_not_unmap">Maak ongedaan</msg>
<msg key="Categories">Categorien</msg>
<msg key="Categorize_name">Categoriseer %name%</msg>
<msg key="Category">Categorie</msg>
<msg key="checked">gecontroleerd</msg>
<msg key="code_export">Exporteer code om categoriebomen opnieuw aan te maken</msg>
<msg key="code_necessary">Tcl-code om betreffende categoriebomen opnieuw aan te maken</msg>
<msg key="Create_a_new_tree">Maak een nieuwe boom</msg>
<msg key="Current_categories">Huidige categorien</msg>
<msg key="Delete">Verwijder</msg>
<msg key="Delete_action_link_title">Verwijder gecontroleerde categorien</msg>
<msg key="Delete_category_link_title">Verwijder categorie en alle sub-categorien</msg>
<msg key="Delete_category_tree_title">Verwijder categorieboom &#34;%tree_name%&#34;</msg>
<msg key="Deprecate">Keur af</msg>
<msg key="Deprecate_category_link_title">Keur gevinkte categorien af</msg>
<msg key="Deprecated">Afgekeurd</msg>
<msg key="Description">Beschrijving</msg>
<msg key="Edit_category">Bewerk categorie</msg>
<msg key="Edit_category_link_title">Bewerk deze categorie</msg>
<msg key="Edit_parameters">Bewerk parameters</msg>
<msg key="Edit_tree">Bewerk boom</msg>
<msg key="export">Exporteren</msg>
<msg key="here">hier</msg>
<msg key="Language">Taal</msg>
<msg key="lt_Are_you_sure_you_want">Weet u zeker dat u deze categorien wilt verwijderen:</msg>
<msg key="lt_Are_you_sure_you_want_1">Weet u zeker dat u deze categorie links wilt verwijderen:</msg>
<msg key="lt_Are_you_sure_you_want_2">Weet u zeker dat u deze synoniemen wilt verwijderen:</msg>
<msg key="lt_Are_you_sure_you_want_3">Weet u zeker dat u de boom &#34;%tree_name%&#34; wilt verwijderen?</msg>
<msg key="lt_Are_you_sure_you_want_4">Weet u zeker dat u de boom &#34;%tree_name%&#34; wilt loskoppelen van &#34;%object_name%&#34;?</msg>
<msg key="lt_Categories_still_used">Categorie nog in gebruik</msg>
<msg key="lt_Category_Administrati">Categorie administratie</msg>
<msg key="lt_Category_trees_availa">Categorie boom is beschikbaar om te koppelen</msg>
<msg key="lt_Category_trees_mapped">Categorie bomen gekoppeld met &#34;%object_name%&#34;</msg>
<msg key="lt_Create_and_map_a_new_">Maak en koppel een nieuwe categorie boom</msg>
<msg key="lt_Explanation_Any_categ">Toelichting: iedere categorisatie die op de bron categorie is gemaakt, zal ook in de bestemming categorie worden gemaakt.</msg>
<msg key="lt_form_varsnoquote__Com">%form_vars;noquote% Combineren met [</msg>
<msg key="lt_object_count_objects_">%object_count% objects op %page_count% paginas</msg>
<msg key="lt_Search_for_a_category">Zoek naar een categorie</msg>
<msg key="lt_Select_Trees_for_brow">Selecteer bomen om doorheen te bladeren</msg>
<msg key="lt_There_are_instances_w">Deze boom wordt %instances_without_permission% meer gebruikt, maar u heeft geen rechten om deze te zien.</msg>
<msg key="lt_This_is_a_site_wide_c">Dit is een site brede categorie boom</msg>
<msg key="lt_This_tree_is_not_used">Deze boom wordt niet gebruikt</msg>
<msg key="lt_This_tree_is_still_us">Deze boom wordt nog door sommige modules gebruikt. Om de complete lijst te zijn moet u naar</msg>
<msg key="lt_To_deselect_or_select">Gebruik de Control-toets om meerdere categorien te (de)selecteren.</msg>
<msg key="Make_it_Local">Maak lokaal</msg>
<msg key="Make_it_Site-Wide">Maak site-breed</msg>
<msg key="Map_subtree">Koppel sub-boom</msg>
<msg key="Map_this_subtree">Koppel deze sub-boom</msg>
<msg key="Map_tree">Koppel boom</msg>
<msg key="Mapiing_parameters_subtree_title"></msg>
<msg key="Mapping_parameters">Koppelen parameters</msg>
<msg key="Mapping_parameters_subtree_title">Parameters om sub-boom &#34;%tree_name% :: %category_name%&#34; te koppelen.</msg>
<msg key="Mapping_parameters_tree_title">Parameters om boom &#34;%tree_name%&#34; te koppelen</msg>
<msg key="multiple">meerdere</msg>
<msg key="No_Cancel">Nee, cancel</msg>
<msg key="None">Geen</msg>
<msg key="OK">Ok</msg>
<msg key="optional">optioneel</msg>
<msg key="OR_">&gt;OF ]</msg>
<msg key="Ordering">Aan het sorteren</msg>
<msg key="Ordering_update">Update sortering</msg>
<msg key="Ordering_update_link_title">Update sortering vanuit de waarden in de lijst</msg>
<msg key="Permissions_manage">Beheer toegangsrechten</msg>
<msg key="Permissions_manage_title">Beheer toegangsrechten voor boom &#34;%tree_name%&#34;</msg>
<msg key="required">verplicht</msg>
<msg key="Restore">Herstel</msg>
<msg key="Restore_category_link_title">Herstel aangevinkte categorien</msg>
<msg key="Search_string">Zoek String</msg>
<msg key="selected">geselecteerd</msg>
<msg key="single">enkel</msg>
<msg key="SiteWide_tree">Site-brede boom</msg>
<msg key="This_tree_is_local">Deze boom is lokaal</msg>
<msg key="Tree_copy">Kopieer boom</msg>
<msg key="Tree_copy_title">Kopieer een boom naar &#34;%tree_name%&#34;</msg>
<msg key="Tree_map_title">Selecteer een sub-boom van &#34;%tree_name%&#34; naar folder</msg>
<msg key="Tree_Name">Boom naam</msg>
<msg key="Tree_view_title">Categorie boom &#34;%tree_name%&#34;</msg>
<msg key="Trees_you_can_manage">Bomen die u kunt beheren</msg>
<msg key="Trees_you_can_view">Bomen die u kunt zien</msg>
<msg key="Unmap">Ontkoppel</msg>
<msg key="unmap">ontkoppel</msg>
<msg key="Usage">Gebruik</msg>
<msg key="Usage_title">Modules die categorieboom &#34;%tree_name%&#34; gebruiken</msg>
<msg key="Widget">Widget</msg>
<msg key="Widget_checkbox">Checkbox - gebruikers kunnen meerdere categorien toewijzen</msg>
<msg key="Widget_multiselect">Multiselect- gebruikers kunnen meerdere categorien toewijzen</msg>
<msg key="Widget_radio">Radio</msg>
<msg key="Widget_required_category">Moeten gebruikers minimaal een categorie toewijzen?</msg>
<msg key="Widget_select">Selecteer</msg>
</message_catalog>
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="categories" locale="pl_PL" charset="utf-8">
<msg key="Action">Akcja</msg>
<msg key="Action_add_root">Dodaj główną kategorię</msg>
<msg key="Action_add_root_link_title">Dodaj kategorię na głównym poziomie</msg>
<msg key="Action_applications">Aplikacje</msg>
<msg key="Action_applications_link_title">Aplikacje</msg>
<msg key="Action_change_parent">Zmień rodzica</msg>
<msg key="Action_copy_tree">Skopiuj drzewko</msg>
<msg key="Action_copy_tree_link_title">Kopiuj kategorie z innego drzewka</msg>
<msg key="Action_delete_tree">Skasuj drzewko</msg>
<msg key="Action_delete_tree_link_title">Skasuj to drzewko kategorii</msg>
<msg key="Action_permissions_link_title">Zarządzaj uprawnieniami do drzewka</msg>
<msg key="Action_view_links">Pokaż linki</msg>
<msg key="Action_view_synonyms">Pokaż synonimy</msg>
<msg key="Actions">Akcje</msg>
<msg key="Add_category">Dodaj kategorię</msg>
<msg key="Add_subcategory_link_title">Dodaj podkategorię</msg>
<msg key="Add_tree">Dodaj drzewko</msg>
<msg key="AND__">&gt;AND |</msg>
<msg key="Browse">Przeglądaj</msg>
<msg key="Browse_link_title">Przeglądaj wybrane drzewka kategorii</msg>
<msg key="cadmin">Zarządzanie kategoriami</msg>
<msg key="Cancel_do_not_unmap">Anuluj, nie usuwaj mapowania</msg>
<msg key="Categories">Kategorie</msg>
<msg key="Categorize_name">Kategoryzuj %name%</msg>
<msg key="Category">Kategoria</msg>
<msg key="checked">zaznaczony</msg>
<msg key="cadmin">Zarządzanie Kategoriami</msg>
<msg key="code_export">Eksportuj kod do odtworzenia drzew kategorii</msg>
<msg key="code_necessary">Kod Tcl do odtworzenia wybranych kategorii</msg>
<msg key="Create_a_new_tree">Utwórz nowe drzewko</msg>
<msg key="Current_categories">Aktualne kategorie</msg>
<msg key="Delete">Usuń</msg>
<msg key="Delete_action_link_title">Usuń zaznaczone kategorie</msg>
<msg key="Delete_category_link_title">Usuń kategorię i wszystkie podkategorie</msg>
<msg key="Delete_category_tree_title">Usuń drzewko kategorii &#34;%tree_name%&#34;</msg>
<msg key="Deprecate">Oznacz jako przestarzałe</msg>
<msg key="Deprecate_category_link_title">Oznacz zaznaczone jako przestarzałe</msg>
<msg key="Deprecated">Przestarzałe</msg>
<msg key="Description">Opis</msg>
<msg key="Edit_category">Edytuj kategorię</msg>
<msg key="Edit_category_link_title">Edytuj tę kategorię</msg>
<msg key="Edit_parameters">Edytuj parametry</msg>
<msg key="Edit_tree">Edytuj drzewko</msg>
<msg key="export">Eksportuj</msg>
<msg key="here">tutaj</msg>
<msg key="Language">Język</msg>
<msg key="lt_Are_you_sure_you_want">Czy jesteś pewien, że chcesz skasować te kategorie:</msg>
<msg key="lt_Are_you_sure_you_want_1">Czy jesteś pewien, że chcesz skasować linki do tych kategorii:</msg>
<msg key="lt_Are_you_sure_you_want_2">Czy jesteś pewien, że chcesz skasować te synonimy:</msg>
<msg key="lt_Are_you_sure_you_want_3">Czy jesteś pewien, że chcesz skasować drzewko &#34;%tree_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Czu chcesz zdjąć mapowanie &#34;%tree_name%&#34; na &#34;%object_name%&#34;?</msg>
<msg key="lt_Categories_still_used">Kategorie nadal używane</msg>
<msg key="lt_Category_Administrati">Administracja kategoriami</msg>
<msg key="lt_Category_trees_availa">Dostępne do mapowania drzewka kategorii</msg>
<msg key="lt_Category_trees_mapped">Drzewka kategorii zamapowane na &#34;%object_name%&#34;</msg>
<msg key="lt_Create_and_map_a_new_">Utwórz i zamapuj nowe drzewko kategorii</msg>
<msg key="lt_Explanation_Any_categ">Wyjaśnienie: Każda kategoryzacja wykonana dla źródłowej kategorii zostanie wykonana też dla docelowej kategorii.</msg>
<msg key="lt_object_count_objects_">%object_count% objects na %page_count% stronach</msg>
<msg key="lt_Search_for_a_category">Szukaj kategorii</msg>
<msg key="lt_Select_Trees_for_brow">Wybierz drzewka do przeglądania</msg>
<msg key="lt_There_are_instances_w">Istnieje jeszcz %instances_without_permission% użyć tego drzewka, ale nie masz uprawnień do oglądania ich.</msg>
<msg key="lt_This_is_a_site_wide_c">To jest drzewko kategorii dla całego systemu</msg>
<msg key="lt_This_tree_is_not_used">To drzewko nie jest używane</msg>
<msg key="lt_This_tree_is_still_us">To drzewko jest nadal używane przez niektóre moduły. Kompletna lista znajduje się na</msg>
<msg key="lt_To_deselect_or_select">Żeby zaznaczyć lub odznaczyć wiele kategorii użyć klawisza Ctrl na klawiaturze.</msg>
<msg key="Make_it_Local">Uczyń ją lokalną</msg>
<msg key="Make_it_Site-Wide">Uczyń ją globalną</msg>
<msg key="Map_subtree">Mapuj poddrzewko</msg>
<msg key="Map_this_subtree">Mapuj to poddrzewko</msg>
<msg key="Map_tree">Mapuj drzewko</msg>
<msg key="Mapping_parameters">Parametry mapowania</msg>
<msg key="Mapping_parameters_subtree_title">Parametry mapowania poddrzewka &#34;%tree_name% :: %category_name%&#34;</msg>
<msg key="Mapping_parameters_tree_title">Parametry mapowania na drzewko &#34;%tree_name%&#34;</msg>
<msg key="multiple">wiele</msg>
<msg key="No_Cancel">Nie, anuluj</msg>
<msg key="None">Brak</msg>
<msg key="OK">OK</msg>
<msg key="optional">opcjonalne</msg>
<msg key="OR_">&gt;OR ]</msg>
<msg key="Ordering">Kolejność</msg>
<msg key="Ordering_update">Uaktualnij kolejność</msg>
<msg key="Ordering_update_link_title">Uaktualnij kolejność wg wartości z listy</msg>
<msg key="Permissions_manage">Zarządaj uprawnieniami</msg>
<msg key="Permissions_manage_title">Zarządzanie uprawnieniami dla drzewka &#34;%tree_name%&#34;</msg>
<msg key="required">wymagane</msg>
<msg key="Restore">Przywróć</msg>
<msg key="Restore_category_link_title">Przywróć zaznaczone kategorie</msg>
<msg key="Search_string">Wyszukaj string</msg>
<msg key="selected">wybrane</msg>
<msg key="single">pojedyncza</msg>
<msg key="SiteWide_tree">Globalne drzewko</msg>
<msg key="This_tree_is_local">To drzewko jest lokalne</msg>
<msg key="Tree_copy">Kopia drzewka</msg>
<msg key="Tree_copy_title">Kopiuj drzewko do &#34;%tree_name%&#34;</msg>
<msg key="Tree_map_title">Wybierz poddrzewko &#34;%tree_name%&#34; do zamapowania</msg>
<msg key="Tree_Name">Nazwa</msg>
<msg key="Tree_view_title">Drzewko kategorii &#34;%tree_name%&#34;</msg>
<msg key="Trees_you_can_manage">Drzewka, którymi możesz zarządzać</msg>
<msg key="Trees_you_can_view">Drzewka, które możesz widzieć</msg>
<msg key="Unmap">Odmapuj</msg>
<msg key="unmap">odmapuj</msg>
<msg key="Usage">Użycie</msg>
<msg key="Usage_title">Moduły używające drzewka kategorii &#34;%tree_name%&#34;</msg>
<msg key="Widget">Widget</msg>
<msg key="Widget_checkbox">Checkbox - pozwól aby użytkownicy dodawali wiele kategorii</msg>
<msg key="Widget_multiselect">Lista wyboru - pozwól aby użytkownicy dodawali wiele kategorii</msg>
<msg key="Widget_radio">Przycisk radiowy</msg>
<msg key="Widget_required_category">Czy wymagać od użytkowników przyporządkowania przynajmniej jednej kategorii?</msg>
<msg key="Widget_select">Wybierz</msg>
</message_catalog>
......@@ -34,7 +34,7 @@
<msg key="Delete">Удалить</msg>
<msg key="Delete_action_link_title">Удалить проверенные категории</msg>
<msg key="Delete_category_link_title">Удалить категории и все подкатегории</msg>
<msg key="Delete_category_tree_title">Удалить дерево категории &#34;%tree_name%&#34;</msg>
<msg key="Delete_category_tree_title">Удалить дерево категории &quot;%tree_name%&quot;</msg>
<msg key="Deprecate">Сократить</msg>
<msg key="Deprecate_category_link_title">Сократить проверенные категории</msg>
<msg key="Deprecated">Сокращено</msg>
......@@ -49,12 +49,12 @@
<msg key="lt_Are_you_sure_you_want">Вы уверены, что хотите удалить эти категории:</msg>
<msg key="lt_Are_you_sure_you_want_1">Вы уверены, что хотите удалить ссылки на эту категорию:</msg>
<msg key="lt_Are_you_sure_you_want_2">Вы уверены, что хотите удалить эти синонимы:</msg>
<msg key="lt_Are_you_sure_you_want_3">Вы уверены, что хотите удалить дерево &#34;%tree_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Вы уверены, что хотите не отображать дерево &#34;%tree_name%&#34; из &#34;%object_name%&#34;?</msg>
<msg key="lt_Are_you_sure_you_want_3">Вы уверены, что хотите удалить дерево &quot;%tree_name%&quot;?</msg>
<msg key="lt_Are_you_sure_you_want_4">Вы уверены, что хотите не отображать дерево &quot;%tree_name%&quot; из &quot;%object_name%&quot;?</msg>
<msg key="lt_Categories_still_used">Категории до сих используются</msg>
<msg key="lt_Category_Administrati">Администрирование категории</msg>
<msg key="lt_Category_trees_availa">Деревья категории доступные для отображения</msg>
<msg key="lt_Category_trees_mapped">Деревья категории, отображаемые в &#34;%object_name%&#34;</msg>
<msg key="lt_Category_trees_mapped">Деревья категории, отображаемые в &quot;%object_name%&quot;</msg>
<msg key="lt_Create_and_map_a_new_">Создать и отобразить новое дерево категории</msg>
<msg key="lt_Explanation_Any_categ">Пояснение: Любая категоризация, произведенная в отношении исходной категории, будет также проведена с конечной категорией.</msg>
<msg key="lt_form_varsnoquote__Com">%form_vars;noquote% Комбинировать посредством [</msg>
......@@ -72,8 +72,8 @@
<msg key="Map_this_subtree">Отобразить это поддерево</msg>
<msg key="Map_tree">Отобразить дерево</msg>
<msg key="Mapping_parameters">Параметры отображения</msg>
<msg key="Mapping_parameters_subtree_title">Параметры отображения поддеревьев &#34;%tree_name% :: %category_name%&#34;</msg>
<msg key="Mapping_parameters_tree_title">Параметры отображения дерева &#34;%tree_name%&#34;</msg>
<msg key="Mapping_parameters_subtree_title">Параметры отображения поддеревьев &quot;%tree_name% :: %category_name%&quot;</msg>
<msg key="Mapping_parameters_tree_title">Параметры отображения дерева &quot;%tree_name%&quot;</msg>
<msg key="multiple">множественный</msg>
<msg key="No_Cancel">Нет, отменить</msg>
<msg key="None">Нет</msg>
......@@ -84,7 +84,7 @@
<msg key="Ordering_update">Обновить порядок</msg>
<msg key="Ordering_update_link_title">Обновить порядок из значений в списке</msg>
<msg key="Permissions_manage">Управлять разрешениями</msg>
<msg key="Permissions_manage_title">Управление разрешениями для дерева &#34;%tree_name%&#34;</msg>
<msg key="Permissions_manage_title">Управление разрешениями для дерева &quot;%tree_name%&quot;</msg>
<msg key="required">обязательно</msg>
<msg key="Restore">Восстановить</msg>
<msg key="Restore_category_link_title">Восстановить выделенные категории</msg>
......@@ -94,16 +94,16 @@
<msg key="SiteWide_tree">Полное дерево</msg>
<msg key="This_tree_is_local">Это локальное дерево</msg>
<msg key="Tree_copy">Копия дерева</msg>
<msg key="Tree_copy_title">Копировать дерево в &#34;%tree_name%&#34;</msg>
<msg key="Tree_map_title">Выбрать для отображения поддерево &#34;%tree_name%&#34;</msg>
<msg key="Tree_copy_title">Копировать дерево в &quot;%tree_name%&quot;</msg>
<msg key="Tree_map_title">Выбрать для отображения поддерево &quot;%tree_name%&quot;</msg>
<msg key="Tree_Name">Имя дерева</msg>
<msg key="Tree_view_title">Дерево категории &#34;%tree_name%&#34;</msg>
<msg key="Tree_view_title">Дерево категории &quot;%tree_name%&quot;</msg>
<msg key="Trees_you_can_manage">Деревья, которыми вы можете управлять</msg>
<msg key="Trees_you_can_view">Деревья, которые вы можете просматривать</msg>
<msg key="Unmap">Отвязать</msg>
<msg key="unmap">отвязать</msg>
<msg key="Usage">Использование</msg>
<msg key="Usage_title">Модули, использующие дерево категории &#34;%tree_name%&#34;</msg>
<msg key="Usage_title">Модули, использующие дерево категории &quot;%tree_name%&quot;</msg>
<msg key="Widget">Виджет</msg>
<msg key="Widget_checkbox">Кнопка с независимой фиксацией - позволяет пользователям назначать несколько категорий</msg>
<msg key="Widget_multiselect">Множественный выбор - позволяет пользователям назначать несколько категорий</msg>
......
......@@ -6,24 +6,25 @@
<pretty-plural>Categories</pretty-plural>
<initial-install-p>f</initial-install-p>
<singleton-p>f</singleton-p>
<implements-subsite-p>f</implements-subsite-p>
<inherit-templates-p>t</inherit-templates-p>
<auto-mount>categories</auto-mount>
<version name="1.1.3d4" url="http://openacs.org/repository/apm/packages/categories-1.1.3d4">
<version name="1.1.3" url="http://openacs.org/repository/apm/packages/categories-1.1.3">
<owner url="mailto:timo@timohentschel.de">timo@timohentschel.de</owner>
<summary>Manage categories in category trees and let users map objects to categories.</summary>
<release-date>2015-10-04</release-date>
<release-date>2017-08-06</release-date>
<description format="text/html">Datamodel for category trees with supporting API and management pages. Provides a widget for
general categorization of arbitrary objects and tracks which package instances use which category trees. Also supports localization.</description>
<license>GPL</license>
<maturity>1</maturity>
<provides url="categories" version="1.1.3d4"/>
<requires url="acs-kernel" version="5.9.0"/>
<provides url="categories" version="1.1.3"/>
<requires url="acs-kernel" version="5.9.1"/>
<callbacks>
<callback type="before-uninstall" proc="category::before_uninstall"/>
<callback type="after-install" proc="category::after_install"/>
<callback type="before-uninstall" proc="category::before_uninstall"/>
</callbacks>
<parameters>
<!-- No version parameters -->
......
......@@ -10,8 +10,8 @@ if {![info exists user_id]} {
if {![info exists category]} {
set category {}
}
if {[info exists supress]} {
foreach key $supress {
if {[info exists suppress]} {
foreach key $suppress {
set hide($key) 1
}
}
......
......@@ -4,7 +4,7 @@
<h2>@categories.tree_name@</h2>
<ul>
<group column="tree_id">
<if @categories.category_id@ eq @cat@><li><b>@categories.pad;noquote@@categories.category_name@ <if @categories.count@ gt 0>(@categories.count@)</if></b></li></if>
<if @categories.category_id@ eq @cat@><li><strong>@categories.pad;noquote@@categories.category_name@ <if @categories.count@ gt 0>(@categories.count@)</if></strong></li></if>
<else>
<if @categories.count@ gt 0 or @categories.child_sum@ gt 0>
<li>@categories.pad;noquote@<if @categories.count@ gt 0><a href="?cat=@categories.category_id@" rel="nofollow">@categories.category_name@</a> (@categories.count@)</if><else>@categories.category_name@</else>
......
......@@ -2,7 +2,7 @@ if {![info exists cat]} {
set cat ""
}
if {(![info exists orderby] || $orderby eq "")} {
if { ![info exists orderby] || $orderby eq "" } {
set orderby "object_title"
}
set user_id [ad_conn user_id]
......@@ -12,18 +12,7 @@ set counts {}
set node_id [ad_conn node_id]
set packages [subsite::util::packages -node_id $node_id]
db_foreach category_count "
SELECT c.category_id as catid, count(*) as count
FROM category_object_map c, acs_objects o
where c.object_id = o.object_id
and o.package_id in ([join $packages ,])
and exists (select 1
from acs_object_party_privilege_map pm
where pm.object_id = c.object_id
and pm.party_id = :user_id
and pm.privilege = 'read')
group by c.category_id
" {
db_foreach category_count {} {
lappend counts $catid $count
}
......
......@@ -274,7 +274,7 @@ comment on column category_synonyms.synonym_id is '
Primary key.
';
comment on column category_synonyms.category_id is '
Category the synonyms are refering to.
Category the synonyms are referring to.
';
comment on column category_synonyms.locale is '
Language of the synonym.
......@@ -305,7 +305,7 @@ comment on table category_synonym_index is '
to be used in search.
';
comment on column category_synonym_index.synonym_id is '
Id of the synonym refered to.
Id of the synonym referred to.
';
comment on column category_synonym_index.trigram is '
3 character part of the synonym.
......@@ -366,7 +366,7 @@ comment on table category_search_index is '
to be used in search.
';
comment on column category_search_index.query_id is '
Id of the search text refered to.
Id of the search text referred to.
';
comment on column category_search_index.trigram is '
3 character part of the search text.
......
......@@ -31,7 +31,7 @@ comment on column category_synonyms.synonym_id is '
Primary key.
';
comment on column category_synonyms.category_id is '
Category the synonyms are refering to.
Category the synonyms are referring to.
';
comment on column category_synonyms.locale is '
Language of the synonym.
......@@ -62,7 +62,7 @@ comment on table category_synonym_index is '
to be used in search.
';
comment on column category_synonym_index.synonym_id is '
Id of the synonym refered to.
Id of the synonym referred to.
';
comment on column category_synonym_index.trigram is '
3 character part of the synonym.
......@@ -123,7 +123,7 @@ comment on table category_search_index is '
to be used in search.
';
comment on column category_search_index.query_id is '
Id of the search text refered to.
Id of the search text referred to.
';
comment on column category_search_index.trigram is '
3 character part of the search text.
......
......@@ -36,9 +36,7 @@ create table category_trees (
tree_id integer primary key
constraint cat_trees_tree_id_fk
references acs_objects on delete cascade,
site_wide_p char(1) default 't'
constraint cat_trees_site_wide_p_ck
check (site_wide_p in ('t','f'))
site_wide_p boolean default true
);
comment on table category_trees is '
......@@ -91,9 +89,7 @@ create table categories (
on delete cascade,
parent_id integer constraint cat_parent_id_fk
references categories,
deprecated_p char(1) default 'f'
constraint cat_deprecated_p_ck
check (deprecated_p in ('t','f')),
deprecated_p boolean default false,
left_ind integer,
right_ind integer
);
......@@ -166,12 +162,8 @@ create table category_tree_map (
default null
constraint cat_tree_map_subtree_id_fk
references categories,
assign_single_p char(1) default 'f'
constraint cat_tree_map_single_p_ck
check (assign_single_p in ('t','f')),
require_category_p char(1) default 'f'
constraint cat_tree_map_categ_p_ck
check (require_category_p in ('t','f')),
assign_single_p boolean default false,
require_category_p boolean default false,
widget varchar(20),
primary key (object_id, tree_id)
);
......@@ -300,9 +292,7 @@ create table category_synonyms (
constraint category_synonyms_locale_fk
references ad_locales on delete cascade,
name varchar(100) not null,
synonym_p char(1) default 't'
constraint category_synonyms_synonym_p_ck
check (synonym_p in ('t','f'))
synonym_p boolean default true
);
-- to get all synonyms in given locale
......@@ -319,7 +309,7 @@ comment on column category_synonyms.synonym_id is '
Primary key.
';
comment on column category_synonyms.category_id is '
Category the synonyms are refering to.
Category the synonyms are referring to.
';
comment on column category_synonyms.locale is '
Language of the synonym.
......@@ -350,7 +340,7 @@ comment on table category_synonym_index is '
to be used in search.
';
comment on column category_synonym_index.synonym_id is '
Id of the synonym refered to.
Id of the synonym referred to.
';
comment on column category_synonym_index.trigram is '
3 character part of the synonym.
......@@ -411,7 +401,7 @@ comment on table category_search_index is '
to be used in search.
';
comment on column category_search_index.query_id is '
Id of the search text refered to.
Id of the search text referred to.
';
comment on column category_search_index.trigram is '
3 character part of the search text.
......
......@@ -76,10 +76,6 @@ drop function category__name (integer);
-- delete privileges;
-- this shouldn't be necessary
begin;
delete from acs_privilege_descendant_map where privilege like 'category%';
end;
select acs_privilege__remove_child('category_admin','category_tree_read');
select acs_privilege__remove_child('category_admin','category_tree_write');
select acs_privilege__remove_child('category_admin','category_tree_grant_permissions');
......
......@@ -20,7 +20,7 @@ CREATE OR REPLACE FUNCTION category__new(
p_name varchar,
p_description varchar,
p_parent_id integer,
p_deprecated_p char,
p_deprecated_p boolean,
p_creation_date timestamp with time zone,
p_creation_user integer,
p_creation_ip varchar
......@@ -137,7 +137,7 @@ CREATE OR REPLACE FUNCTION category__phase_out(
DECLARE
BEGIN
update categories
set deprecated_p = 't'
set deprecated_p = true
where category_id = p_category_id;
return 0;
......@@ -159,7 +159,7 @@ CREATE OR REPLACE FUNCTION category__phase_in(
DECLARE
BEGIN
update categories
set deprecated_p = 'f'
set deprecated_p = false
where category_id = p_category_id;
return 0;
......
......@@ -215,7 +215,7 @@ BEGIN
-- insert synonym data
insert into category_synonyms (synonym_id, category_id, locale, name, synonym_p)
values (v_synonym_id, p_category_id, p_locale, p_name, 't');
values (v_synonym_id, p_category_id, p_locale, p_name, true);
-- insert in synonym index and search results
PERFORM category_synonym__reindex (v_synonym_id, p_name, p_locale);
......@@ -304,7 +304,7 @@ BEGIN
-- mark synonym as not editable for users
update category_synonyms
set synonym_p = 'f'
set synonym_p = false
where synonym_id = v_synonym_id;
return new;
......@@ -329,7 +329,7 @@ BEGIN
where category_id = OLD.category_id
and name = OLD.name
and locale = OLD.locale
and synonym_p = 'f';
and synonym_p = false;
-- update synonym
PERFORM category_synonym__edit (v_synonym_id, NEW.name, NEW.locale);
......
......@@ -19,7 +19,7 @@ CREATE OR REPLACE FUNCTION category_tree__new(
p_locale varchar,
p_tree_name varchar,
p_description varchar,
p_site_wide_p char,
p_site_wide_p boolean,
p_creation_date timestamp with time zone,
p_creation_user integer,
p_creation_ip varchar,
......@@ -154,7 +154,7 @@ CREATE OR REPLACE FUNCTION category_tree__edit(
p_locale varchar,
p_tree_name varchar,
p_description varchar,
p_site_wide_p char,
p_site_wide_p boolean,
p_modifying_date timestamp with time zone,
p_modifying_user integer,
p_modifying_ip varchar
......@@ -262,8 +262,8 @@ CREATE OR REPLACE FUNCTION category_tree__map(
p_object_id integer,
p_tree_id integer,
p_subtree_category_id integer,
p_assign_single_p char,
p_require_category_p char,
p_assign_single_p boolean,
p_require_category_p boolean,
p_widget varchar
) RETURNS integer AS $$
DECLARE
......
......@@ -49,7 +49,7 @@ comment on column category_synonyms.synonym_id is '
Primary key.
';
comment on column category_synonyms.category_id is '
Category the synonyms are refering to.
Category the synonyms are referring to.
';
comment on column category_synonyms.locale is '
Language of the synonym.
......@@ -80,7 +80,7 @@ comment on table category_synonym_index is '
to be used in search.
';
comment on column category_synonym_index.synonym_id is '
Id of the synonym refered to.
Id of the synonym referred to.
';
comment on column category_synonym_index.trigram is '
3 character part of the synonym.
......@@ -141,7 +141,7 @@ comment on table category_search_index is '
to be used in search.
';
comment on column category_search_index.query_id is '
Id of the search text refered to.
Id of the search text referred to.
';
comment on column category_search_index.trigram is '
3 character part of the search text.
......
--
-- Alter caveman style booleans (type character(1)) to real SQL boolean types.
--
ALTER TABLE categories
DROP constraint IF EXISTS cat_deprecated_p_ck,
ALTER COLUMN deprecated_p DROP DEFAULT,
ALTER COLUMN deprecated_p TYPE boolean
USING deprecated_p::boolean,
ALTER COLUMN deprecated_p SET DEFAULT false;
ALTER TABLE category_synonyms
DROP constraint IF EXISTS category_synonyms_synonym_p_ck,
ALTER COLUMN synonym_p DROP DEFAULT,
ALTER COLUMN synonym_p TYPE boolean
USING synonym_p::boolean,
ALTER COLUMN synonym_p SET DEFAULT true;
ALTER TABLE category_tree_map
DROP constraint IF EXISTS cat_tree_map_single_p_ck,
ALTER COLUMN assign_single_p DROP DEFAULT,
ALTER COLUMN assign_single_p TYPE boolean
USING assign_single_p::boolean,
ALTER COLUMN assign_single_p SET DEFAULT false;
ALTER TABLE category_tree_map
DROP constraint IF EXISTS cat_tree_map_categ_p_ck,
ALTER COLUMN require_category_p DROP DEFAULT,
ALTER COLUMN require_category_p TYPE boolean
USING require_category_p::boolean,
ALTER COLUMN require_category_p SET DEFAULT false;
ALTER TABLE category_trees
DROP constraint IF EXISTS cat_trees_site_wide_p_ck,
ALTER COLUMN site_wide_p DROP DEFAULT,
ALTER COLUMN site_wide_p TYPE boolean
USING site_wide_p::boolean,
ALTER COLUMN site_wide_p SET DEFAULT true;
-- procedure category__new/10
--
CREATE OR REPLACE FUNCTION category__new(
p_category_id integer,
p_tree_id integer,
p_locale varchar,
p_name varchar,
p_description varchar,
p_parent_id integer,
p_deprecated_p boolean,
p_creation_date timestamp with time zone,
p_creation_user integer,
p_creation_ip varchar
) RETURNS integer AS $$
DECLARE
v_category_id integer;
v_left_ind integer;
v_right_ind integer;
BEGIN
v_category_id := acs_object__new (
p_category_id, -- object_id
'category', -- object_type
p_creation_date, -- creation_date
p_creation_user, -- creation_user
p_creation_ip, -- creation_ip
p_tree_id, -- context_id
't', -- security_inherit_p
p_name, -- title
null -- package_id
);
if (p_parent_id is null) then
select 1, coalesce(max(right_ind)+1,1) into v_left_ind, v_right_ind
from categories
where tree_id = p_tree_id;
else
select left_ind, right_ind into v_left_ind, v_right_ind
from categories
where category_id = p_parent_id;
end if;
insert into categories
(category_id, tree_id, deprecated_p, parent_id, left_ind, right_ind)
values
(v_category_id, p_tree_id, p_deprecated_p, p_parent_id, -1, -2);
-- move right subtrees to make room for new category
update categories
set left_ind = left_ind + 2,
right_ind = right_ind + 2
where tree_id = p_tree_id
and left_ind > v_right_ind;
-- expand upper nodes to make room for new category
update categories
set right_ind = right_ind + 2
where tree_id = p_tree_id
and left_ind <= v_left_ind
and right_ind >= v_right_ind;
-- insert new category
update categories
set left_ind = v_right_ind,
right_ind = v_right_ind + 1
where category_id = v_category_id;
insert into category_translations
(category_id, locale, name, description)
values
(v_category_id, p_locale, p_name, p_description);
return v_category_id;
END;
$$ LANGUAGE plpgsql;
--
-- procedure category_tree__map/6
--
CREATE OR REPLACE FUNCTION category_tree__map(
p_object_id integer,
p_tree_id integer,
p_subtree_category_id integer,
p_assign_single_p boolean,
p_require_category_p boolean,
p_widget varchar
) RETURNS integer AS $$
DECLARE
v_map_count integer;
BEGIN
select count(*)
into v_map_count
from category_tree_map
where object_id = p_object_id
and tree_id = p_tree_id;
if v_map_count = 0 then
insert into category_tree_map
(tree_id, subtree_category_id, object_id,
assign_single_p, require_category_p, widget)
values (p_tree_id, p_subtree_category_id, p_object_id,
p_assign_single_p, p_require_category_p, p_widget);
end if;
return 0;
END;
$$ LANGUAGE plpgsql;
--
-- procedure category_tree__new/9
--
-- need to drop old version first, as arguments change type
DROP FUNCTION IF EXISTS category_tree__new(
p_tree_id integer,
p_locale varchar,
p_tree_name varchar,
p_description varchar,
p_site_wide_p char,
p_creation_date timestamp with time zone,
p_creation_user integer,
p_creation_ip varchar,
p_context_id integer
);
CREATE OR REPLACE FUNCTION category_tree__new(
p_tree_id integer,
p_locale varchar,
p_tree_name varchar,
p_description varchar,
p_site_wide_p boolean,
p_creation_date timestamp with time zone,
p_creation_user integer,
p_creation_ip varchar,
p_context_id integer
) RETURNS integer AS $$
DECLARE
v_tree_id integer;
BEGIN
v_tree_id := acs_object__new (
p_tree_id, -- object_id
'category_tree', -- object_type
p_creation_date, -- creation_date
p_creation_user, -- creation_user
p_creation_ip, -- creation_ip
p_context_id, -- context_id
p_tree_name, -- title
null -- package_id
);
insert into category_trees
(tree_id, site_wide_p)
values
(v_tree_id, p_site_wide_p);
perform acs_permission__grant_permission (
v_tree_id, -- object_id
p_creation_user, -- grantee_id
'category_tree_read' -- privilege
);
perform acs_permission__grant_permission (
v_tree_id, -- object_id
p_creation_user, -- grantee_id
'category_tree_write' -- privilege
);
perform acs_permission__grant_permission (
v_tree_id, -- object_id
p_creation_user, -- grantee_id
'category_tree_grant_permissions' -- privilege
);
insert into category_tree_translations
(tree_id, locale, name, description)
values
(v_tree_id, p_locale, p_tree_name, p_description);
return v_tree_id;
END;
$$ LANGUAGE plpgsql;
--
-- procedure category_tree__edit/8
--
CREATE OR REPLACE FUNCTION category_tree__edit(
p_tree_id integer,
p_locale varchar,
p_tree_name varchar,
p_description varchar,
p_site_wide_p boolean,
p_modifying_date timestamp with time zone,
p_modifying_user integer,
p_modifying_ip varchar
) RETURNS integer AS $$
DECLARE
BEGIN
update category_trees
set site_wide_p = p_site_wide_p
where tree_id = p_tree_id;
update category_tree_translations
set name = p_tree_name,
description = p_description
where tree_id = p_tree_id
and locale = p_locale;
update acs_objects
set last_modified = p_modifying_date,
modifying_user = p_modifying_user,
modifying_ip = p_modifying_ip
where object_id = p_tree_id;
return 0;
END;
$$ LANGUAGE plpgsql;
DROP FUNCTION IF EXISTS category__new(integer, integer, character varying, character varying, character varying, integer, character, timestamp with time zone, integer, character varying);
-- Very old updraded instances could still have this version of the
-- proc defined, because previous upgrades did not remove it
DROP FUNCTION IF EXISTS category_tree__new(
p_tree_id integer,
p_locale varchar,
p_tree_name varchar,
p_description varchar,
p_site_wide_p char, -- now there is boolean here
p_creation_date timestamp with time zone,
p_creation_user integer,
p_creation_ip varchar,
p_context_id integer
);
-- Old updraded instances could still have this version of the
-- function defined, because previous upgrades did not remove it
DROP FUNCTION IF EXISTS category_tree__map(integer, integer, integer, character, character, character varying);
DROP FUNCTION IF EXISTS category_tree__edit(integer, character varying, character varying, character varying, character, timestamp with time zone, integer, character varying);
......@@ -371,7 +371,11 @@ ad_proc -public category::count_children {
} {
counts all direct sub categories
} {
return [db_string select {}]
return [db_string count_children {
select count(*)
from categories
where parent_id=:category_id
}]
}
ad_proc -public category::get_parent {
......
<?xml version="1.0"?>
<queryset>
<fullquery name="category::count_children.select">
<querytext>
select count(*)
from categories
where parent_id=:category_id
</querytext>
</fullquery>
<fullquery name="category::get_children.get_children_ids">
<querytext>
......
......@@ -94,15 +94,15 @@ ad_proc -public category::list::get_pretty_list {
Accepts a list of category_ids and returns a pretty list of tree-names and
category-names with optional links for each tree and category.
@param category_delimiter string that seperates the categories in the pretty list
@param category_delimiter string that separates the categories in the pretty list
@param category_link optional link for every category-name
@param category_link_eval optional command that returns the link for every category-name.
normaly this would be a export_vars command that could
contain __category_id and __tree_id which refer to
category_id and tree_id of the category-name the link will wrap.
@param category_link_html optional list of key value pairs for additional html in a link.
@param tree_delimiter string that seperates the tree-names in the pretty list
@param tree_colon string that seperates a tree-name from the category-names in that tree.
@param tree_delimiter string that separates the tree-names in the pretty list
@param tree_colon string that separates a tree-name from the category-names in that tree.
@param tree_link optional link for every tree-name
@param tree_link_eval optional command that returns the link for every tree-name.
normaly this would be a export_vars command that could
......@@ -210,15 +210,15 @@ ad_proc -public category::list::prepare_display {
list of category-names. These extra column can then be used in the listbuilder
to display a pretty list of categorized objects.
@param category_delimiter string that seperates the categories in the pretty list
@param category_delimiter string that separates the categories in the pretty list
@param category_link optional link for every category-name
@param category_link_eval optional command that returns the link for every category-name.
normaly this would be a export_vars command that could
contain __category_id and __tree_id which refer to
category_id and tree_id of the category-name the link will wrap.
@param category_link_html optional list of key value pairs for additional html in a link.
@param tree_delimiter string that seperates the tree-names in the pretty list
@param tree_colon string that seperates a tree-name from the category-names in that tree.
@param tree_delimiter string that separates the tree-names in the pretty list
@param tree_colon string that separates a tree-name from the category-names in that tree.
@param tree_link optional link for every tree-name
@param tree_link_eval optional command that returns the link for every tree-name.
normaly this would be a export_vars command that could
......
......@@ -219,7 +219,7 @@ namespace eval category_tree {
@param object_id object to get the mapped category trees.
@param locale language in which to get the name. [ad_conn locale] used by default.
@return tcl list of lists: tree_id tree_name subtree_category_id
@return Tcl list of lists: tree_id tree_name subtree_category_id
assign_single_p require_category_p
@author Timo Hentschel (timo@timohentschel.de)
} {
......@@ -235,7 +235,7 @@ namespace eval category_tree {
Get the category trees mapped to an object.
@param object_id object to get the mapped category trees.
@return tcl list of tree_ids
@return Tcl list of tree_ids
@author Peter Kreuzinger (peter.kreuzinger@wu-wien.ac.at)
} {
set result [list]
......@@ -268,7 +268,7 @@ namespace eval category_tree {
@param object_id_list list of object to get the mapped category trees.
@param locale language in which to get the name. [ad_conn locale] used by default.
@return tcl list of lists: tree_id tree_name subtree_category_id
@return Tcl list of lists: tree_id tree_name subtree_category_id
assign_single_p require_category_p widget
@author Jade Rubick (jader@bread.com)
} {
......@@ -293,7 +293,7 @@ namespace eval category_tree {
@option subtree_id Return only categories of the given subtree.
@param tree_id category tree to get the categories of.
@param locale language in which to get the categories. [ad_conn locale] used by default.
@return tcl list of lists: category_id category_name deprecated_p level
@return Tcl list of lists: category_id category_name deprecated_p level
@author Timo Hentschel (timo@timohentschel.de)
} {
if {[catch {set tree [nsv_get category_trees $tree_id]}]} {
......@@ -332,7 +332,7 @@ namespace eval category_tree {
Gets all package instances using a category tree.
@param tree_id category tree to get the using packages for.
@return tcl list of lists: package_pretty_plural object_id object_name package_id instance_name read_p
@return Tcl list of lists: package_pretty_plural object_id object_name package_id instance_name read_p
@author Timo Hentschel (timo@timohentschel.de)
} {
set user_id [ad_conn user_id]
......
......@@ -148,17 +148,5 @@
</querytext>
</fullquery>
<fullquery name="category_tree::get_id.get_category_tree_id">
<querytext>
select tree_id
from category_tree_translations
where name = :name
and locale = :locale
</querytext>
</fullquery>
</queryset>
......@@ -35,7 +35,7 @@ ad_proc -public ::category_tree::xml::import {
if {$site_wide_p} { set site_wide_p t } else { set site_wide_p f }
set doc [dom parse $xml]
if [catch {set root [$doc documentElement]} err] {
if {[catch {set root [$doc documentElement]} err]} {
error "Error parsing XML: $err"
}
......@@ -43,14 +43,13 @@ ad_proc -public ::category_tree::xml::import {
db_transaction {
foreach translation [$root selectNodes {translation}] {
if [catch {set locale [$translation getAttribute locale]}] {
if {[catch {set locale [$translation getAttribute locale]}]} {
error "Required attribute 'locale' not found"
}
if [catch {set name [[$translation selectNodes {name}] text]}] {
if {[catch {set name [[$translation selectNodes {name}] text]}]} {
error "Required element 'name' not found"
}
if [catch {set description \
[[$translation selectNodes {description}] text]}] {
if {[catch {set description [[$translation selectNodes {description}] text]}]} {
set description {}
}
if {$tree_id} {
......@@ -91,14 +90,13 @@ ad_proc -private ::category_tree::xml::add_category {
# do translations
foreach translation [$node selectNodes {translation}] {
if [catch {set locale [$translation getAttribute locale]}] {
if {[catch {set locale [$translation getAttribute locale]}]} {
error "Required attribute 'locale' not found"
}
if [catch {set name [[$translation selectNodes {name}] text]}] {
if {[catch {set name [[$translation selectNodes {name}] text]}]} {
error "Required element 'name' not found"
}
if [catch {set description \
[[$translation selectNodes {description}] text]}] {
if {[catch {set description [[$translation selectNodes {description}] text]}]} {
set description {}
}
......
<?xml version="1.0"?>
<queryset>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="category::tagcloud::get_tags_no_mem.tagcloud_get_keys">
<querytext>
select category_id, count(com.object_id), min(trans.name)
from categories natural left join category_object_map com natural join category_trees
natural join category_translations trans
where tree_id = :tree_id and trans.locale = :default_locale
and exists (select 1 from acs_object_party_privilege_map ppm
where ppm.object_id = com.object_id
and ppm.privilege = 'read'
and ppm.party_id = :user_id)
group by category_id
</querytext>
</fullquery>
</queryset>
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>7.1</version></rdbms>
<fullquery name="category::tagcloud::get_tags_no_mem.tagcloud_get_keys">
<querytext>
select category_id, count(com.object_id), min(trans.name)
from categories
natural left join category_object_map com
natural join category_trees
natural join category_translations trans
where tree_id = :tree_id
and trans.locale = :default_locale
and acs_permission__permission_p(com.object_id, :user_id, 'read')
group by category_id
</querytext>
</fullquery>
</queryset>
......@@ -104,17 +104,7 @@ ad_proc -private category::tagcloud::get_tags_no_mem {
# so we should check for the reader's locale and use that
# or the default_locale, but ...
set tag_list [db_list_of_lists tagcloud_get_keys {
select category_id, count(com.object_id), min(trans.name)
from categories natural left join category_object_map com natural join category_trees
natural join category_translations trans
where tree_id = :tree_id and trans.locale = :default_locale
and exists (select 1 from acs_object_party_privilege_map ppm
where ppm.object_id = com.object_id
and ppm.privilege = 'read'
and ppm.party_id = :user_id)
group by category_id
}]
set tag_list [db_list_of_lists tagcloud_get_keys {}]
}
......
......@@ -21,7 +21,7 @@ aa_register_case category_tree_add {
select 1 from category_trees where tree_id = :tree_id
} -default "0"]
aa_equals "tree was created succesfully" $success_p 1
aa_equals "tree was created successfully" $success_p 1
}
}
......@@ -46,7 +46,7 @@ aa_register_case category_add {
select 1 from categories where category_id = :category_id
} -default "0"]
aa_equals "category was created succesfully" $success_p 1
aa_equals "category was created successfully" $success_p 1
}
}
......@@ -74,7 +74,7 @@ aa_register_case category_delete {
select 0 from categories where category_id = :category_id
} -default "1"]
aa_equals "category was deleted succesfully" $success_p 1
aa_equals "category was deleted successfully" $success_p 1
}
}
......
......@@ -4,7 +4,7 @@
<property name="locale">@locale;literal@</property>
<p>
<b>#categories.lt_Are_you_sure_you_want#</b>
<strong>#categories.lt_Are_you_sure_you_want#</strong>
</p>
<listtemplate name="categories"></listtemplate>
......
......@@ -43,7 +43,7 @@ ad_form -name category_form -action category-form \
set name ""
set description ""
} -edit_request {
if {![db_0or1row check_translation_existance ""]} {
if {![db_0or1row check_translation_existence ""]} {
set default_locale [parameter::get -parameter DefaultLocale -default en_US]
db_1row get_default_translation ""
}
......
<?xml version="1.0"?>
<queryset>
<fullquery name="check_translation_existance">
<fullquery name="check_translation_existence">
<querytext>
select name, description
......
......@@ -4,7 +4,7 @@
<property name="locale">@locale;literal@</property>
<p>
<b>#categories.lt_Are_you_sure_you_want_1#</b>
<strong>#categories.lt_Are_you_sure_you_want_1#</strong>
</p>
<listtemplate name="category_links"></listtemplate>
......
......@@ -4,15 +4,15 @@
<property name="change_locale">f</property>
<p>
<if @sw_tree_p@ eq 1>
<if @sw_tree_p;literal@ true>
#categories.lt_This_is_a_site_wide_c#<p>
<if @admin_p@ eq 1>
<if @admin_p;literal@ true>
<a href="site-wide-status-change?action=0&@url_vars@" class="button">#categories.Make_it_Local#</a>
</if>
</if>
<else>
#categories.This_tree_is_local#<p>
<if @admin_p@ eq 1>
<if @admin_p;literal@ true>
<a href="site-wide-status-change?action=1&@url_vars@" class="button">#categories.Make_it_Site-Wide#</a>
</if>
</else>
......
......@@ -5,7 +5,7 @@
<querytext>
update category_trees
set site_wide_p = case when :action = '1' then 't' else 'f' end
set site_wide_p = (:action = '1')
where tree_id = :tree_id
</querytext>
......
......@@ -4,7 +4,7 @@
<property name="locale">@locale;literal@</property>
<p>
<b>#categories.lt_Are_you_sure_you_want_2#</b>
<strong>#categories.lt_Are_you_sure_you_want_2#</strong>
</p>
<listtemplate name="synonyms"></listtemplate>
......
......@@ -10,13 +10,13 @@
</table>
</p>
<if @instances_using_p@ eq t>
<if @instances_using_p;literal@ true>
#categories.lt_This_tree_is_still_us#
<a href="@usage_url@">#categories.here#</a>.
</if>
<if @used_categories:rowcount@ gt 0>
<p><b>#categories.lt_Categories_still_used#</b>
<p><strong>#categories.lt_Categories_still_used#</strong>
<listtemplate name="used_categories"></listtemplate>
<p>
</if>
......
......@@ -28,7 +28,7 @@ array set tree [category_tree::get_data $tree_id $locale]
set tree_name $tree(tree_name)
set tree_description $tree(description)
set page_title [_ categories.Delete_category_title]
set page_title [_ categories.Delete_category_tree_title]
set context_bar [category::context_bar $tree_id $locale \
[value_if_exists object_id] \
[value_if_exists ctx_id]]
......
......@@ -4,4 +4,4 @@
<property name="change_locale">f</property>
<property name="focus">tree_form.tree_name</property>
<include src="/packages/categories/lib/tree-form" &="tree_id" &="locale">
<include src="/packages/categories/lib/tree-form" &="ctx_id" &="tree_id" &="locale">
......@@ -11,7 +11,7 @@
</p>
<multiple name=modules>
<b>@modules.package@:</b><ul>
<strong>@modules.package@:</strong><ul>
<group column=package>
</ul><if @modules.object_name@ ne @modules.instance_name@>@modules.instance_name@</if><ul>
<group column=package_id>
......
......@@ -27,4 +27,33 @@
</querytext>
</fullquery>
<fullquery name="check_permissions_on_trees">
<querytext>
select t.tree_id
from category_trees t, category_temp tmp
where (t.site_wide_p = 't'
or exists (select 1
from acs_object_party_privilege_map oppm
where oppm.object_id = t.tree_id
and oppm.party_id = :user_id
and oppm.privilege = 'category_tree_read'))
and t.tree_id = tmp.category_id
</querytext>
</fullquery>
<fullquery name="get_categorized_object_count">
<querytext>
select n.object_id
from acs_named_objects n, ($subtree_sql) s
where n.object_id = s.object_id
and exists (select 1
from acs_object_party_privilege_map oppm
where oppm.object_id = n.object_id
and oppm.party_id = :user_id
and oppm.privilege = 'read')
$letter_sql
$package_sql
</querytext>
</fullquery>
</queryset>
......@@ -13,11 +13,7 @@
and o.object_id = n.object_id
and p.package_id = n.package_id
and t.package_key = p.package_key
and exists (select 1
from acs_object_party_privilege_map oppm
where oppm.object_id = n.object_id
and oppm.party_id = :user_id
and oppm.privilege = 'read')
and acs_permission__permission_p(n.object_id, :user_id, 'read')
$letter_sql
$package_sql
$order_by_clause
......@@ -25,4 +21,28 @@
</querytext>
</fullquery>
<fullquery name="check_permissions_on_trees">
<querytext>
select t.tree_id
from category_trees t, category_temp tmp
where (
t.site_wide_p = 't'
or acs_permission__permission_p(t.tree_id, :user_id, 'category_tree_read')
)
and t.tree_id = tmp.category_id
</querytext>
</fullquery>
<fullquery name="get_categorized_object_count">
<querytext>
select n.object_id
from acs_named_objects n, ($subtree_sql) s
where n.object_id = s.object_id
and acs_permission__permission_p(n.object_id, :user_id, 'read')
$letter_sql
$package_sql
</querytext>
</fullquery>
</queryset>
......@@ -9,7 +9,7 @@
@trees.tree_name@:
<select name=category_ids multiple size="5">
<group column=tree_id>
<option value="@trees.category_id@"<if @trees.selected_p@ eq 1> #categories.selected#</if>>@trees.indent;noquote@@trees.category_name@
<option value="@trees.category_id@"<if @trees.selected_p;literal@ true> #categories.selected#</if>>@trees.indent;noquote@@trees.category_name@
</group>
</select>
</multiple>
......
......@@ -160,7 +160,12 @@ db_transaction {
}
# execute query to count objects and pages
paginator create get_categorized_object_count $p_name "" -pagesize 20 -groupsize 10 -contextual -timeout 0
# apisano: this particular statement contains $ variables, so it
# cannot be passed by name to the paginator, or such variables
# won't be resolved correctly insite the machinery. Just compute
# the sql text here and pass it as is.
set sql [db_map get_categorized_object_count]
paginator create -- $p_name $sql -pagesize 20 -groupsize 10 -contextual -timeout 0
set first_row [paginator get_row $p_name $page]
set last_row [paginator get_row_last $p_name $page]
......
......@@ -15,20 +15,6 @@
</querytext>
</fullquery>
<fullquery name="check_permissions_on_trees">
<querytext>
select t.tree_id
from category_trees t, category_temp tmp
where (t.site_wide_p = 't'
or exists (select 1
from acs_object_party_privilege_map oppm
where oppm.object_id = t.tree_id
and oppm.party_id = :user_id
and oppm.privilege = 'category_tree_read'))
and t.tree_id = tmp.category_id
</querytext>
</fullquery>
<partialquery name="other_letter">
<querytext>
and (upper(n.object_name) < 'A' or upper(n.object_name) > 'Z')
......@@ -99,19 +85,4 @@
</querytext>
</fullquery>
<fullquery name="get_categorized_object_count">
<querytext>
select n.object_id
from acs_named_objects n, ($subtree_sql) s
where n.object_id = s.object_id
and exists (select 1
from acs_object_party_privilege_map oppm
where oppm.object_id = n.object_id
and oppm.party_id = :user_id
and oppm.privilege = 'read')
$letter_sql
$package_sql
</querytext>
</fullquery>
</queryset>
......@@ -11,17 +11,18 @@ Categories are organized in separate category trees.<br>
When a package admin clicks on an Administer Categories link, they
are presented with a page that shows the following items:
<ul>
<li>list of trees currently mapped to the object (this "object"
will be usually a package instance)</li><li>list of trees that can be mapped to the object , those trees
are just the trees that the admin has the 'category_read'
<li>list of trees currently mapped to the object (this
"object" will be usually a package instance)</li><li>list of trees that can be mapped to the object, those trees are
just the trees that the admin has the 'category_read'
permission on</li><li>link to create and map a new category tree</li>
</ul>
Creating a new tree involves entering tree name and description.
The name must be unique among all the trees.<br>
Upon creation of a tree, the admin is granted the 'category_read'
and 'category_write' permisssions.<br>
Upon creation of a tree, the admin is granted the
'category_read' and 'category_write'
permissions.<br>
Normally, the category_write permission should not be shared with
anybody else, in the rare cases when granting this permission to
......@@ -29,35 +30,36 @@ another party is needed, site-wide admin intervention will be
required.
<p>In addition to mapping an entire tree to an object, admins have
the option of mapping only a subtree of an existing tree. To do
that, they have to click on a "Map subtree" link, after which they
will see a list of tree nodes.<br>
that, they have to click on a "Map subtree" link, after
which they will see a list of tree nodes.<br>
The mapped subtree will consist of all subcategories of the
category the user selected - the category itself will not be
included. Note that the mapped subtree will not be a new tree.
Therefore this option should be used only if an admin plans to use
the subtree 'as is' and has no intention of making changes to
it.</p>
the subtree 'as is' and has no intention of making changes
to it.</p>
<p>An alternative solution is available for admins who want to
create a tree by copying one of the existing trees and subsequently
playing around with it (moving/adding/deleting categories). To
accomplish that, they would have to create a new tree, go to the
admin page for this tree and click on a "Copy existing tree" link.
They will see a list of available trees to copy. Clicking on the
"Copy this one" link will result in creating copies of the
categories from the source trees and placing them in the new
tree.<br>
admin page for this tree and click on a "Copy existing
tree" link. They will see a list of available trees to copy.
Clicking on the "Copy this one" link will result in
creating copies of the categories from the source trees and placing
them in the new tree.<br>
This operation can be performed several times, each time the copied
categories will be placed as toplevel categories of the tree.</p>
<p>As far as unmapping is concerned, this operation doesn't delete
the mapping between categories and objects.</p>
<p><b>Permissions</b></p>
<p>As far as unmapping is concerned, this operation doesn&#39;t
delete the mapping between categories and objects.</p>
<p><strong>Permissions</strong></p>
<p>The creator of the category tree is granted the
category_tree_read, category_tree_write and
category_tree_grant_permissions privileges.<br>
</p>
<p><b>The operations one can perform on categories are:</b></p>
<p><strong>The operations one can perform on categories
are:</strong></p>
<ul>
<li>(a) changing of a parent</li><li>(b) adding childen</li><li>(c) deleting</li><li>(d) editing</li><li>(e) phasing in/out</li><li>(f) changing sort key</li>
<li>(a) changing of a parent</li><li>(b) adding children</li><li>(c) deleting</li><li>(d) editing</li><li>(e) phasing in/out</li><li>(f) changing sort key</li>
</ul>
<p>ad (d) You cannot delete a category that has children. Also, you
cannot delete a category that has objects mapped to it (do we want
......@@ -71,7 +73,7 @@ ad (f) sort key is used to order children of the same parent
category, that is the elements of the tree are sorted first by
parent, then by the sort key.</p>
<hr>
<b>Datamodel</b>
<strong>Datamodel</strong>
<p>This table actually stores the information whether the tree is
side-wide or not.</p>
<pre>
......@@ -84,7 +86,7 @@ create table category_trees (
check (site_wide_p in ('t','f'))
);
</pre>
<p>Here the tree's name and description is stored in different
<p>Here the tree&#39;s name and description is stored in different
translations.</p>
<pre>
create table category_tree_translations (
......@@ -103,8 +105,9 @@ create table category_tree_translations (
about the parent category. The tree is ordered by a nested index
(left_ind, right_ind). Sorting is thus accomplished by means of a
nested set. You can read a <a href="http://www.intelligententerprise.com/001020/celko.jhtml?_requestid=49180">
description of how nested sets work</a>. This also <i>describes how
to write queries that sort correctly when using categories</i>.</p>
description of how nested sets work</a>. This also <em>describes
how to write queries that sort correctly when using
categories</em>.</p>
<pre>
create table categories (
category_id integer primary key
......@@ -168,7 +171,7 @@ create table category_tree_map (
) organization index;
</pre>
<hr>
<p><b>Known Limitations</b></p>
<p><strong>Known Limitations</strong></p>
<ul>
<li>The tree order is the same for all translations.</li><li>You can map a tree only once to a package (or other
object).</li><li>The number of objects mapped to a category is not shown yet.
......@@ -177,16 +180,16 @@ for each object.</li><li>There should be browsing widget easily used by other pa
to let the user browse through all categorized objects.</li>
</ul>
<hr>
<p><b>Integration with other packages</b></p>
<p><strong>Integration with other packages</strong></p>
<p>Here are the changes needed to be made to integrate with other
packages.</p>
<p>
<b>index.adp</b><br>
<strong>index.adp</strong><br>
Provide an admin-link to
/categories/cadmin/one-object?object_id=\@package_id\@ to let admins
map trees to the package instance.</p>
<p>
<b>form-page.tcl</b><br>
<strong>form-page.tcl</strong><br>
Use this in ad_form to display all mapped category trees and
selected categories (if editing an object):</p>
<pre>
......
......@@ -17,7 +17,7 @@ a page that shows the following items:
<ul>
<li> list of trees currently mapped to the object (this "object" will be usually a package
instance)
<li> list of trees that can be mapped to the object ,
<li> list of trees that can be mapped to the object,
those trees are just the trees that the admin has the 'category_read' permission on
<li> link to create and map a new category tree
......@@ -25,7 +25,7 @@ a page that shows the following items:
Creating a new tree involves entering tree name and description.
The name must be unique among all the trees.
<br>
Upon creation of a tree, the admin is granted the 'category_read' and 'category_write' permisssions.
Upon creation of a tree, the admin is granted the 'category_read' and 'category_write' permissions.
<br>
Normally, the category_write permission should not be shared with anybody else,
in the rare cases when granting this permission to another party is needed,
......@@ -57,7 +57,7 @@ doesn't delete the mapping between categories and objects.
<p>
<b>Permissions</b>
<strong>Permissions</strong>
<p>The creator of the category tree is granted the category_tree_read, category_tree_write
and category_tree_grant_permissions privileges.
<br>
......@@ -65,10 +65,10 @@ and category_tree_grant_permissions privileges.
<p>
<p>
<b>The operations one can perform on categories are:</b>
<strong>The operations one can perform on categories are:</strong>
<ul>
<li>(a) changing of a parent
<li>(b) adding childen
<li>(b) adding children
<li>(c) deleting
<li>(d) editing
<li>(e) phasing in/out
......@@ -91,7 +91,7 @@ by the sort key.
<hr>
<b>Datamodel</b>
<strong>Datamodel</strong>
<p>This table actually stores the information whether the tree is side-wide or not.
<pre>
......@@ -125,7 +125,7 @@ create table category_tree_translations (
This table stores the tree hierarchy by holding the information about
the parent category. The tree is ordered by a nested index (left_ind,
right_ind). Sorting is thus accomplished by means of a nested set. You
can read a <a href="http://www.intelligententerprise.com/001020/celko.jhtml?_requestid=49180">description of how nested sets work</a>. This also <i>describes how to write queries that sort correctly when using categories</i>.
can read a <a href="http://www.intelligententerprise.com/001020/celko.jhtml?_requestid=49180">description of how nested sets work</a>. This also <em>describes how to write queries that sort correctly when using categories</em>.
<pre>
......@@ -197,7 +197,7 @@ create table category_tree_map (
</pre>
<hr>
<p><b>Known Limitations</b>
<p><strong>Known Limitations</strong>
<ul>
<li>The tree order is the same for all translations.</li>
<li>You can map a tree only once to a package (or other object).</li>
......@@ -210,17 +210,17 @@ to let the user browse through all categorized objects.
</ul>
<hr>
<p><b>Integration with other packages</b>
<p><strong>Integration with other packages</strong>
<p>Here are the changes needed to be made to integrate with other packages.
<p>
<b>index.adp</b>
<strong>index.adp</strong>
<br>Provide an admin-link to
/categories/cadmin/one-object?object_id=@package_id@ to let admins
map trees to the package instance.
<p>
<b>form-page.tcl</b>
<strong>form-page.tcl</strong>
<br>Use this in ad_form to display all mapped category trees and
selected categories (if editing an object):
<pre>
......
......@@ -53,17 +53,17 @@ apply to an object or its parent is called the <span class="emphasis"><em>enable
<td>3.1.3</td><td> </td><td>Done</td><td>The <span class="emphasis"><em>enabled trees</em></span> for an
object can be added as fields in form builder. (Current ad_form
implementation supports single select and multiple select; all
enabled trees or none. <tt class="computeroutput">/categories/www/widget</tt> is a deprecated
enabled trees or none. <kbd class="computeroutput">/categories/www/widget</kbd> is a deprecated
solution.)</td>
</tr><tr>
<td>3.1.4</td><td> </td><td>B</td><td>A GUI for linking any category (even one not in the
<span class="emphasis"><em>enabled trees</em></span>) to an
object.</td>
</tr><tr>
<td>3.2</td><td>partial</td><td>A</td><td>A GUI to see an object's categories.</td>
<td>3.2</td><td>partial</td><td>A</td><td>A GUI to see an object&#39;s categories.</td>
</tr><tr>
<td>3.2.1</td><td> </td><td>A</td><td>All of the categories which an object belongs to can be
displayed via an includelet on an object view page. (<tt class="computeroutput">/categories/www/widget</tt>)</td>
displayed via an includelet on an object view page. (<kbd class="computeroutput">/categories/www/widget</kbd>)</td>
</tr><tr>
<td>4</td><td> </td><td>A</td><td>List-builder can sort and filter by category. (Implemented; not
documented. single-select only.)</td>
......@@ -96,5 +96,4 @@ object_id</a> and <a href="http://openacs.org/forums/message-view?message_id=158
rightLink="" rightLabel="" rightTitle=""
homeLink="index" homeLabel="Home"
upLink="index" upLabel="Up">
<center><a href="http://openacs.org/doc/requirements.html#comments">View comments
on this page at openacs.org</a></center>
\ No newline at end of file
This diff is collapsed.
<if @trees:rowcount@ gt 0>
<multiple name=trees>
@trees.tree_name@:
<select name="@name@"<if @trees.assign_single_p@ eq f> #categories.multiple#</if>>
<select name="@name@"<if @trees.assign_single_p;literal@ false> #categories.multiple#</if>>
<if @trees.assign_single_p@ eq t and @trees.require_category_p@ eq f><option value=""></if>
<group column=tree_id>
<option value="@trees.category_id@"<if @trees.selected_p@ eq 1> #categories.selected#</if>>@trees.indent;noquote@@trees.category_name@
<option value="@trees.category_id@"<if @trees.selected_p;literal@ true> #categories.selected#</if>>@trees.indent;noquote@@trees.category_name@
</group>
</select>
</multiple>
......
......@@ -2,7 +2,7 @@
<property name="doc(title)">@page_title;literal@</property>
<property name="context">@context_bar;literal@</property>
<if @admin_p@ eq 1>
<if @admin_p;literal@ true>
<div style="float: right;">
<a href="cadmin/" class="button">#categories.lt_Category_Administrati#</a>
</div>
......
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