Commit 16693143 authored by Frank Bergmann's avatar Frank Bergmann

- OpenACS 5.9

parent 0e972f2e
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ar_EG" charset="utf-8">
<message_catalog package_key="faq" locale="ar_EG" charset="utf-8">
<msg key="Answer">الإجابة</msg>
</message_catalog>
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ar_LB" charset="utf-8">
<message_catalog package_key="faq" locale="ar_LB" charset="utf-8">
<msg key="A">ج:</msg>
<msg key="Add_QA_for_faq_name">أضفْ س&amp;ج لي %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="ast_ES" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="ast_ES" charset="ISO-8859-1">
<msg key="A">Rempuesta:</msg>
<msg key="Add_QA_for_faq_name">Axuntar Preguntar y Rempuesta pa(p') &quot;%faq_name%&quot;</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="ca_ES" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="ca_ES" charset="ISO-8859-1">
<msg key="A">R: </msg>
<msg key="Add_QA_for_faq_name">Afegir pregunta i resposta a %faq_name%</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.6" locale="ch_zh" charset="utf-8">
<message_catalog package_key="faq" locale="ch_zh" charset="utf-8">
<msg key="A">问题:</msg>
<msg key="Add_QA_for_faq_name">向%faq_name%添加问题与解答</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="da_DK" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="da_DK" charset="ISO-8859-1">
<msg key="A">Svar:</msg>
<msg key="Add_QA_for_faq_name">Opret sprgsml og svar til %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="de_DE" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="de_DE" charset="ISO-8859-1">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">Neuen F&amp;A-Eintrag zu %faq_name% hinzufgen</msg>
<msg key="administer">Verwalten</msg>
<msg key="All_QA">Alle F&amp;amp;As</msg>
<msg key="Answer">Antwort</msg>
<msg key="Answer_text_in_html">Antwort im HTML-Format</msg>
<msg key="Back_to_FAQs">Zurck zu FAQs</msg>
<msg key="Change_settings">&amp;Auml;nderungen &amp;uuml;bernehmen</msg>
<msg key="Configure">Konfigurieren</msg>
<msg key="Create_a_new_FAQ">Neues FAQ erstellen</msg>
<msg key="Create_an_FAQ">Neues FAQ erstellen</msg>
<msg key="Create_FAQ">FAQ erstellen</msg>
......@@ -18,6 +22,8 @@
<msg key="Edit">Bearbeiten</msg>
<msg key="edit">Bearbeiten</msg>
<msg key="Edit_an_FAQ">Ein FAQ bearbeiten</msg>
<msg key="Enable_Categories">Kategorien aktivieren </msg>
<msg key="Enable_WYSIWYG">WYSIWYG aktivieren</msg>
<msg key="FAQ_Admin">FAQs verwalten</msg>
<msg key="faq_name_Admin">%faq_name% verwalten</msg>
<msg key="FAQs">FAQs</msg>
......@@ -33,11 +39,13 @@
<msg key="One_Question">Eine Frage</msg>
<msg key="Plain">Einfacher Text</msg>
<msg key="Preformatted">Vorformatierter Text</msg>
<msg key="pretty_name">FAQ</msg>
<msg key="preview">Vorschau</msg>
<msg key="Q">F:</msg>
<msg key="QA_On_Separate_Pages">F&amp;A auf getrennten Seiten?</msg>
<msg key="QA_on_Separate_Pages">F&amp;A auf getrennten Seiten?</msg>
<msg key="Question">Frage</msg>
<msg key="Question_text_in_html">Frage im HTML-Format</msg>
<msg key="swap_with_next">Um eins nach unten verschieben</msg>
<msg key="Text_type">Format</msg>
<msg key="Title">Titel:</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" locale="el_GR" charset="utf-8">
<msg key="A">Α:</msg>
<msg key="Add_QA_for_faq_name">Προσθήκη Q&amp;amp;A για %faq_name%</msg>
<msg key="administer">διαχείριση</msg>
<msg key="All_QA">Όλες Q&amp;amp;A </msg>
<msg key="Answer">Απάντηση</msg>
<msg key="Answer_text_in_html">Κείμενο απάντησης σε html</msg>
<msg key="Back_to_current_FAQ">Επιστροφή σε </msg>
<msg key="Back_to_FAQs">Επιστροφή στις συχνές ερωτήσεις και απαντήσεις</msg>
<msg key="Categorize_Q">Κατηγοριοποίηση ερώτησης</msg>
<msg key="Change_settings">Αλλαγή ρυθμίσεων</msg>
<msg key="Configure">Ρύθμιση</msg>
<msg key="Configure_FAQ_Preferences">Ρύθμιση προτιμήσεων</msg>
<msg key="Create_a_new_FAQ">Δημιουργία νέων συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="Create_an_FAQ">Δημιουργία συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="Create_FAQ">Δημιουργία συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="Create_New_QA">Δημιουργία νέου Q&amp;amp;A
</msg>
<msg key="Create_new_QA">Δημιουργία νέου Q&amp;amp;A
</msg>
<msg key="Create_QA">Δημιουργία Q&amp;amp;A
</msg>
<msg key="Delete">Διαγραφή</msg>
<msg key="delete">διαγραφή</msg>
<msg key="Delete_FAQ">Διαγραφή συχνών ερωτήσεων και απαντήσεων:</msg>
<msg key="Delete_This_QA">Διαγραφή αυτού του Q&amp;amp;A </msg>
<msg key="Disable">Απενεργοποίηση</msg>
<msg key="Disable_FAQ">Απενεργοποίηση συχνών ερωτήσεων και απαντήσεων:</msg>
<msg key="Edit">Επεξεργασία</msg>
<msg key="edit">επεξεργασία</msg>
<msg key="Edit_an_FAQ">Επεξεργασία συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="Edit_FAQ">Επεξεργασία συχνών ερωτήσεων και απαντήσεων:</msg>
<msg key="Enable">Ενεργοποίηση</msg>
<msg key="Enable_Categories">Ενεργοποίηση κατηγοριών</msg>
<msg key="Enable_FAQ">Ενεργοποίηση συχνών ερωτήσεων και απαντήσεων:</msg>
<msg key="Enable_WYSIWYG">Ενεργοποίηση WYSIWYG</msg>
<msg key="FAQ_Admin">Διαχείριση συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="faq_name_Admin">Διαχείριση %faq_name%</msg>
<msg key="FAQs">Συχνές ερωτήσεις και απαντήσεις</msg>
<msg key="HTML">HTML</msg>
<msg key="insert_after">εισαγωγή μετά</msg>
<msg key="Jump_to_Answer">Μετάβαση στην απάντηση</msg>
<msg key="lt_Are_you_sure_you_want">Είστε σίγουροι ότι θέλετε να διαγράψετε αυτές τις συχνές ερωτήσεις και απαντήσεις;</msg>
<msg key="lt_Are_you_sure_you_want_1">Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ερώτηση;</msg>
<msg key="lt_Comments_on_this_faq">Σχόλια για αυτές τις συχνές ερωτήσεις και απαντήσεις:</msg>
<msg key="lt_no_FAQs">Δεν υπάρχουν συχνές ερωτήσεις και απαντήσεις διαθέσιμες.</msg>
<msg key="lt_no_questions">Δεν υπάρχουν ερωτήσεις διαθέσιμες.</msg>
<msg key="Name">Όνομα:</msg>
<msg key="New">Νέο</msg>
<msg key="No">Όχι</msg>
<msg key="One_Question">Μια ερώτηση</msg>
<msg key="Plain">Απλό</msg>
<msg key="Preformatted">Ορισμένη διάταξη </msg>
<msg key="pretty_name">Συχνές ερωτήσεις και απαντήσεις</msg>
<msg key="preview">προεπισκόπιση</msg>
<msg key="Q">Ε:</msg>
<msg key="QA_On_Separate_Pages">Q&amp;amp;A σε ξεχωριστές σελίδες;</msg>
<msg key="QA_on_Separate_Pages">Q&amp;amp;A σε ξεχωριστές σελίδες;</msg>
<msg key="Question">Ερώτηση</msg>
<msg key="Question_text_in_html">Κείμενο ερώτησης σε html</msg>
<msg key="Set_Category_Mode">Ορισμός κατάστασης κατηγορίας</msg>
<msg key="Site_wide_categories">Κατηγορίες ιστοχώρου</msg>
<msg key="swap_with_next">εναλλαγή με επόμενο</msg>
<msg key="Text_type">Τύπος κειμένου;</msg>
<msg key="Title">Τίτλος:</msg>
<msg key="Update_FAQ">Ανανέωση συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="Update_This_QA">Ανανέωση του Q&amp;amp;A</msg>
<msg key="View">Προβολή</msg>
<msg key="View_All_FAQs">Προβολή όλων των συχνών ερωτήσεων και απαντήσεων</msg>
<msg key="View_in_Category">Προβολή ερωτήσεων κατηγοριοποιημένων ως προς</msg>
<msg key="View_QA">Προβολή ερώτησης και απάντησης</msg>
<msg key="Yes">Ναι</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="en_AU" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="en_AU" charset="ISO-8859-1">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">Add Q&amp;A for %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="en_US" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="en_US" charset="ISO-8859-1">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">Add Q&amp;A for %faq_name%</msg>
<msg key="Add_QA_for_faq_name">Add Q&amp;amp;A for %faq_name%</msg>
<msg key="administer">administer</msg>
<msg key="All_QA">All Q&amp;amp;A</msg>
<msg key="Answer">Answer</msg>
<msg key="Answer_text_in_html">Answer text in html</msg>
<msg key="Back_to_current_FAQ">Back to</msg>
<msg key="Back_to_FAQs">Back to FAQs</msg>
<msg key="Categorize_Q">Categorize Question</msg>
<msg key="Change_settings">Change settings</msg>
<msg key="Configure">Configure</msg>
<msg key="Configure_FAQ_Preferences">Configure FAQ Preferences</msg>
<msg key="Create_a_new_FAQ">Create a new FAQ</msg>
<msg key="Create_an_FAQ">Create an FAQ</msg>
<msg key="Create_FAQ">Create FAQ</msg>
<msg key="Create_New_QA">Create New Q&amp;A</msg>
<msg key="Create_new_QA">Create new Q&amp;A</msg>
<msg key="Create_QA">Create Q&amp;A</msg>
<msg key="Create_New_QA">Create New Q&amp;amp;A</msg>
<msg key="Create_new_QA">Create new Q&amp;amp;A</msg>
<msg key="Create_QA">Create Q&amp;amp;A</msg>
<msg key="Delete">Delete</msg>
<msg key="delete">delete</msg>
<msg key="Delete_This_QA">Delete This Q&amp;A</msg>
<msg key="Delete_FAQ">Delete FAQ:</msg>
<msg key="Delete_This_QA">Delete This Q&amp;amp;A</msg>
<msg key="Disable">Disable</msg>
<msg key="Disable_FAQ">Disable FAQ:</msg>
<msg key="Edit">Edit</msg>
<msg key="edit">edit</msg>
<msg key="Edit_an_FAQ">Edit an FAQ</msg>
<msg key="FAQ_Admin">FAQ Admin</msg>
<msg key="Edit_FAQ">Edit FAQ:</msg>
<msg key="Enable">Enable</msg>
<msg key="Enable_Categories">Enable Categories</msg>
<msg key="Enable_FAQ">Enable FAQ:</msg>
<msg key="Enable_WYSIWYG">Enable WYSIWYG</msg>
<msg key="FAQ_Admin">FAQ Administration</msg>
<msg key="faq_name_Admin">%faq_name% Admin</msg>
<msg key="FAQs">FAQs</msg>
<msg key="HTML">HTML</msg>
<msg key="insert_after">insert after</msg>
<msg key="Jump_to_Answer">Jump down to answer</msg>
<msg key="lt_Are_you_sure_you_want">Are you sure you want to delete this faq?</msg>
<msg key="lt_Are_you_sure_you_want_1">Are you sure you want to delete this question?</msg>
<msg key="lt_no_FAQs">There are no FAQs available.</msg>
......@@ -33,16 +49,23 @@
<msg key="One_Question">One Question</msg>
<msg key="Plain">Plain</msg>
<msg key="Preformatted">Preformatted</msg>
<msg key="pretty_name">FAQ</msg>
<msg key="preview">preview</msg>
<msg key="Q">Q:</msg>
<msg key="QA_On_Separate_Pages">Q&amp;A On Separate Pages?</msg>
<msg key="QA_on_Separate_Pages">Q&amp;A on Separate Pages?</msg>
<msg key="QA_On_Separate_Pages">Q&amp;amp;A On Separate Pages?</msg>
<msg key="QA_on_Separate_Pages">Q&amp;amp;A on Separate Pages?</msg>
<msg key="Question">Question</msg>
<msg key="Question_text_in_html">Question text in html</msg>
<msg key="Set_Category_Mode">Set Category Mode</msg>
<msg key="Site_wide_categories">Site wide categories</msg>
<msg key="swap_with_next">swap with next</msg>
<msg key="Text_type">Text type?</msg>
<msg key="Title">Title:</msg>
<msg key="Update_FAQ">Update FAQ</msg>
<msg key="Update_This_QA">Update This Q&amp;A</msg>
<msg key="Update_This_QA">Update This Q&amp;amp;A</msg>
<msg key="View">View</msg>
<msg key="View_All_FAQs">View All FAQs</msg>
<msg key="View_in_Category">View questions categorized as</msg>
<msg key="View_QA">View question and answer</msg>
<msg key="Yes">Yes</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="es_CO" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="es_CO" charset="ISO-8859-1">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">Aadir Pregunta y Respuesta a %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="es_ES" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="es_ES" charset="ISO-8859-1">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">Aadir Pregunta y Respuesta a %faq_name%</msg>
<msg key="administer">administrar</msg>
<msg key="All_QA">Todas las preguntas y respuestas</msg>
<msg key="Answer">Respuesta</msg>
<msg key="Answer_text_in_html">Texto de la respuesta en HTML</msg>
<msg key="Back_to_current_FAQ">Volver a</msg>
<msg key="Back_to_FAQs">Volver a Preguntas ms Frecuentes</msg>
<msg key="Categorize_Q">Categorizar la pregunta</msg>
<msg key="Change_settings">cambiar opciones</msg>
<msg key="Configure">Configurar</msg>
<msg key="Configure_FAQ_Preferences">Configurar FAQ</msg>
<msg key="Create_a_new_FAQ">Crear Preguntas ms Frecuentes</msg>
<msg key="Create_an_FAQ">Crear Preguntas ms Frecuentes</msg>
<msg key="Create_FAQ">Crear Preguntas ms Frecuentes</msg>
......@@ -14,15 +21,24 @@
<msg key="Create_QA">Aadir Preguntas y Respuestas</msg>
<msg key="Delete">Borrar</msg>
<msg key="delete">borrar</msg>
<msg key="Delete_FAQ">Borrar FAQ:</msg>
<msg key="Delete_This_QA">Borrar Pregunta y Respuesta</msg>
<msg key="Disable">Desactivar</msg>
<msg key="Disable_FAQ">Desactivar FAQ:</msg>
<msg key="Edit">Editar</msg>
<msg key="edit">editar</msg>
<msg key="Edit_an_FAQ">Editar Preguntas ms Frecuentes</msg>
<msg key="Edit_FAQ">Editar FAQ:</msg>
<msg key="Enable">Activar</msg>
<msg key="Enable_Categories">Activar Categoras</msg>
<msg key="Enable_FAQ">Activar FAQ:</msg>
<msg key="Enable_WYSIWYG">Activar WYSIWYG</msg>
<msg key="FAQ_Admin">Administracin de Preguntas ms Frecuentes?</msg>
<msg key="faq_name_Admin">Administrar %faq_name%</msg>
<msg key="FAQs">Preguntas ms Frecuentes</msg>
<msg key="HTML">HTML</msg>
<msg key="insert_after">Insertar </msg>
<msg key="Jump_to_Answer">Saltar a la respuesta</msg>
<msg key="lt_Are_you_sure_you_want">Est seguro de borrar Preguntas ms Frecuentes?</msg>
<msg key="lt_Are_you_sure_you_want_1">Est seguro de borrar esta pregunta?</msg>
<msg key="lt_no_FAQs">No hay Preguntas ms Frecuentes disponibles.</msg>
......@@ -33,16 +49,23 @@
<msg key="One_Question">Una pregunta</msg>
<msg key="Plain">Plano</msg>
<msg key="Preformatted">Preformateado</msg>
<msg key="pretty_name">FAQ</msg>
<msg key="preview">previsualizacin</msg>
<msg key="Q">P:</msg>
<msg key="QA_On_Separate_Pages">P&amp;R en pginas separadas?</msg>
<msg key="QA_on_Separate_Pages">P&amp;R en pginas separadas?</msg>
<msg key="Question">Pregunta</msg>
<msg key="Question_text_in_html">Texto de la pregunta en HTML</msg>
<msg key="Set_Category_Mode">Activar Modo Categorizado</msg>
<msg key="Site_wide_categories">Categoras generales</msg>
<msg key="swap_with_next">intercambiar con la prxima</msg>
<msg key="Text_type">Tipo de texto?</msg>
<msg key="Title">Ttulo:</msg>
<msg key="Update_FAQ">Actualizar FAQ</msg>
<msg key="Update_This_QA">Actualizar esta P&amp;R</msg>
<msg key="View">Vista</msg>
<msg key="View_All_FAQs">Ver todos los FAQs</msg>
<msg key="View_in_Category">Ver preguntas categorizadas como</msg>
<msg key="View_QA">Ver preguntas y respuestas</msg>
<msg key="Yes">S</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="es_GT" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="es_GT" charset="ISO-8859-1">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">Aadir Pregunta y Respuesta a %faq_name%</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="fi_FI" charset="utf-8">
<message_catalog package_key="faq" locale="fi_FI" charset="utf-8">
<msg key="A">V:</msg>
<msg key="Add_QA_for_faq_name">Lisää K&amp;V faqille %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="fr_FR" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="fr_FR" charset="ISO-8859-1">
<msg key="A">R:</msg>
<msg key="administer">administrer</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="gl_ES" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="gl_ES" charset="ISO-8859-1">
<msg key="A">R:</msg>
<msg key="Add_QA_for_faq_name">Engadir PeR para %faq_name%</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" locale="hi_IN" charset="utf-8">
<msg key="A">A:</msg>
<msg key="Add_QA_for_faq_name">%faq_name% के लिए Q&amp;A का जोड्ना </msg>
<msg key="administer">प्रशासन करना </msg>
<msg key="Answer">जवाब </msg>
<msg key="Back_to_FAQs">FAQs मे पीछे जाना </msg>
<msg key="Create_a_new_FAQ">नया FAQ स्रष्टि करना </msg>
<msg key="Create_an_FAQ">FAQ स्रष्टि करना </msg>
<msg key="Create_FAQ">FAQ स्रष्टि करना </msg>
<msg key="Create_New_QA">नया Q&amp;A स्रष्टि करना </msg>
<msg key="Create_new_QA">नया Q&amp;A स्रष्टि करना </msg>
<msg key="Create_QA">Q&amp;A स्रष्टि करना </msg>
<msg key="Delete">मिटाना </msg>
<msg key="delete">मिटाना </msg>
<msg key="Delete_This_QA">एस Q&amp;A को मिटाना</msg>
<msg key="Edit">बदलना </msg>
<msg key="edit">बदलना </msg>
<msg key="Edit_an_FAQ">एस Q&amp;A को बदलना </msg>
<msg key="FAQ_Admin">FAQ प्रशासन</msg>
<msg key="faq_name_Admin">%faq_name% प्रशासन </msg>
<msg key="FAQs">FAQs</msg>
<msg key="HTML">HTML</msg>
<msg key="insert_after">बाद मे शामिल करना </msg>
<msg key="lt_Are_you_sure_you_want">क्या तुम निशचयी रूप से एस FAQ को मिटाना चाहते हो। </msg>
<msg key="lt_Are_you_sure_you_want_1">क्या तुम निशचयी रूप से एस सवाल को मिटाना चाहते हो।</msg>
<msg key="lt_no_FAQs">कोइ भी FAQs उपलब्ध नही है। </msg>
<msg key="lt_no_questions">कोइ भी सवाल उपलब्ध नही है। </msg>
<msg key="Name">नाम:</msg>
<msg key="New">नया </msg>
<msg key="No">नही </msg>
<msg key="One_Question">एक सवाल</msg>
<msg key="Plain">साधारण </msg>
<msg key="Preformatted">पूर्व निर्धारण</msg>
<msg key="preview">पूर्वदर्शन </msg>
<msg key="Q">Q:</msg>
<msg key="QA_On_Separate_Pages">Q&amp;A अलग प्रष्ठ मे? </msg>
<msg key="QA_on_Separate_Pages">Q&amp;A अलग प्रष्ठ मे?</msg>
<msg key="Question">सवाल</msg>
<msg key="swap_with_next">उसके साथ बदलना </msg>
<msg key="Text_type">पाठय प्रकार ?</msg>
<msg key="Title">उपाधि: </msg>
<msg key="Update_FAQ">उपगेत FAQ</msg>
<msg key="Update_This_QA">यह Q&amp;A का उपगेत </msg>
<msg key="View_All_FAQs">सभी FAQs को देखना </msg>
<msg key="Yes">हा </msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="it_IT" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="it_IT" charset="ISO-8859-1">
<msg key="A">R:</msg>
<msg key="Add_QA_for_faq_name">Aggiungi una Domanda & Risposta a %faq_name%</msg>
<msg key="Add_QA_for_faq_name">Aggiungi una Domanda &amp; Risposta a %faq_name%</msg>
<msg key="administer">amministra</msg>
<msg key="Answer">Risposta</msg>
<msg key="Back_to_FAQs">Torna alle FAQ</msg>
<msg key="Create_a_new_FAQ">Crea una nuova FAQ</msg>
<msg key="Create_an_FAQ">Crea una FAQ</msg>
<msg key="Create_FAQ">Crea FAQ</msg>
<msg key="Create_New_QA">Crea nuove Domanda & Risposta</msg>
<msg key="Create_new_QA">Crea una nuova Domanda & Risposta</msg>
<msg key="Create_QA">Crea Domanda & Risposta</msg>
<msg key="Create_New_QA">Crea nuove Domanda &amp; Risposta</msg>
<msg key="Create_new_QA">Crea una nuova Domanda &amp; Risposta</msg>
<msg key="Create_QA">Crea Domanda &amp; Risposta</msg>
<msg key="Delete">Cancella</msg>
<msg key="delete">cancella</msg>
<msg key="Delete_This_QA">Cancella questa Domanda & Risposta</msg>
<msg key="Delete_This_QA">Cancella questa Domanda &amp; Risposta</msg>
<msg key="Edit">Modifica</msg>
<msg key="edit">modifica</msg>
<msg key="Edit_an_FAQ">Modifica una FAQ</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ja_JP" charset="utf-8">
<message_catalog package_key="faq" locale="ja_JP" charset="utf-8">
<msg key="Delete">削除</msg>
<msg key="delete">削除</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ko_KR" charset="utf-8">
<message_catalog package_key="faq" locale="ko_KR" charset="utf-8">
<msg key="A">응답:</msg>
<msg key="Add_QA_for_faq_name">%faq_name%에 대한 질의응답 추가</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ms_MY" charset="utf-8">
<message_catalog package_key="faq" locale="ms_MY" charset="utf-8">
<msg key="A">J:</msg>
<msg key="Add_QA_for_faq_name">Tambah Soal-Jawab untuk %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="nl_NL" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="nl_NL" charset="ISO-8859-1">
<msg key="A">Een:</msg>
<msg key="Add_QA_for_faq_name">Vraag&amp;Antwoord voor %faq_name% toevoegen</msg>
<msg key="administer">beheren</msg>
<msg key="All_QA">Alle vragen &amp; antwoorden</msg>
<msg key="Answer">Antwoord</msg>
<msg key="Answer_text_in_html">Antwoordtekst in html</msg>
<msg key="Back_to_FAQs">Terug naar veelgestelde vragen</msg>
<msg key="Change_settings">Verander instellingen</msg>
<msg key="Configure">Configureer</msg>
<msg key="Create_a_new_FAQ">Een nieuwe veelgestelde vraag (faq) aanmaken</msg>
<msg key="Create_an_FAQ">Een veelgestelde vraag (faq) aanmaken</msg>
<msg key="Create_FAQ">Veelgestelde vraag (faq) aanmaken</msg>
......@@ -18,6 +22,8 @@
<msg key="Edit">Bewerken</msg>
<msg key="edit">bewerken</msg>
<msg key="Edit_an_FAQ">Een veelgestelde vraag bewerken</msg>
<msg key="Enable_Categories">Schakel categorin in</msg>
<msg key="Enable_WYSIWYG">Schakel WYSIWYG in</msg>
<msg key="FAQ_Admin">Veelgestelde vragen (faq) beheren</msg>
<msg key="faq_name_Admin">%faq_name% beheren</msg>
<msg key="FAQs">Veelgestelde vragen (faq)</msg>
......@@ -32,12 +38,15 @@
<msg key="No">Nee</msg>
<msg key="One_Question">En vraag</msg>
<msg key="Plain">Zonder opmaak</msg>
<msg key="Preformatted">Standaard opmaak</msg>
<msg key="Preformatted">Vooraf opgemaakt</msg>
<msg key="preview">voorvertoning</msg>
<msg key="Q">V:</msg>
<msg key="QA_On_Separate_Pages">Vraag&amp;Antwoord op verschillende pagina's?</msg>
<msg key="QA_on_Separate_Pages">Vraag&amp;Antwoord op verschillende pagina's?</msg>
<msg key="Question">Vraag</msg>
<msg key="Question_text_in_html">Vraagtekst in html</msg>
<msg key="Set_Category_Mode">Stel categoriemode in</msg>
<msg key="Site_wide_categories">Sitebrede categorin</msg>
<msg key="swap_with_next">wisselen met de volgende</msg>
<msg key="Text_type">Teksttype?</msg>
<msg key="Title">Titel:</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" locale="nl_ZA" charset="ISO-8859-1">
<msg key="A">'n:</msg>
<msg key="Add_QA_for_faq_name">Voeg &quot;Vraag &amp; Antwoord&quot; vir %faq_name% toe</msg>
<msg key="administer">beheer</msg>
<msg key="All_QA">Alle vrae &amp; antwoorde</msg>
<msg key="Answer">Antwoord</msg>
<msg key="Answer_text_in_html">Antwoordteks in html</msg>
<msg key="Back_to_FAQs">Terug naar veelgestelde vrae</msg>
<msg key="Change_settings">Verander instellinge</msg>
<msg key="Configure">Configureer</msg>
<msg key="Create_a_new_FAQ">Maak 'n nuwe veelgestelde vraag (faq) aan</msg>
<msg key="Create_an_FAQ">Maak 'n veelgestelde vraag (faq) aan</msg>
<msg key="Create_FAQ">Maak Veelgestelde vraag (faq) aan</msg>
<msg key="Create_New_QA">Maak nuwe Vraag&amp;Antwoord aan</msg>
<msg key="Create_new_QA">Maak nuwe Vraag&amp;Antwoord aan</msg>
<msg key="Create_QA">Maak vraag&amp;Antwoord aan</msg>
<msg key="Delete">Verwyder</msg>
<msg key="delete">verwyder</msg>
<msg key="Delete_This_QA">Verwyder hierdie Vraag&amp;Antwoord</msg>
<msg key="Edit">Bewerk</msg>
<msg key="edit">bewerk</msg>
<msg key="Edit_an_FAQ">Wysig 'n veelgestelde vraag</msg>
<msg key="Enable_Categories">Skakel kategori in</msg>
<msg key="Enable_WYSIWYG">Skakel WYSIWYG in</msg>
<msg key="FAQ_Admin">Beheer veelgestelde vrae (faq's)</msg>
<msg key="faq_name_Admin">beheer %faq_name%</msg>
<msg key="FAQs">Veelgestelde vrae (faq)</msg>
<msg key="HTML">HTML</msg>
<msg key="insert_after">voeg in na</msg>
<msg key="lt_Are_you_sure_you_want">Wil u hierdie veelgestelde vraag eg verwyder?</msg>
<msg key="lt_Are_you_sure_you_want_1">Wil u hierdie vraag eg verwyder?</msg>
<msg key="lt_no_FAQs">Daar is geen veelgestelde vrae beskikbaar nie.</msg>
<msg key="lt_no_questions">Daar is geen vragen beschikbaar nie</msg>
<msg key="Name">Naam:</msg>
<msg key="New">Nuut</msg>
<msg key="No">Nee</msg>
<msg key="One_Question">Een vraag</msg>
<msg key="Plain">Sonder opmaak</msg>
<msg key="Preformatted">Vooraf opgemaak</msg>
<msg key="preview">voorskou</msg>
<msg key="Q">V:</msg>
<msg key="QA_On_Separate_Pages">Vraag&amp;Antwoord op verskillende bladsye?</msg>
<msg key="QA_on_Separate_Pages">Vraag&amp;Antwoord op verskillende bladsye?</msg>
<msg key="Question">Vraag</msg>
<msg key="Question_text_in_html">Vraagteks in html</msg>
<msg key="Set_Category_Mode">Stel categoriemode in</msg>
<msg key="Site_wide_categories">Werfbre categori</msg>
<msg key="swap_with_next">wissel met volgende</msg>
<msg key="Text_type">Tekstipe?</msg>
<msg key="Title">Titel:</msg>
<msg key="Update_FAQ">Dateer veelgestelde vraag op</msg>
<msg key="Update_This_QA">Dateer hierdie Vraag&amp;Antwoord op</msg>
<msg key="View_All_FAQs">Toon alle veelgestelde vrage (faq's)</msg>
<msg key="Yes">Ja</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="nn_NO" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="nn_NO" charset="ISO-8859-1">
<msg key="A">Sv:</msg>
<msg key="Add_QA_for_faq_name">Legg inn sprsml/svar for %faq_name%</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="no_NO" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="no_NO" charset="ISO-8859-1">
<msg key="A">Sv:</msg>
<msg key="Add_QA_for_faq_name">Legg inn Sprsml/Svar (FAQ) for %faq_name% </msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="pl_PL" charset="utf-8">
<message_catalog package_key="faq" locale="pl_PL" charset="utf-8">
<msg key="A">O:</msg>
<msg key="Add_QA_for_faq_name">Dodaj P&amp;O do %faq_name%</msg>
<msg key="administer">administruj</msg>
<msg key="All_QA">Wszystkie P&amp;O</msg>
<msg key="Answer">Odpowiedź</msg>
<msg key="Answer_text_in_html">Tekst odpowiedzi w html</msg>
<msg key="Back_to_FAQs">Powrót do CZaP</msg>
<msg key="Change_settings">Zmień ustawienia</msg>
<msg key="Configure">Konfiguruj</msg>
<msg key="Create_a_new_FAQ">Utwórz nową CZaPę</msg>
<msg key="Create_an_FAQ">Utwórz nową CZaPę</msg>
<msg key="Create_FAQ">Utwórz CZaPę</msg>
......@@ -18,6 +22,8 @@
<msg key="Edit">Edytuj</msg>
<msg key="edit">edytuj</msg>
<msg key="Edit_an_FAQ">Edytuj CZaPę</msg>
<msg key="Enable_Categories">Włącz Kategorie</msg>
<msg key="Enable_WYSIWYG">Włącz WYSIWYG</msg>
<msg key="FAQ_Admin">Admin CZaP</msg>
<msg key="faq_name_Admin">Admin %faq_name%</msg>
<msg key="FAQs">CZaPy</msg>
......@@ -38,6 +44,8 @@
<msg key="QA_On_Separate_Pages">P&amp;O na oddzielnych stronach?</msg>
<msg key="QA_on_Separate_Pages">P&amp;O na oddzielnych stronach?</msg>
<msg key="Question">Pytanie</msg>
<msg key="Question_text_in_html">Tekst pytania w html</msg>
<msg key="Set_Category_Mode">Ustaw Tryb Kategorii</msg>
<msg key="swap_with_next">zamień z następnym</msg>
<msg key="Text_type">Typ tekstu?</msg>
<msg key="Title">Tytuł:</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="pt_BR" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="pt_BR" charset="ISO-8859-1">
<msg key="A">R:</msg>
<msg key="Add_QA_for_faq_name">Adicione uma Pergunta e uma Resposta (P&amp;A) para %faq_name%</msg>
<msg key="Add_QA_for_faq_name">Adicione uma Pergunta e uma Resposta (P&amp;R) para %faq_name%</msg>
<msg key="administer">administrar</msg>
<msg key="All_QA">Todos Q&amp;A</msg>
<msg key="Answer">Resposta</msg>
<msg key="Answer_text_in_html">Responde texto em HTML</msg>
<msg key="Back_to_FAQs">Voltar para FAQs</msg>
<msg key="Change_settings">Alterar configuraes</msg>
<msg key="Configure">Configurar</msg>
<msg key="Create_a_new_FAQ">Criar uma nova FAQ</msg>
<msg key="Create_an_FAQ">Criar uma FAQ</msg>
<msg key="Create_FAQ">Criar FAQ</msg>
......@@ -18,6 +22,8 @@
<msg key="Edit">Editar</msg>
<msg key="edit">editar</msg>
<msg key="Edit_an_FAQ">Editar uma FAQ</msg>
<msg key="Enable_Categories">Habilitar Categorias</msg>
<msg key="Enable_WYSIWYG">Habilitar WYSIWYG</msg>
<msg key="FAQ_Admin">Administrador da FAQ</msg>
<msg key="faq_name_Admin">Administrador de %faq_name%</msg>
<msg key="FAQs">FAQs</msg>
......@@ -38,6 +44,9 @@
<msg key="QA_On_Separate_Pages">P&amp;R Em Pginas Separadas?</msg>
<msg key="QA_on_Separate_Pages">P&amp;R em Pginas Separadas?</msg>
<msg key="Question">Pergunta</msg>
<msg key="Question_text_in_html">Texto da pergunta em HTML</msg>
<msg key="Set_Category_Mode">Definir Modo de Categoria</msg>
<msg key="Site_wide_categories">Categorias para todo o site</msg>
<msg key="swap_with_next">trocar com prximo</msg>
<msg key="Text_type">Tipo de Texto?</msg>
<msg key="Title">Ttulo</msg>
......
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="pt_PT" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="pt_PT" charset="ISO-8859-1">
<msg key="A">R:</msg>
<msg key="Add_QA_for_faq_name">Adicionar Pergunta e Resposta (P&amp;R) para %faq_name%</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ro_RO" charset="utf-8">
<message_catalog package_key="faq" locale="ro_RO" charset="utf-8">
<msg key="A">R:</msg>
<msg key="Add_QA_for_faq_name">Adaugă Q&amp;A (întrebare şi răspuns) pentru %faq_name% </msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="ru_RU" charset="utf-8">
<message_catalog package_key="faq" locale="ru_RU" charset="utf-8">
<msg key="A">О:</msg>
<msg key="Add_QA_for_faq_name">Добавить Q&amp;A к %faq_name%</msg>
<msg key="administer">администрировать</msg>
<msg key="Add_QA_for_faq_name">Добавить В&amp;О к %faq_name%</msg>
<msg key="administer">Администрировать</msg>
<msg key="All_QA">Все О&amp;В</msg>
<msg key="Answer">Ответ</msg>
<msg key="Answer_text_in_html">Текст ответа в html</msg>
<msg key="Back_to_current_FAQ">Вернуться к</msg>
<msg key="Back_to_FAQs">Вернуться в ЧаВо</msg>
<msg key="Categorize_Q">Распределить вопросы по категориям</msg>
<msg key="Change_settings">Изменить настройки</msg>
<msg key="Configure">Настраивать</msg>
<msg key="Configure_FAQ_Preferences">Конфигурировать ЧаВо привелегии</msg>
<msg key="Create_a_new_FAQ">Создать новое ЧаВо</msg>
<msg key="Create_an_FAQ">Сочинить ЧаВо</msg>
<msg key="Create_an_FAQ">Создать ЧаВо</msg>
<msg key="Create_FAQ">Создать ЧаВо</msg>
<msg key="Create_New_QA">Создать новую пару вопросов и ответов (Q&amp;A)</msg>
<msg key="Create_new_QA">Создать новую пару вопросов и ответов (Q&amp;A)</msg>
<msg key="Create_QA">Создать Q&amp;A</msg>
<msg key="Create_QA">Создать В&amp;О</msg>
<msg key="Delete">Удалить</msg>
<msg key="delete">удалить</msg>
<msg key="Delete_This_QA">Удалить этот Q&amp;A</msg>
<msg key="Delete_FAQ">Удалить ЧаВо:</msg>
<msg key="Delete_This_QA">Удалить этот В&amp;О</msg>
<msg key="Disable">Отключить</msg>
<msg key="Disable_FAQ">Отключить ЧаВо:</msg>
<msg key="Edit">Редактировать</msg>
<msg key="edit">редактировать</msg>
<msg key="Edit_an_FAQ">Редактировать ЧаВо</msg>
<msg key="Edit_FAQ">Редактировать ЧаВо:</msg>
<msg key="Enable">Включить</msg>
<msg key="Enable_Categories">Включить категории</msg>
<msg key="Enable_FAQ">Включить ЧаВо:</msg>
<msg key="Enable_WYSIWYG">Включить WYSIWYG</msg>
<msg key="FAQ_Admin">Администрация ЧаВо</msg>
<msg key="faq_name_Admin">Администрация %faq_name%</msg>
<msg key="FAQs">ЧаВы</msg>
<msg key="HTML">HTML</msg>
<msg key="insert_after">добавить после</msg>
<msg key="lt_Are_you_sure_you_want">Вы уверены что вы хотите удалить это ЧаВо?</msg>
<msg key="lt_Are_you_sure_you_want_1">Вы уверены что вы хотите удалить этот вопрос?</msg>
<msg key="insert_after">вставить после</msg>
<msg key="Jump_to_Answer">Перейти вниз к ответу</msg>
<msg key="lt_Are_you_sure_you_want">Вы уверены, что вы хотите удалить этот ЧаВо?</msg>
<msg key="lt_Are_you_sure_you_want_1">Вы уверены, что вы хотите удалить этот вопрос?</msg>
<msg key="lt_no_FAQs">ЧаВо отсутствует.</msg>
<msg key="lt_no_questions">Нет вопросов.</msg>
<msg key="Name">Имя:</msg>
<msg key="New">Новое</msg>
<msg key="New">Новый</msg>
<msg key="No">Нет</msg>
<msg key="One_Question">Один Вопрос</msg>
<msg key="Plain">Просто текст</msg>
<msg key="Preformatted">Форматированный текст</msg>
<msg key="preview">показать</msg>
<msg key="One_Question">Один вопрос</msg>
<msg key="Plain">Текст без разметки</msg>
<msg key="Preformatted">Ранее форматированный текст</msg>
<msg key="pretty_name">ЧаВо</msg>
<msg key="preview">предварительный просмотр</msg>
<msg key="Q">В:</msg>
<msg key="QA_On_Separate_Pages">Вопросы и Ответы на разных страницах?</msg>
<msg key="QA_on_Separate_Pages">Вопросы и Ответы на разных страницах?</msg>
<msg key="Question">Вопрос</msg>
<msg key="Question_text_in_html">Текст вопроса в html</msg>
<msg key="Set_Category_Mode">Установить режим категории</msg>
<msg key="Site_wide_categories">Все категории</msg>
<msg key="swap_with_next">поменять местами со следующим</msg>
<msg key="Text_type">Текст...</msg>
<msg key="Text_type">Тип текста?</msg>
<msg key="Title">Название:</msg>
<msg key="Update_FAQ">Обновить ЧаВо</msg>
<msg key="Update_This_QA">Обновить этот Q&amp;A</msg>
<msg key="View">Просмотреть</msg>
<msg key="View_All_FAQs">Показать все ЧаВы</msg>
<msg key="View_in_Category">Просмотреть вопросы,отнесенные к категории</msg>
<msg key="View_QA">Просмотреть вопрос и ответ</msg>
<msg key="Yes">Да</msg>
</message_catalog>
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" locale="sh_HR" charset="utf-8">
<msg key="delete">obrisi</msg>
</message_catalog>
<?xml version="1.0" encoding="ISO-8859-1"?>
<message_catalog package_key="faq" package_version="4.7" locale="sv_SE" charset="ISO-8859-1">
<message_catalog package_key="faq" locale="sv_SE" charset="ISO-8859-1">
<msg key="A">Svar:</msg>
<msg key="Add_QA_for_faq_name">Lgg till frgor och svar i %faq_name%</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="tr_TR" charset="utf-8">
<message_catalog package_key="faq" locale="tr_TR" charset="utf-8">
<msg key="A">C:</msg>
<msg key="administer">yönet</msg>
......
<?xml version="1.0" encoding="utf-8"?>
<message_catalog package_key="faq" package_version="4.7" locale="zh_CN" charset="utf-8">
<message_catalog package_key="faq" locale="zh_CN" charset="utf-8">
<msg key="A">问题</msg>
<msg key="A">解答</msg>
<msg key="Add_QA_for_faq_name">向%faq_name%添加问题与解答</msg>
<msg key="administer">管理</msg>
<msg key="Answer">解答</msg>
......@@ -28,21 +28,21 @@
<msg key="lt_no_FAQs">没有FAQ。</msg>
<msg key="lt_no_questions">没有问题。</msg>
<msg key="Name">名称:</msg>
<msg key="New"></msg>
<msg key="No">不是</msg>
<msg key="New"></msg>
<msg key="No"></msg>
<msg key="One_Question">一个问题</msg>
<msg key="Plain">普通的</msg>
<msg key="Preformatted">预格式化的</msg>
<msg key="preview">预览</msg>
<msg key="Q">解答</msg>
<msg key="Q">问题</msg>
<msg key="QA_On_Separate_Pages">问题与解答分页显示吗?</msg>
<msg key="QA_on_Separate_Pages">问题与解答分页显示吗?</msg>
<msg key="Question">问题</msg>
<msg key="swap_with_next">同下一个交换</msg>
<msg key="swap_with_next">下移</msg>
<msg key="Text_type">文本类型?</msg>
<msg key="Title">标题:</msg>
<msg key="Update_FAQ">更新FAQ</msg>
<msg key="Update_This_QA">更新此问题与解答</msg>
<msg key="View_All_FAQs">浏览所有FAQ</msg>
<msg key="View_All_FAQs">浏览全部FAQ</msg>
<msg key="Yes"></msg>
</message_catalog>
......@@ -7,21 +7,32 @@
<initial-install-p>f</initial-install-p>
<singleton-p>f</singleton-p>
<version name="4.7.3" url="http://openacs.org/repository/download/apm/faq-4.7.3.apm">
<version name="5.9.0d1" url="http://openacs.org/repository/download/apm/faq-5.9.0d1.apm">
<owner url="mailto:mazloumi@uni-mannheim.de">Nima Mazloumi</owner>
<owner url="mailto:jennie@ybos.net">Jennie Kim Housman</owner>
<owner url="mailto:wirth@ybos.net">Elizabeth Wirth</owner>
<summary>Manage simple Question and Answer style FAQs</summary>
<release-date>2003-11-10</release-date>
<maturity>2</maturity>
<summary>Manage simple and categorized Question and Answer style FAQs with WYSIWYG and notification functionalities.</summary>
<release-date>2007-07-11</release-date>
<vendor url="http://ybos.net">Ybos Corporation</vendor>
<description format="text/html">Handles frequently asked questions Q and A presentation. Can be one Q and A per page or all presented flat. Straightforward application with room for improvement.</description>
<provides url="faq" version="4.7.3"/>
<requires url="acs-kernel" version="5.0.0b4"/>
<description format="text/html">Handles frequently asked questions Q&amp;A presentation. Can be one Q&amp;A per page or all presented flat. Straightforward application with room for improvement. Support for notification as well as WYSIQYG Editor and Categories - both optional. Category trees are displayed flat. No multiple filters.</description>
<maturity>2</maturity>
<package_instance_name>#faq.FAQs#</package_instance_name>
<provides url="faq" version="5.9.0d1"/>
<requires url="acs-kernel" version="5.8.1"/>
<requires url="categories" version="1.1.2d3"/>
<requires url="notifications" version="5.8.1"/>
<callbacks>
<callback type="after-install" proc="faq::install::package_install"/>
<callback type="before-uninstall" proc="faq::install::package_uninstall"/>
<callback type="before-upgrade" proc="faq::install::package_upgrade"/>
</callbacks>
<parameters>
<!-- No version parameters -->
<parameter datatype="string" min_n_values="1" max_n_values="1" name="CategoryContainer" default="package_id" description="Should the category container for the faqs be &quot;subsite_id&quot; or &quot;package_id&quot;."/>
<parameter datatype="number" min_n_values="1" max_n_values="1" name="EnableCategoriesP" default="0" description="Should categories be enabled? Default is 0 (false)."/>
<parameter datatype="number" min_n_values="1" max_n_values="1" name="GeneralCommentsP" default="1" description="Attach comments to FAQ (value = 1). Prevent comments (value = 0)."/>
<parameter datatype="string" min_n_values="1" max_n_values="1" name="UseWysiwygP" default="t" description="Should we allow users to use a WYSIWYG editor to make their entries? Defaults to f (false)."/>
</parameters>
</version>
......
<?xml version="1.0"?>
<queryset>
<rdbms><type>postgresql</type><version>7.1</version></rdbms>
<rdbms><type>oracle</type><version>8.1.6</version></rdbms>
<fullquery name="create_faq">
<querytext>
......
if { ![exists_and_not_null mode] } {
if { (![info exists mode] || $mode eq "") } {
set mode "edit"
}
ad_form -name faq_add_edit -mode $mode -action "[ad_conn package_url]admin/faq-add-edit" -form {
faq_id:key
{faq_name:text(text) {label "FAQ Name"} {html { size 50 }}}
{separate_p:text(select) {label "Each Q&A on separate page"} { options {{No f} {Yes t}} } }
} -select_query {
select faq_name,separate_p from faqs where faq_id = :faq_id
} -new_data {
set user_id [ad_conn user_id]
set creation_ip [ad_conn host]
set package_id [ad_conn package_id]
set faq_id [db_exec_plsql create_faq {}]
} -edit_data {
db_dml faq_edit {
update faqs
set faq_name = :faq_name,
separate_p = :separate_p
where faq_id = :faq_id
}
} -after_submit {
if { ![exists_and_not_null return_url] } {
set return_url [export_vars -base one-faq { faq_id }]
}
ad_returnredirect $return_url
ad_script_abort
}
ad_form -name faq_add_edit -mode $mode -action "faq-add-edit" -form {
faq_id:key
{faq_name:text(text) {label "#faq.Name#"} {html { size 50 }}}
{separate_p:text(select) {label "#faq.QA_on_Separate_Pages#"} { options {{[_ faq.No] f} {[_ faq.Yes] t}} } }
} -select_query_name get_faq -new_data {
set user_id [ad_conn user_id]
set creation_ip [ad_conn host]
set package_id [ad_conn package_id]
set faq_id [db_exec_plsql create_faq {}]
} -edit_data {
db_dml edit_faq {}
} -after_submit {
if { (![info exists return_url] || $return_url eq "") } {
set return_url [export_vars -base one-faq { faq_id }]
}
ad_returnredirect $return_url
ad_script_abort
}
<?xml version="1.0"?>
<queryset>
<fullquery name="get_faq">
<querytext>
select faq_name, separate_p from faqs where faq_id = :faq_id
</querytext>
</fullquery>
<fullquery name="edit_faq">
<querytext>
update faqs
set faq_name = :faq_name,
separate_p = :separate_p
where faq_id = :faq_id
</querytext>
</fullquery>
</queryset>
-- @jennie.ybos.net
-- @wirth.ybos.net
-- Datamodel create for faq
--
-- @author @jennie.ybos.net,@wirth.ybos.net,openacs port @samir.symphinity.com
--
-- @cvs-id $Id$
--
begin
acs_object_type.create_type (
supertype => 'acs_object',
......@@ -57,209 +60,6 @@ create table faq_q_and_as (
create or replace package faq
as
function new_faq (
faq_id in faqs.faq_id%TYPE default null,
faq_name in faqs.faq_name%TYPE,
separate_p in faqs.separate_p%TYPE default 'f',
object_type in acs_objects.object_type%TYPE default 'faq',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE;
procedure delete_faq (
faq_id in faqs.faq_id%TYPE
);
function new_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE default null,
faq_id in faq_q_and_as.faq_id%TYPE,
question in faq_q_and_as.question%TYPE,
answer in faq_q_and_as.answer%TYPE,
sort_key in faq_q_and_as.sort_key%TYPE,
object_type in acs_objects.object_type%TYPE default 'faq_q_and_a',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE;
procedure delete_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE
);
procedure clone (
old_package_id in apm_packages.package_id%TYPE default NULL,
new_package_id in apm_packages.package_id%TYPE default NULL
);
end faq;
/
show errors
create or replace package body faq
as
function new_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE default null,
faq_id in faq_q_and_as.faq_id%TYPE,
question in faq_q_and_as.question%TYPE,
answer in faq_q_and_as.answer%TYPE,
sort_key in faq_q_and_as.sort_key%TYPE,
object_type in acs_objects.object_type%TYPE default 'faq_q_and_a',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE
is
v_entry_id faq_q_and_as.entry_id%TYPE;
begin
v_entry_id := acs_object.new (
object_id => entry_id,
object_type => object_type,
creation_date => creation_date,
creation_user => creation_user,
creation_ip => creation_ip,
context_id => context_id
);
insert into faq_q_and_as
(entry_id, faq_id, question, answer, sort_key)
values
(v_entry_id, new_q_and_a.faq_id, new_q_and_a.question, new_q_and_a.answer, new_q_and_a.sort_key);
return v_entry_id;
end new_q_and_a;
procedure delete_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE
)
is
begin
delete from faq_q_and_as where entry_id = faq.delete_q_and_a.entry_id;
acs_object.del(entry_id);
end delete_q_and_a;
function new_faq (
faq_id in faqs.faq_id%TYPE default null,
faq_name in faqs.faq_name%TYPE,
separate_p in faqs.separate_p%TYPE default 'f',
object_type in acs_objects.object_type%TYPE default 'faq',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE
is
v_faq_id faqs.faq_id%TYPE;
begin
v_faq_id := acs_object.new (
object_id => faq_id,
object_type => object_type,
creation_date => creation_date,
creation_user => creation_user,
creation_ip => creation_ip,
context_id => context_id
);
insert into faqs
(faq_id, faq_name,separate_p)
values
(v_faq_id, new_faq.faq_name,new_faq.separate_p);
return v_faq_id;
end new_faq;
procedure delete_faq (
faq_id faqs.faq_id%TYPE
)
is
begin
-- Because q_and_a's are objects, we need to
-- loop through a list of them, and call an explicit
-- delete function for each one. (i.e. each
-- entry_id)
declare cursor q_and_a_cur is
select entry_id from faq_q_and_as where faq_id = faq.delete_faq.faq_id;
begin
for entry_list in q_and_a_cur
loop
delete_q_and_a(entry_list.entry_id);
end loop;
end;
delete from faqs where faq_id=faq.delete_faq.faq_id;
acs_object.del(faq_id);
end delete_faq;
procedure clone (
old_package_id in apm_packages.package_id%TYPE default null,
new_package_id in apm_packages.package_id%TYPE default null
)
is
v_faq_id faqs.faq_id%TYPE;
v_entry_id faq_q_and_as.entry_id%TYPE;
begin
-- get all the faqs belonging to the old package,
-- and create new faqs for the new package
for one_faq in (select *
from acs_objects o, faqs f
where o.object_id = f.faq_id
and o.context_id = faq.clone.old_package_id)
loop
-- faq is "scoped" by using the acs_objects.context_id
v_faq_id := faq.new_faq (
faq_name => one_faq.faq_name,
separate_p => one_faq.separate_p,
context_id => faq.clone.new_package_id
);
for entry in (select * from faq_q_and_as f
where faq_id = one_faq.faq_id)
loop
-- now (surprise!) copy all the entries of this faq
v_entry_id := faq.new_q_and_a (
context_id => entry.faq_id,
faq_id=> v_faq_id,
question => entry.question,
answer => entry.answer,
sort_key => entry.sort_key
);
end loop;
end loop;
end clone;
end faq;
/
show errors
declare
default_context acs_objects.object_id%TYPE;
registered_users acs_objects.object_id%TYPE;
......@@ -321,3 +121,5 @@ begin
end;
/
@@ faq-package-create.sql
\ No newline at end of file
-- Package create for faq
--
-- @author @jennie.ybos.net,@wirth.ybos.net,openacs port @samir.symphinity.com
--
-- @cvs-id $Id$
--
create or replace package faq
as
function new_faq (
faq_id in faqs.faq_id%TYPE default null,
faq_name in faqs.faq_name%TYPE,
separate_p in faqs.separate_p%TYPE default 'f',
object_type in acs_objects.object_type%TYPE default 'faq',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE;
procedure delete_faq (
faq_id in faqs.faq_id%TYPE
);
function new_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE default null,
faq_id in faq_q_and_as.faq_id%TYPE,
question in faq_q_and_as.question%TYPE,
answer in faq_q_and_as.answer%TYPE,
sort_key in faq_q_and_as.sort_key%TYPE,
object_type in acs_objects.object_type%TYPE default 'faq_q_and_a',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE;
procedure delete_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE
);
procedure clone (
old_package_id in apm_packages.package_id%TYPE default NULL,
new_package_id in apm_packages.package_id%TYPE default NULL
);
end faq;
/
show errors
create or replace package body faq
as
function new_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE default null,
faq_id in faq_q_and_as.faq_id%TYPE,
question in faq_q_and_as.question%TYPE,
answer in faq_q_and_as.answer%TYPE,
sort_key in faq_q_and_as.sort_key%TYPE,
object_type in acs_objects.object_type%TYPE default 'faq_q_and_a',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE
is
v_entry_id faq_q_and_as.entry_id%TYPE;
v_package_id acs_objects.package_id%TYPE;
begin
select package_id into v_package_id from acs_objects where object_id = new_q_and_a.faq_id;
v_entry_id := acs_object.new (
object_id => entry_id,
object_type => object_type,
creation_date => creation_date,
creation_user => creation_user,
creation_ip => creation_ip,
context_id => context_id,
package_id => v_package_id,
title => question
);
insert into faq_q_and_as
(entry_id, faq_id, question, answer, sort_key)
values
(v_entry_id, new_q_and_a.faq_id, new_q_and_a.question, new_q_and_a.answer, new_q_and_a.sort_key);
return v_entry_id;
end new_q_and_a;
procedure delete_q_and_a (
entry_id in faq_q_and_as.entry_id%TYPE
)
is
begin
delete from faq_q_and_as where entry_id = faq.delete_q_and_a.entry_id;
acs_object.del(entry_id);
end delete_q_and_a;
function new_faq (
faq_id in faqs.faq_id%TYPE default null,
faq_name in faqs.faq_name%TYPE,
separate_p in faqs.separate_p%TYPE default 'f',
object_type in acs_objects.object_type%TYPE default 'faq',
creation_date in acs_objects.creation_date%TYPE default sysdate,
creation_user in acs_objects.creation_user%TYPE default null,
creation_ip in acs_objects.creation_ip%TYPE default null,
context_id in acs_objects.context_id%TYPE default null
) return acs_objects.object_id%TYPE
is
v_faq_id faqs.faq_id%TYPE;
begin
v_faq_id := acs_object.new (
object_id => faq_id,
object_type => object_type,
creation_date => creation_date,
creation_user => creation_user,
creation_ip => creation_ip,
context_id => context_id,
package_id => context_id,
title => faq_name
);
insert into faqs
(faq_id, faq_name,separate_p)
values
(v_faq_id, new_faq.faq_name,new_faq.separate_p);
return v_faq_id;
end new_faq;
procedure delete_faq (
faq_id faqs.faq_id%TYPE
)
is
begin
-- Because q_and_a's are objects, we need to
-- loop through a list of them, and call an explicit
-- delete function for each one. (i.e. each
-- entry_id)
declare cursor q_and_a_cur is
select entry_id from faq_q_and_as where faq_id = faq.delete_faq.faq_id;
begin
for entry_list in q_and_a_cur
loop
delete_q_and_a(entry_list.entry_id);
end loop;
end;
delete from faqs where faq_id=faq.delete_faq.faq_id;
acs_object.del(faq_id);
end delete_faq;
procedure clone (
old_package_id in apm_packages.package_id%TYPE default null,
new_package_id in apm_packages.package_id%TYPE default null
)
is
v_faq_id faqs.faq_id%TYPE;
v_entry_id faq_q_and_as.entry_id%TYPE;
begin
-- get all the faqs belonging to the old package,
-- and create new faqs for the new package
for one_faq in (select *
from acs_objects o, faqs f
where o.object_id = f.faq_id
and o.context_id = faq.clone.old_package_id)
loop
-- faq is "scoped" by using the acs_objects.context_id
v_faq_id := faq.new_faq (
faq_name => one_faq.faq_name,
separate_p => one_faq.separate_p,
context_id => faq.clone.new_package_id
);
for entry in (select * from faq_q_and_as f
where faq_id = one_faq.faq_id)
loop
-- now (surprise!) copy all the entries of this faq
v_entry_id := faq.new_q_and_a (
context_id => entry.faq_id,
faq_id=> v_faq_id,
question => entry.question,
answer => entry.answer,
sort_key => entry.sort_key
);
end loop;
end loop;
end clone;
end faq;
/
show errors
-- @jennie.ybos.net
-- @wirth.ybos.net
--openacs port @samir.symphinity.com
create function inline_0 ()
returns integer as '
begin
-- Datamodel create for faq
--
-- @author @jennie.ybos.net,@wirth.ybos.net,openacs port @samir.symphinity.com
--
-- @cvs-id $Id$
--
CREATE OR REPLACE FUNCTION inline_0 () RETURNS integer AS $$
BEGIN
PERFORM acs_object_type__create_type (
''faq'', -- object_type
''FAQ'', -- pretty_name
''FAQs'', -- pretty_plural
''acs_object'', -- supertype
''FAQS'', -- table_name
''FAQ_ID'', -- id_column
'faq', -- object_type
'FAQ', -- pretty_name
'FAQs', -- pretty_plural
'acs_object', -- supertype
'FAQS', -- table_name
'FAQ_ID', -- id_column
null, -- package_name
''f'', -- abstract_p
'f', -- abstract_p
null, -- type_extension_table
''faq.name'' -- name_method
'faq__name' -- name_method
);
return 0;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
select inline_0 ();
drop function inline_0 ();
......@@ -39,24 +39,24 @@ create table faqs (
);
create function inline_1 ()
returns integer as '
begin
CREATE OR REPLACE FUNCTION inline_1 () RETURNS integer AS $$
BEGIN
PERFORM acs_object_type__create_type (
''faq_q_and_a'', -- object_type
''FAQ_Q_and_A'', -- pretty_name
''FAQ_Q_and_As'', -- pretty_plural
''acs_object'', -- supertype
''FAQ_Q_AND_AS'', -- table_name
''ENTRY_ID'', -- id_column
'faq_q_and_a', -- object_type
'FAQ_Q_and_A', -- pretty_name
'FAQ_Q_and_As', -- pretty_plural
'acs_object', -- supertype
'FAQ_Q_AND_AS', -- table_name
'ENTRY_ID', -- id_column
null, -- package_name
''f'', -- abstract_p
'f', -- abstract_p
null, -- type_extension_table
null -- name_method
);
return 0;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
select inline_1 ();
......@@ -75,163 +75,6 @@ create table faq_q_and_as (
sort_key integer not null
);
create function faq__new_q_and_a (integer,integer,varchar,varchar,integer,varchar,timestamptz,integer,varchar,integer
) returns integer as
'
declare
p_entry_id alias for $1; -- default null,
p_faq_id alias for $2;
p_question alias for $3;
p_answer alias for $4;
p_sort_key alias for $5;
p_object_type alias for $6; -- default faq_q_and_a
p_creation_date alias for $7; --in acs_objects.creation_date%TYPE default sysdate,
p_creation_user alias for $8; --in acs_objects.creation_user%TYPE default null,
p_creation_ip alias for $9; -- in acs_objects.creation_ip%TYPE default null,
p_context_id alias for $10; --in acs_objects.context_id%TYPE default null
v_entry_id faq_q_and_as.entry_id%TYPE;
begin
v_entry_id := acs_object__new (
p_entry_id,
p_object_type,
p_creation_date,
p_creation_user,
p_creation_ip,
p_context_id
);
insert into faq_q_and_as
(entry_id, faq_id, question, answer, sort_key)
values
(v_entry_id, p_faq_id, p_question, p_answer, p_sort_key);
return v_entry_id;
end;' language 'plpgsql';
create function faq__delete_q_and_a (integer)
returns integer as '
declare
p_entry_id alias for $1;
begin
delete from faq_q_and_as where entry_id = p_entry_id;
raise NOTICE ''Deleting FAQ_Q_and_A...'';
PERFORM acs_object__delete(p_entry_id);
return 0;
end;' language 'plpgsql';
create function faq__new_faq (integer, varchar, boolean,varchar,timestamptz,integer,varchar,integer )
returns integer as '
declare
p_faq_id alias for $1;
p_faq_name alias for $2;
p_separate_p alias for $3;
p_object_type alias for $4;
p_creation_date alias for $5;
p_creation_user alias for $6;
p_creation_ip alias for $7;
p_context_id alias for $8;
v_faq_id faqs.faq_id%TYPE;
begin
v_faq_id := acs_object__new (
p_faq_id,
p_object_type,
p_creation_date,
p_creation_user,
p_creation_ip,
p_context_id
);
insert into faqs
(faq_id, faq_name,separate_p)
values
(v_faq_id, p_faq_name,p_separate_p);
return v_faq_id;
end;' language 'plpgsql';
create function faq__delete_faq (integer)
returns integer as '
declare
p_faq_id alias for $1;
del_rec record;
begin
-- Because q_and_as are objects, we need to
-- loop through a list of them, and call an explicit
-- delete function for each one. (i.e. each
-- entry_id)
for del_rec in select entry_id from faq_q_and_as
where faq_id = p_faq_id
loop
PERFORM faq__delete_q_and_a(del_rec.entry_id);
end loop;
delete from faqs where faq_id = p_faq_id;
PERFORM acs_object__delete(p_faq_id);
return 0;
end;' language 'plpgsql';
create function faq__name(integer)
returns varchar as '
declare
p_faq_id alias for $1;
v_faq_name faqs.faq_name%TYPE;
begin
select faq_name into v_faq_name
from faqs
where faq_id = p_faq_id;
return v_faq_name;
end;
' language 'plpgsql';
create function faq__clone (integer,integer)
returns integer as '
declare
p_new_package_id alias for $1; --default null,
p_old_package_id alias for $2; --default null
v_faq_id faqs.faq_id%TYPE;
one_faq record;
entry record;
begin
-- get all the faqs belonging to the old package,
-- and create new faqs for the new package
for one_faq in select *
from acs_objects o, faqs f
where o.object_id = f.faq_id
and o.context_id = p_old_package_id
loop
v_faq_id := faq__new_faq (
one_faq.faq_name,
one_faq.separate_p,
p_new_package_id
);
for entry in select * from faq_q_and_as
where faq_id = one_faq.faq_id
loop
perform faq__new_q_and_a (
entry.faq_id,
v_faq_id,
entry.question,
entry.answer,
entry.sort_key
);
end loop;
end loop;
return 0;
end;
' language 'plpgsql';
select acs_privilege__create_privilege('faq_view_faq');
......@@ -267,30 +110,37 @@ begin
select acs_privilege__add_child('admin','faq_admin_faq');
create function inline_2 ()
returns integer as '
declare
--
-- procedure inline_2/0
--
CREATE OR REPLACE FUNCTION inline_2(
) RETURNS integer AS $$
DECLARE
default_context acs_objects.object_id%TYPE;
registered_users acs_objects.object_id%TYPE;
the_public acs_objects.object_id%TYPE;
begin
BEGIN
default_context = acs__magic_object_id(''default_context'');
registered_users = acs__magic_object_id(''registered_users'');
the_public = acs__magic_object_id(''the_public'');
default_context = acs__magic_object_id('default_context');
registered_users = acs__magic_object_id('registered_users');
the_public = acs__magic_object_id('the_public');
-- give the public the power to view faqs by default
PERFORM acs_permission__grant_permission (default_context, the_public, ''faq_view_faq'');
PERFORM acs_permission__grant_permission (default_context, the_public, 'faq_view_faq');
-- give the public the power to view q_and_as by default
PERFORM acs_permission__grant_permission ( default_context,the_public, ''faq_view_q_and_a'');
PERFORM acs_permission__grant_permission ( default_context,the_public, 'faq_view_q_and_a');
return 0;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
select inline_2 ();
......@@ -298,9 +148,5 @@ select inline_2 ();
drop function inline_2 ();
\i faq-package-create.sql
\i faq-sc-create.sql
......@@ -2,6 +2,15 @@
-- @author wirth@ybos.net
--openacs port @samir.symphinity.com
--drop triggers
drop trigger faq_sc__itrg on faq_q_and_as;
drop trigger faq_sc__dtrg on faq_q_and_as;
drop trigger faq_sc__utrg on faq_q_and_as;
drop function faq_sc__itrg ()
drop function faq_sc__dtrg ()
drop function faq_sc__utrg ()
--drop functions
drop function faq__new_q_and_a (integer,integer,varchar,varchar,integer,varchar,timestamptz,integer,varchar,integer);
drop function faq__delete_q_and_a (integer);
......@@ -15,24 +24,30 @@ delete from acs_permissions where object_id in (select entry_id from faq_q_and_a
delete from acs_permissions where object_id in (select faq_id from faqs);
create function inline_0()
returns integer as '
declare
--
-- procedure inline_0/0
--
CREATE OR REPLACE FUNCTION inline_0(
) RETURNS integer AS $$
DECLARE
object_rec record;
default_context acs_objects.object_id%TYPE;
registered_users acs_objects.object_id%TYPE;
the_public acs_objects.object_id%TYPE;
begin
BEGIN
--drop objects
for object_rec in select object_id from acs_objects where object_type=''faq''
for object_rec in select object_id from acs_objects where object_type='faq'
loop
PERFORM acs_object__delete( object_rec.object_id );
end loop;
for object_rec in select object_id from acs_objects where object_type=''faq_q_and_a''
for object_rec in select object_id from acs_objects where object_type='faq_q_and_a'
loop
PERFORM acs_object__delete( object_rec.object_id );
end loop;
......@@ -41,55 +56,56 @@ begin
-- bind privileges to global names
default_context := acs__magic_object_id(''default_context'');
registered_users := acs__magic_object_id(''registered_users'');
the_public := acs__magic_object_id(''the_public'');
default_context := acs__magic_object_id('default_context');
registered_users := acs__magic_object_id('registered_users');
the_public := acs__magic_object_id('the_public');
-- revoke from the public the power to view faqs
PERFORM acs_permission__revoke_permission (default_context, the_public, ''faq_view_faq'');
PERFORM acs_permission__revoke_permission (default_context, the_public, 'faq_view_faq');
-- revoke from the public the power to view q_and_as
PERFORM acs_permission__revoke_permission ( default_context,the_public, ''faq_view_q_and_a'');
PERFORM acs_permission__revoke_permission ( default_context,the_public, 'faq_view_q_and_a');
--drop permissions
PERFORM acs_privilege__remove_child(''create'',''faq_create_faq'');
PERFORM acs_privilege__remove_child(''create'',''faq_create_q_and_a'');
PERFORM acs_privilege__remove_child(''write'',''faq_modify_faq'');
PERFORM acs_privilege__remove_child(''write'',''faq_modify_q_and_a'');
PERFORM acs_privilege__remove_child(''read'',''faq_view_faq'');
PERFORM acs_privilege__remove_child(''read'',''faq_view_q_and_a'');
PERFORM acs_privilege__remove_child(''delete'',''faq_delete_faq'');
PERFORM acs_privilege__remove_child(''delete'',''faq_delete_q_and_a'');
PERFORM acs_privilege__remove_child(''admin'',''faq_admin_faq'');
PERFORM acs_privilege__remove_child(''faq_admin_faq'', ''faq_view_faq'');
PERFORM acs_privilege__remove_child(''faq_admin_faq'', ''faq_create_faq'');
PERFORM acs_privilege__remove_child(''faq_admin_faq'', ''faq_delete_faq'');
PERFORM acs_privilege__remove_child(''faq_admin_faq'', ''faq_modify_faq'');
PERFORM acs_privilege__remove_child(''faq_admin_q_and_a'', ''faq_view_q_and_a'');
PERFORM acs_privilege__remove_child(''faq_admin_q_and_a'', ''faq_create_q_and_a'');
PERFORM acs_privilege__remove_child(''faq_admin_q_and_a'', ''faq_delete_q_and_a'');
PERFORM acs_privilege__remove_child(''faq_admin_q_and_a'', ''faq_modify_q_and_a'');
PERFORM acs_privilege__remove_child(''faq_admin_faq'', ''faq_admin_q_and_a'');
PERFORM acs_privilege__drop_privilege(''faq_view_faq'');
PERFORM acs_privilege__drop_privilege(''faq_create_faq'');
PERFORM acs_privilege__drop_privilege(''faq_delete_faq'');
PERFORM acs_privilege__drop_privilege(''faq_modify_faq'');
PERFORM acs_privilege__drop_privilege(''faq_view_q_and_a'');
PERFORM acs_privilege__drop_privilege(''faq_create_q_and_a'');
PERFORM acs_privilege__drop_privilege(''faq_delete_q_and_a'');
PERFORM acs_privilege__drop_privilege(''faq_modify_q_and_a'');
PERFORM acs_privilege__drop_privilege(''faq_admin_faq'');
PERFORM acs_privilege__drop_privilege(''faq_admin_q_and_a'');
PERFORM acs_privilege__remove_child('create','faq_create_faq');
PERFORM acs_privilege__remove_child('create','faq_create_q_and_a');
PERFORM acs_privilege__remove_child('write','faq_modify_faq');
PERFORM acs_privilege__remove_child('write','faq_modify_q_and_a');
PERFORM acs_privilege__remove_child('read','faq_view_faq');
PERFORM acs_privilege__remove_child('read','faq_view_q_and_a');
PERFORM acs_privilege__remove_child('delete','faq_delete_faq');
PERFORM acs_privilege__remove_child('delete','faq_delete_q_and_a');
PERFORM acs_privilege__remove_child('admin','faq_admin_faq');
PERFORM acs_privilege__remove_child('faq_admin_faq', 'faq_view_faq');
PERFORM acs_privilege__remove_child('faq_admin_faq', 'faq_create_faq');
PERFORM acs_privilege__remove_child('faq_admin_faq', 'faq_delete_faq');
PERFORM acs_privilege__remove_child('faq_admin_faq', 'faq_modify_faq');
PERFORM acs_privilege__remove_child('faq_admin_q_and_a', 'faq_view_q_and_a');
PERFORM acs_privilege__remove_child('faq_admin_q_and_a', 'faq_create_q_and_a');
PERFORM acs_privilege__remove_child('faq_admin_q_and_a', 'faq_delete_q_and_a');
PERFORM acs_privilege__remove_child('faq_admin_q_and_a', 'faq_modify_q_and_a');
PERFORM acs_privilege__remove_child('faq_admin_faq', 'faq_admin_q_and_a');
PERFORM acs_privilege__drop_privilege('faq_view_faq');
PERFORM acs_privilege__drop_privilege('faq_create_faq');
PERFORM acs_privilege__drop_privilege('faq_delete_faq');
PERFORM acs_privilege__drop_privilege('faq_modify_faq');
PERFORM acs_privilege__drop_privilege('faq_view_q_and_a');
PERFORM acs_privilege__drop_privilege('faq_create_q_and_a');
PERFORM acs_privilege__drop_privilege('faq_delete_q_and_a');
PERFORM acs_privilege__drop_privilege('faq_modify_q_and_a');
PERFORM acs_privilege__drop_privilege('faq_admin_faq');
PERFORM acs_privilege__drop_privilege('faq_admin_q_and_a');
return 0;
end;' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
select inline_0();
......
-- Package create for faq
--
-- @author @jennie.ybos.net,@wirth.ybos.net,openacs port @samir.symphinity.com
--
-- @cvs-id $Id$
--
select define_function_args('faq__new_q_and_a','entry_id;null,faq_id,question,answer,sort_key,object_type,creation_date;sysdate,creation_user;null,creation_ip;null,context_id;null');
CREATE OR REPLACE FUNCTION faq__new_q_and_a (
p_entry_id integer, -- default null,
p_faq_id integer,
p_question varchar,
p_answer varchar,
p_sort_key integer,
p_object_type varchar, -- default faq_q_and_a
p_creation_date timestamptz, -- in acs_objects.creation_date%TYPE default sysdate,
p_creation_user integer, -- in acs_objects.creation_user%TYPE default null,
p_creation_ip varchar, -- in acs_objects.creation_ip%TYPE default null,
p_context_id integer -- in acs_objects.context_id%TYPE default null
) RETURNS integer AS $$
DECLARE
v_entry_id faq_q_and_as.entry_id%TYPE;
v_package_id acs_objects.package_id%TYPE;
BEGIN
select package_id into v_package_id from acs_objects where object_id = p_faq_id;
v_entry_id := acs_object__new (
p_entry_id,
p_object_type,
p_creation_date,
p_creation_user,
p_creation_ip,
p_context_id,
't',
p_question,
v_package_id
);
insert into faq_q_and_as
(entry_id, faq_id, question, answer, sort_key)
values
(v_entry_id, p_faq_id, p_question, p_answer, p_sort_key);
return v_entry_id;
END;
$$ LANGUAGE plpgsql;
-- added
select define_function_args('faq__delete_q_and_a','entry_id');
--
-- procedure faq__delete_q_and_a/1
--
CREATE OR REPLACE FUNCTION faq__delete_q_and_a(
p_entry_id integer
) RETURNS integer AS $$
DECLARE
BEGIN
delete from faq_q_and_as where entry_id = p_entry_id;
raise NOTICE 'Deleting FAQ_Q_and_A...';
PERFORM acs_object__delete(p_entry_id);
return 0;
END;
$$ LANGUAGE plpgsql;
-- added
select define_function_args('faq__new_faq','faq_id,faq_name,separate_p,object_type,creation_date,creation_user,creation_ip,context_id');
--
-- procedure faq__new_faq/8
--
CREATE OR REPLACE FUNCTION faq__new_faq(
p_faq_id integer,
p_faq_name varchar,
p_separate_p boolean,
p_object_type varchar,
p_creation_date timestamptz,
p_creation_user integer,
p_creation_ip varchar,
p_context_id integer
) RETURNS integer AS $$
DECLARE
v_faq_id faqs.faq_id%TYPE;
BEGIN
v_faq_id := acs_object__new (
p_faq_id,
p_object_type,
p_creation_date,
p_creation_user,
p_creation_ip,
p_context_id,
't',
p_faq_name,
p_context_id );
insert into faqs
(faq_id, faq_name,separate_p)
values
(v_faq_id, p_faq_name,p_separate_p);
return v_faq_id;
END;
$$ LANGUAGE plpgsql;
-- added
select define_function_args('faq__delete_faq','faq_id');
--
-- procedure faq__delete_faq/1
--
CREATE OR REPLACE FUNCTION faq__delete_faq(
p_faq_id integer
) RETURNS integer AS $$
DECLARE
del_rec record;
BEGIN
-- Because q_and_as are objects, we need to
-- loop through a list of them, and call an explicit
-- delete function for each one. (i.e. each
-- entry_id)
for del_rec in select entry_id from faq_q_and_as
where faq_id = p_faq_id
loop
PERFORM faq__delete_q_and_a(del_rec.entry_id);
end loop;
delete from faqs where faq_id = p_faq_id;
PERFORM acs_object__delete(p_faq_id);
return 0;
END;
$$ LANGUAGE plpgsql;
-- added
select define_function_args('faq__name','faq_id');
--
-- procedure faq__name/1
--
CREATE OR REPLACE FUNCTION faq__name(
p_faq_id integer
) RETURNS varchar AS $$
DECLARE
v_faq_name faqs.faq_name%TYPE;
BEGIN
select faq_name into v_faq_name
from faqs
where faq_id = p_faq_id;
return v_faq_name;
END;
$$ LANGUAGE plpgsql;
-- added
select define_function_args('faq__clone','new_package_id,old_package_id');
--
-- procedure faq__clone/2
--
CREATE OR REPLACE FUNCTION faq__clone(
p_new_package_id integer, --default null,
p_old_package_id integer --default null
) RETURNS integer AS $$
DECLARE
v_faq_id faqs.faq_id%TYPE;
one_faq record;
entry record;
BEGIN
-- get all the faqs belonging to the old package,
-- and create new faqs for the new package
for one_faq in select *
from acs_objects o, faqs f
where o.object_id = f.faq_id
and o.context_id = p_old_package_id
loop
v_faq_id := faq__new_faq (
one_faq.faq_name,
one_faq.separate_p,
p_new_package_id
);
for entry in select * from faq_q_and_as
where faq_id = one_faq.faq_id
loop
perform faq__new_q_and_a (
entry.faq_id,
v_faq_id,
entry.question,
entry.answer,
entry.sort_key
);
end loop;
end loop;
return 0;
END;
$$ LANGUAGE plpgsql;
--
-- packages/faq/sql/postgresql/faq-sc-create.sql
--
-- @author Emmanuelle Raffenne (eraffenne@dia.uned.es)
-- @creation-date 2007-07-11
-- @arch-tag: 24e3ba57-1575-4718-b664-924e7bc170e1
-- @cvs-id $Id$
--
create function faq_sc__itrg ()
returns opaque as $$
begin
perform search_observer__enqueue(new.entry_id,'INSERT');
return new;
end;
$$ language plpgsql;
create function faq_sc__dtrg ()
returns opaque as $$
begin
perform search_observer__enqueue(old.entry_id,'DELETE');
return old;
end;
$$ language plpgsql;
create function faq_sc__utrg ()
returns opaque as $$
begin
perform search_observer__enqueue(old.entry_id,'UPDATE');
return old;
end;
$$ language plpgsql;
create trigger faq_sc__itrg after insert on faq_q_and_as for each row execute procedure faq_sc__itrg ();
create trigger faq_sc__dtrg after delete on faq_q_and_as for each row execute procedure faq_sc__dtrg ();
create trigger faq_sc__utrg after update on faq_q_and_as for each row execute procedure faq_sc__utrg ();
create or replace function faq__clone (integer,integer)
returns integer as '
declare
p_new_package_id alias for $1; --default null,
p_old_package_id alias for $2; --default null
--
-- procedure faq__clone/2
--
select define_function_args('faq__clone','new_package_id,old_package_id');
CREATE OR REPLACE FUNCTION faq__clone(
p_new_package_id integer, --default null,
p_old_package_id integer --default null
) RETURNS integer AS $$
DECLARE
v_faq_id faqs.faq_id%TYPE;
one_faq record;
entry record;
begin
BEGIN
-- get all the faqs belonging to the old package,
-- and create new faqs for the new package
for one_faq in select *
......@@ -35,9 +43,9 @@ begin
end loop;
end loop;
return 0;
end;
' language 'plpgsql';
END;
$$ LANGUAGE plpgsql;
alter table faqs add column disabled_p char(1);
alter table faqs alter disabled_p set default 'f';
......
-- fix name method, update package
update acs_object_types set name_method = 'faq__name' where name_method = 'faq.name' and object_type = 'faq';
\i ../faq-package-create.sql
--
-- packages/faq/sql/postgresql/upgrade/upgrade-5.2.0d4-5.2.0d5.sql
--
-- @author Emmanuelle Raffenne (eraffenne@dia.uned.es)
-- @creation-date 2007-07-11
-- @arch-tag: 3f699cf4-3aa2-44d5-a116-594b0fd9fede
-- @cvs-id $Id$
--
\i ../faq-sc-create.sql
-- Fixing all those objects (faq and faq_q_and_as) with missing package_id
update acs_objects set package_id = context_id where context_id in
( select package_id from apm_packages where package_key = 'faq')
and package_id is null ;
UPDATE acs_objects o1 SET package_id = o2.package_id
FROM acs_objects o2, faq_q_and_as f
WHERE f.entry_id = o1.object_id
AND f.faq_id = o2.object_id
AND o1.package_id is null;
select define_function_args('faq__new_q_and_a','entry_id;null,faq_id,question,answer,sort_key,object_type,creation_date;sysdate,creation_user;null,creation_ip;null,context_id;null');
<master src="master">
<property name="context_bar">@context_bar;noquote@</property>
<property name="title">@faq_name;noquote@</property>
<property name="context_bar">@context_bar;literal@</property>
<property name="doc(title)">@faq_name;literal@</property>
<if @one_question:rowcount@ eq 0>
<i>#faq.lt_no_questions#</i><p>
......@@ -8,10 +8,10 @@
<else>
<table>
<tr valign=top>
<tr valign="top">
<td width="30%">
<ol>
<multiple name=one_question>
<multiple name="one_question">
<if @separate_p@ eq "t">
<li>
......@@ -32,9 +32,9 @@
<if @separate_p@ eq "f">
<td>
<ol>
<multiple name=one_question>
<multiple name="one_question">
<li>
<a name=@one_question.entry_id@></a>
<a name="@one_question.entry_id@"></a>
<b>#faq.Q#</b> @one_question.question@
<P>
<b>#faq.A#</b> @one_question.answer@
......
<master>
<property name="doc(title)">@title;literal@</property>
<property name="context">@context;literal@</property>
<formtemplate id="categories_mode"></formtemplate>
ad_page_contract {
This page allows a faq admin to change instance wide settings.
@author Nima Mazloumi (nima.mazloumi@gmx.de)
@creation-date 2004-08-11
} {
{return_url ""}
}
set title "#faq.Configure#"
set context [list $title]
set use_categories_p [parameter::get -parameter "EnableCategoriesP"]
set use_wysiwyg_p [parameter::get -parameter "UseWysiwygP"]
ad_form -name categories_mode -form {
{cat_enabled_p:text(radio)
{label "#faq.Enable_Categories#"}
{options {{[_ faq.Yes] 1} {[_ faq.No] 0}}}
{value $use_categories_p}}
{wysiwyg_enabled_p:text(radio)
{label "#faq.Enable_WYSIWYG#"}
{options {{[_ faq.Yes] t} {[_ faq.No] f}}}
{value $use_wysiwyg_p}
}
{return_url:text(hidden) {value $return_url}}
{submit:text(submit) {label "[_ faq.Change_settings]"}}
} -on_submit {
parameter::set_value -parameter "EnableCategoriesP" -value $cat_enabled_p
parameter::set_value -parameter "UseWysiwygP" -value $wysiwyg_enabled_p
if {$return_url ne ""} {
ad_returnredirect $return_url
}
}
<master>
<property name="title">@page_title;noquote@</property>
<property name="context">@context;noquote@</property>
<property name="doc(title)">@page_title;literal@</property>
<property name="context">@context;literal@</property>
<property name="focus">faq_add_edit.faq_name</property>
<h1>@page_title;noquote@</h1>
<include src="/packages/faq/lib/faq-add-edit" &="faq_id" &="return_url">
......@@ -5,7 +5,7 @@ ad_page_contract {
@author Gerardo Morales Cadoret (gmorales@galileo.edu)
@creation-date 2003-11-26
} {
faq_id:optional
faq_id:naturalnum,optional
return_url:optional
} -properties {
context:onevalue
......
......@@ -2,7 +2,7 @@
ad_page_contract {
delete an FAQ
delete an FAQ, also deletes entries in acs_named_objects for categories
@author Elizabeth Wirth (wirth@ybos.net)
@author Jennie Housman (jennie@ybos.net)
@creation-date 2000-10-24
......@@ -24,6 +24,7 @@ db_transaction {
);
end;
}
db_dml delete_named_object "delete from acs_named_objects where object_id in (select entry_id from faq_q_and_as where faq_id = :faq_id)"
}
ad_returnredirect "index"
\ No newline at end of file
......@@ -6,13 +6,16 @@ ad_page_contract {
} {
faq_id:naturalnum,notnull
referer:optional
}
set package_id [ad_conn package_id]
permission::require_permission -object_id $package_id -privilege faq_delete_faq
db_dml disable_faq {
update faqs set disabled_p = 't' where faq_id = :faq_id
db_dml disable_faq {}
if { ![info exists referer] } {
set referer "index"
}
ad_returnredirect "."
ad_returnredirect $referer
<?xml version="1.0"?>
<queryset>
<fullquery name="disable_faq">
<querytext>
update faqs set disabled_p = 't' where faq_id = :faq_id
</querytext>
</fullquery>
</queryset>
\ No newline at end of file
......@@ -12,7 +12,7 @@ ad_page_contract {
separate_p:
}
ad_require_permission [ad_conn package_id] faq_modify_faq
permission::require_permission -object_id [ad_conn package_id] -privilege faq_modify_faq
db_dml faq_edit "update faqs
set faq_name = :faq_name,
......
<master>
<property name="context">@context;noquote@</property>
<property name="title">@title;noquote@</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">@title;literal@</property>
<form action="@action@">
<input type="hidden" name="faq_id" value="@faq_id@">
<blockquote>
<div><input type="hidden" name="faq_id" value="@faq_id@"></div>
<table>
<tr>
<th align="right">#faq.Name#</th>
......@@ -12,7 +11,7 @@
</tr>
<tr>
<th align="right">#faq.QA_On_Separate_Pages#</th>
<td><select name=separate_p>
<td><select name="separate_p">
<if @separate_p@ eq "t">
<option value="t" selected>#faq.Yes#</option>
<option value="f">#faq.No#</option>
......@@ -30,6 +29,5 @@
<th></th>
<td><input type="submit" value="@submit_label@"></td>
</table>
</blockquote>
</form>
......@@ -17,7 +17,7 @@ ad_page_contract {
}
ad_require_permission [ad_conn package_id] faq_modify_faq
permission::require_permission -object_id [ad_conn package_id] -privilege faq_modify_faq
set context [list [_ faq.Edit_an_FAQ]]
set title [_ faq.Edit_an_FAQ]
......
......@@ -6,6 +6,7 @@ ad_page_contract {
} {
faq_id:naturalnum,notnull
referer:optional
}
set package_id [ad_conn package_id]
......@@ -15,4 +16,8 @@ db_dml disable_faq {
update faqs set disabled_p = 'f' where faq_id = :faq_id
}
ad_returnredirect "index"
if { ![info exists referer] } {
set referer "index"
}
ad_returnredirect $referer
......@@ -11,16 +11,16 @@ ad_page_contract {
@param faq_name The short name of the faq
} {
faq_id:integer,notnull
faq_id:naturalnum,notnull
faq_name:notnull,trim
separate_p:notnull
separate_p:boolean,notnull
}
set package_id [ad_conn package_id]
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
set creation_ip [ad_conn host]
ad_require_permission $package_id faq_create_faq
permission::require_permission -object_id $package_id -privilege faq_create_faq
db_transaction {
db_exec_plsql create_faq {
......
<master></master>
<property name="context">@context;noquote@</property>
<property name="title">@title;noquote@</property>
<master>
<property name="context">@context;literal@</property>
<property name="doc(title)">@title;literal@</property>
<property name="focus">faq.faq_name</property>
<h1>Create an FAQ:</h1>
<form action="@action@" name="faq">
<input type="hidden" name="faq_id" value="@faq_id@">
<blockquote>
<table>
<tr>
<th align="right">#faq.Name#</th>
<td><input size="50" name="faq_name" value="@faq_name@"></td>
</tr>
<tr>
<th align="right">#faq.QA_on_Separate_Pages#</th>
<td><select name="separate_p">
<option value=f>#faq.No#</option>
<option value=t>#faq.Yes#</option>
</select>
</td>
</tr>
<tr>
<th></th>
<td><input type="submit" value="@submit_label@"></td>
</table>
</blockquote>
<form action="@action@" name="faq" class="margin-form">
<div><input type="hidden" name="faq_id" value="@faq_id@"></div>
<fieldset>
<div class="form-item-wrapper">
<div class="form-label">
<label for="faq_name">
#faq.Name#
</label>
</div>
<div class="form-widget">
<input id="faq_name" name="faq_name" value="@faq_name@">
</div>
</div>
<div class="form-item-wrapper">
<div class="form-label">
<label for="separate_p">
#faq.QA_on_Separate_Pages#
</label>
</div>
<div class="form-widget">
<select name="separate_p" id="separate_p">
<option value="f">#faq.No#</option>
<option value="t">#faq.Yes#</option>
</select>
</div>
</div>
<div class="form-button">
<input type="submit" value="@submit_label@">
</div>
</fieldset>
</form>
......@@ -18,9 +18,9 @@ ad_page_contract {
}
ad_require_permission [ad_conn package_id] faq_create_faq
permission::require_permission -object_id [ad_conn package_id] -privilege faq_create_faq
set context {[_ faq.Create_an_FAQ]}
set context [list [_ faq.Create_an_FAQ]]
set title [_ faq.Create_an_FAQ]
set action "faq-new-2"
set submit_label [_ faq.Create_FAQ]
......
<master>
<property name="context">@context;noquote@</property>
<property name="title">#faq.FAQ_Admin#</property>
<property name="doc(title)">@title;literal@</property>
<property name="context">@context;literal@</property>
<h1>@title;noquote@</h1>
<listtemplate name="faqs"></listtemplate>
<ul class="action-links">
<li><a href="faq-add-edit">#faq.Create_a_new_FAQ#</a></lI>
<li><a href="faq-add-edit" title="#faq.Create_a_new_FAQ#">#faq.Create_a_new_FAQ#</a></li>
<li><a href="configure?<%=[export_vars -url {return_url}]%>" title="#faq.Configure_FAQ_Preferences#">#faq.Configure#</a></li>
<if @use_categories_p@ and @category_container@ eq "package_id">
<li><a href="@category_map_url@" class="action_link" title="#faq.Site_wide_categories#">#faq.Site_wide_categories#</a></li>
</if>
</ul>
......@@ -3,74 +3,75 @@
ad_page_contract {
Admin for FAQs on this site
Categories for FAQ-Package added
@author Jennie Housman (jennie@ybos.net)
@author Elizabeth Wirth (wirth@ybos.net)
@author Nima Mazloumi (nima.mazloumi@gmx.de)
@creation-date 2000-10-24
} {
} -properties {
context:onevalue
package_id:onevalue
user_id:onevalue
context:onevalue
package_id:onevalue
user_id:onevalue
}
set package_id [ad_conn package_id]
permission::require_permission -object_id $package_id -privilege faq_admin_faq
set title "#faq.FAQ_Admin#"
set context {}
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
template::list::create \
-name faqs \
-elements {
edit {
link_url_col edit_url
display_template {
<img src="/resources/acs-subsite/Edit16.gif" border="0">
<a href="@faqs.edit_url@" title="#faq.Edit_FAQ# @faqs.faq_name@">
<img src="/resources/acs-subsite/Edit16.gif" border="0" alt="#faq.Edit#"></a>
}
sub_class narrow
}
faq_name {
label "Name"
link_url_col manage_url
display_template {
<a href="@faqs.manage_url@" title="#faq.Name# @faqs.faq_name;noquote@">
@faqs.faq_name;noquote@</a>
}
}
num_q_and_as {
label "\# Q&A's"
html { align right }
label "# Q&amp;A"
html { align center }
}
disabled_p {
label "Enabled"
display_template {
<if @faqs.disabled_p@ false>
<a href="@faqs.disable_url@" title="Disable this FAQ"><img src="/resources/acs-subsite/checkboxchecked.gif" height="13" width="13" border="0" style="background-color: white;" alt="Disable"></a>
<a href="@faqs.disable_url@" title="#faq.Disable_FAQ# @faqs.faq_name@">
<img src="/resources/acs-subsite/checkboxchecked.gif" height="13" width="13" border="0" style="background-color: white;" alt="#faq.Disable#"></a>
</if>
<else>
<a href="@faqs.enable_url@" title="Enable this FAQ"><img src="/resources/acs-subsite/checkbox.gif" height="13" width="13" border="0" style="background-color: white;" alt="Enable"></a>
<a href="@faqs.enable_url@" title="#faq.Enable_FAQ# @faqs.faq_name@">
<img src="/resources/acs-subsite/checkbox.gif" height="13" width="13" border="0" style="background-color: white;" alt="#faq.Enable#"></a>
</else>
}
html { align center }
}
delete {
link_url_col delete_url
display_template {
<img src="/resources/acs-subsite/Delete16.gif" border="0">
<a href="@faqs.delete_url@" title="#faq.Delete_FAQ# @faqs.faq_name@">
<img src="/resources/acs-subsite/Delete16.gif" border="0" alt="#faq.Delete#"></a>
}
sub_class narrow
}
}
db_multirow -extend { edit_url manage_url delete_url disable_url enable_url } faqs faq_select {
select faq_id, faq_name, disabled_p,
(select count(*) from faq_q_and_as where faq_id = f.faq_id) as num_q_and_as
from acs_objects o, faqs f
where object_id = faq_id
and context_id = :package_id
order by lower(faq_name), faq_name
} {
db_multirow -extend { edit_url manage_url delete_url disable_url enable_url } faqs faq_select {} {
set edit_url [export_vars -base faq-add-edit { faq_id }]
set manage_url [export_vars -base one-faq { faq_id }]
set delete_url [export_vars -base faq-delete { faq_id }]
......@@ -78,4 +79,11 @@ db_multirow -extend { edit_url manage_url delete_url disable_url enable_url } fa
set enable_url [export_vars -base faq-enable { faq_id }]
}
# for categories
set use_categories_p [parameter::get -parameter "EnableCategoriesP"]
set category_container [parameter::get -parameter "CategoryContainer"]
set category_map_url [export_vars -base "[site_node::get_package_url -package_key categories]cadmin/one-object" { { object_id $package_id } }]
set return_url [ns_conn url]
ad_return_template
<?xml version="1.0"?>
<queryset>
<fullquery name="faq_select">
<querytext>
select faq_id, faq_name, disabled_p,
(select count(*) from faq_q_and_as where faq_id = f.faq_id) as num_q_and_as
from acs_objects o, faqs f
where object_id = faq_id
and context_id = :package_id
order by lower(faq_name), faq_name
</querytext>
</fullquery>
</queryset>
\ No newline at end of file
<master>
<property name="context">@context;noquote@</property>
<property name="title">#faq.faq_name_Admin#</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">@title;literal@</property>
<h1>@title;noquote@</h1>
<include src="/packages/faq/lib/faq-add-edit" &="faq_id" mode="display">
<if @faq_q_and_as:rowcount@ eq 0>
<i>#faq.lt_no_questions#</i><p>
<i>#faq.lt_no_questions#</i><p></p>
</if>
<else>
<ol>
<multiple name=faq_q_and_as>
<multiple name="faq_q_and_as">
<li>
@faq_q_and_as.question;noquote@
(
<a href="q-and-a-add-edit?entry_id=@faq_q_and_as.entry_id@&faq_id=@faq_id@">#faq.edit#</a> |
<a href="one-question?entry_id=@faq_q_and_as.entry_id@">#faq.preview#</a> |
<a href="q_and_a-delete?entry_id=@faq_q_and_as.entry_id@" onclick="return confirm('#faq.lt_Are_you_sure_you_want_1#');">#faq.delete#</a> |
@faq_q_and_as.question;noquote@
(
<a href="q-and-a-add-edit?entry_id=@faq_q_and_as.entry_id@&amp;faq_id=@faq_id@" title="Edit Question">#faq.edit#</a> |
<a href="one-question?entry_id=@faq_q_and_as.entry_id@" title="Preview Question">#faq.preview#</a> |
<a href="q_and_a-delete?entry_id=@faq_q_and_as.entry_id@" onclick="return confirm('#faq.lt_Are_you_sure_you_want_1#');" title="Delete Question">#faq.delete#</a> |
<if @faq_q_and_as.sort_key@ ne @highest_sort_key_in_list@>
<a href="q-and-a-add-edit?prev_entry_id=@faq_q_and_as.entry_id@&faq_id=@faq_id@">#faq.insert_after#</a> |
<a href="swap?faq_id=@faq_id@&entry_id=@faq_q_and_as.entry_id@">#faq.swap_with_next#</a>
</if>
<else>
<a href="q-and-a-add-edit?prev_entry_id=@faq_q_and_as.entry_id@&faq_id=@faq_id@">#faq.insert_after#</a>
</else>
)
</li>
<if @faq_q_and_as.sort_key@ ne @highest_sort_key_in_list@>
<a href="q-and-a-add-edit?prev_entry_id=@faq_q_and_as.entry_id@&amp;faq_id=@faq_id@" title="Insert new question after this one">#faq.insert_after#</a> |
<a href="swap?faq_id=@faq_id@&amp;entry_id=@faq_q_and_as.entry_id@" title="Swap question with next one">#faq.swap_with_next#</a>
</if>
<else>
<a href="q-and-a-add-edit?prev_entry_id=@faq_q_and_as.entry_id@&amp;faq_id=@faq_id@" title="Insert new question after this one">#faq.insert_after#</a>
</else>
)
</li>
</multiple>
</ol>
</else>
......
......@@ -16,7 +16,7 @@ ad_page_contract {
set package_id [ad_conn package_id]
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
permission::require_permission -object_id $package_id -privilege faq_admin_faq
......@@ -32,8 +32,10 @@ set highest_sort_key_in_list [db_string faq_maxkey_get "select max(sort_key)
from faq_q_and_as where faq_id=:faq_id"]
db_1row faq_name "select faq_name from faqs where faq_id=:faq_id"
set title "#faq.faq_name_Admin#"
set context [list $faq_name]
set new_faq_url "q-and-a-add-edit?[export_vars { faq_id }]"
set new_faq_url [export_vars -base q-and-a-add-edit { faq_id }]
ad_return_template
<master>
<property name="context">@context;noquote@</property>
<property name="title">#faq.One_Question#</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">#faq.One_Question#</property>
<b>#faq.Q#</b> @question;noquote@
<P>
......
......@@ -5,6 +5,7 @@ ad_page_contract {
View contents of one Q&A
@author Elizabeth Wirth (wirth@ybos.net)
@author Jennie Housman (jennie@ybos.net)
@author Nima Mazloumi (nima.mazloumi@gx.de)
@creation-date 2000-10-24
} {
......@@ -16,7 +17,7 @@ ad_page_contract {
set package_id [ad_conn package_id]
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
permission::require_permission -object_id $package_id -privilege faq_admin_faq
......@@ -25,10 +26,10 @@ db_1row q_and_a_info "select question, answer, a.faq_id, f.faq_name
where entry_id = :entry_id
and a.faq_id = f.faq_id"
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] "One Q&A"]
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] "[_ faq.One_Question]"]
set edit_url "q_and_a-edit?[export_vars { entry_id faq_id }]"
set delete_url "q_and_a-delete?[export_vars { entry_id faq_id }]"
set create_url "q_and_a-new?[export_vars { faq_id } ]"
set edit_url [export_vars -base q-and-a-add-edit { entry_id faq_id }]
set delete_url [export_vars -base q_and_a-delete { entry_id faq_id }]
set create_url [export_vars -base q-and-a-add-edit { faq_id } ]
ad_return_template
<master>
<property name="title">@page_title;noquote@</property>
<property name="context">@context;noquote@</property>
<property name="doc(title)">@page_title;literal@</property>
<property name="context">@context;literal@</property>
<property name="focus">new_quest_answ.question</property>
<formtemplate id="new_quest_answ"></formtemplate>
<formtemplate id="new_quest_answ"></formtemplate>
<if @use_categories_p@ and @category_container@ eq "package_id">
<a href="@category_map_url@" class="action_link">#categories.Site_wide_categories#</a>
</if>
ad_page_contract {
Adds or Edit a new Q&A to a FAQ
Adds or Edit a new Q&A to a FAQ and Categories if Parameter EnableCategoriesP is Enabled
@author Rocael Hernandez (roc@viaro.net)
@author Gerardo Morales Cadoret (gmorales@galileo.edu)
@author Nima Mazloumi (nima.mazloumi@gmx.de)
@creation-date 2003-11-26
} {
faq_id:naturalnum,notnull
entry_id:optional
{prev_entry_id 0}
entry_id:naturalnum,optional
{prev_entry_id:naturalnum,notnull 0}
} -properties {
context:onevalue
title:onevalue
......@@ -16,87 +17,136 @@ ad_page_contract {
question_q:onevalue
answer:onevalue
answer_q:onevalue
}
db_1row get_name "select faq_name from faqs where faq_id=:faq_id"
}
db_1row get_name "select faq_name from faqs where faq_id=:faq_id"
if { ![ad_form_new_p -key entry_id]} {
set page_title [_ faq.One_Question]
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] "One Q&A"]
set page_title [_ faq.One_Question]
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] [_ faq.One_Question]]
set submit_label "[_ faq.Update_This_QA]"
permission::require_permission -object_id [ad_conn package_id] -privilege faq_modify_faq
} else {
set page_title [_ faq.Add_QA_for_faq_name]
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] [_ faq.Create_new_QA]]
set page_title [_ faq.Add_QA_for_faq_name]
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] [_ faq.Create_new_QA]]
set submit_label "[_ faq.Create_new_QA]"
permission::require_permission -object_id [ad_conn package_id] -privilege faq_create_faq
}
set question ""
set answer ""
set insert_p "f"
set mime_type ""
set question_q [ad_quotehtml $question]
set answer_q [ad_quotehtml $answer]
set user_id [ad_verify_and_get_user_id]
set creation_ip [ad_conn host]
set insert_p "f"
set user_id [ad_conn user_id]
set creation_ip [ad_conn host]
ad_form -name new_quest_answ -export {faq_id creation_ip} -form {
# Are categories used?
set use_categories_p [parameter::get -parameter "EnableCategoriesP" -default 0]
set category_container [parameter::get -parameter "CategoryContainer"]
set package_id [ad_conn package_id]
entry_id:key
{prev_entry_id:text(hidden) {value $prev_entry_id}}
{question:text(textarea) {label "Question"} {html {rows 10 cols 40 wrap soft }} {help_text {Question text in html}}}
{answer:text(textarea) {label "Answer"} {html {rows 10 cols 40 wrap soft }} {help_text {Answer text in html}}}
} -select_query {
select question, answer,faq_name,qa.faq_id
set select_sql_query "select question, answer,faq_name,qa.faq_id
from faq_q_and_as qa, faqs f
where entry_id = :entry_id
and f.faq_id = qa.faq_id
and f.faq_id = qa.faq_id"
} -new_data {
ad_form -name new_quest_answ -method GET -export {faq_id creation_ip} -form {
{entry_id:key}
{prev_entry_id:text(hidden) {value $prev_entry_id}}
{question:richtext
{html {rows 15 cols 50} }
{label "[_ faq.Question]"}
{help_text {[_ faq.Question_text_in_html]}}}
{answer:richtext
{html {rows 15 cols 50} }
{label "[_ faq.Answer]"}
{help_text {[_ faq.Answer_text_in_html]}}}
}
set page_title [_ faq.Add_QA_for_faq_name]
set last_entry_id $prev_entry_id
db_transaction {
set old_sort_key [db_string faq_sortkey_get "select sort_key from faq_q_and_as
where entry_id = :last_entry_id" -default 0]
if ![string equal $old_sort_key 0] {
set sql_update_q_and_as "
update faq_q_and_as
set sort_key = sort_key + 1
where sort_key > :old_sort_key"
db_dml faq_update $sql_update_q_and_as
set sort_key [expr $old_sort_key + 1]
} else {
set sort_key $entry_id
}
# customize form depending on category capabilities
if { $use_categories_p == 1 } {
#add link do define categories
set category_map_url [export_vars -base "[site_node::get_package_url -package_key categories]cadmin/one-object" { { object_id $package_id } }]
#extend the form to support categories
category::ad_form::add_widgets -form_name new_quest_answ -container_object_id $package_id -categorized_object_id [value_if_exists entry_id]
ad_form -extend -name new_quest_answ -edit_request {
db_1row q $select_sql_query
set question [template::util::richtext::create $question "text/html"]
set answer [template::util::richtext::create $answer "text/html"]
} -on_submit {
set category_ids [category::ad_form::get_categories -container_object_id $package_id]
set question [template::util::richtext::get_property contents $question]
set answer [template::util::richtext::get_property contents $answer]
} -on_request {
} -new_data {
set page_title [_ faq.Add_QA_for_faq_name]
set last_entry_id $prev_entry_id
db_transaction {
set old_sort_key [db_string faq_sortkey_get "select sort_key from faq_q_and_as where entry_id = :last_entry_id" -default 0]
if {$old_sort_key ne "0" } {
set sql_update_q_and_as "update faq_q_and_as set sort_key = sort_key + 1 where sort_key > :old_sort_key"
db_dml faq_update $sql_update_q_and_as
set sort_key [expr {$old_sort_key + 1}]
} else {
set sort_key $entry_id
}
}
db_transaction {
db_exec_plsql create_q_and_a { *SQL* }
category::map_object -remove_old -object_id $entry_id $category_ids
db_dml insert_asc_named_object "insert into acs_named_objects (object_id, object_name, package_id) values ( :entry_id, 'FAQ', :package_id)"
}
} -edit_data {
db_dml q_and_a_edit "update faq_q_and_as set question = :question, answer = :answer where entry_id = :entry_id"
db_dml insert_asc_named_object "update acs_named_objects set object_name = 'FAQ', package_id = :package_id where object_id = :entry_id"
category::map_object -remove_old -object_id $entry_id $category_ids
} -after_submit {
ad_returnredirect "one-faq?faq_id=$faq_id"
ad_script_abort
}
db_transaction {
db_exec_plsql create_q_and_a { *SQL* }
} else {
ad_form -extend -name new_quest_answ -edit_request {
db_1row q $select_sql_query
set question [template::util::richtext::create $question "text/html"]
set answer [template::util::richtext::create $answer "text/html"]
} -on_submit {
set question [template::util::richtext::get_property contents $question]
set answer [ template::util::richtext::get_property contents $answer]
} -on_request {
} -new_data {
set page_title [_ faq.Add_QA_for_faq_name]
set last_entry_id $prev_entry_id
db_transaction {
set old_sort_key [db_string faq_sortkey_get "select sort_key from faq_q_and_as where entry_id = :last_entry_id" -default 0]
if {$old_sort_key ne "0" } {
set sql_update_q_and_as "update faq_q_and_as set sort_key = sort_key + 1 where sort_key > :old_sort_key"
db_dml faq_update $sql_update_q_and_as
set sort_key [expr {$old_sort_key + 1}]
} else {
set sort_key $entry_id
}
}
db_transaction {
db_exec_plsql create_q_and_a { *SQL* }
}
} -edit_data {
db_dml q_and_a_edit "update faq_q_and_as set question = :question, answer = :answer where entry_id = :entry_id"
} -after_submit {
faq::notification_delivery::do_notification $question $answer $entry_id $faq_id $user_id
ad_returnredirect "one-faq?faq_id=$faq_id"
ad_script_abort
}
} -edit_data {
db_dml q_and_a_edit "update faq_q_and_as
set question = :question,
answer = :answer
where entry_id = :entry_id"
} -after_submit {
ad_returnredirect "one-faq?faq_id=$faq_id"
ad_script_abort
}
......@@ -24,6 +24,7 @@ db_transaction {
);
end;
}
db_dml delete_named_object "delete from acs_named_objects where object_id = :entry_id"
}
ad_returnredirect "one-faq?faq_id=$faq_id"
......@@ -13,7 +13,7 @@ ad_page_contract {
}
ad_require_permission [ad_conn package_id] faq_modify_faq
permission::require_permission -object_id [ad_conn package_id] -privilege faq_modify_faq
# Don't forget to do the permissioning
db_dml q_and_a_edit "update faq_q_and_as
......
<master>
<property name="context">@context;noquote@</property>
<property name="title">#faq.One_Question#</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">#faq.One_Question#</property>
<form action="@action@" method=post>
<input type=hidden name=entry_id value=@entry_id@>
<input type="hidden" name="entry_id" value="@entry_id@">
<table>
<tr>
<th align=right>#faq.Question#</th>
<th align="right">#faq.Question#</th>
<td>
<textarea rows=4 cols=50 name=question>@question@</textarea>
<textarea rows=10 cols=50 name=question>@question@</textarea>
</td>
</tr>
<tr>
<th align=right>#faq.Answer#</th>
<th align="right">#faq.Answer#</th>
<td>
<textarea rows=10 cols=50 name=answer>@answer@</textarea>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit value="@submit_label@"></td>
<td><input type="submit" value="@submit_label@"></td>
</tr>
<tr>
<td>&nbsp;</td>
......
......@@ -16,12 +16,12 @@ ad_page_contract {
set package_id [ad_conn package_id]
ad_require_permission $package_id faq_modify_faq
permission::require_permission -object_id $package_id -privilege faq_modify_faq
set action "q_and_a-edit-2"
set submit_label [_ faq.Update_This_QA]
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
db_1row q_and_a_info "select question, answer,faq_name,qa.faq_id
from faq_q_and_as qa, faqs f
......@@ -30,6 +30,6 @@ db_1row q_and_a_info "select question, answer,faq_name,qa.faq_id
set context [list [list "one-faq?faq_id=$faq_id" "$faq_name"] "One Q&A"]
set delete_url "q_and_a-delete?[export_vars { entry_id faq_id }]"
set delete_url [export_vars -base q_and_a-delete { entry_id faq_id }]
ad_return_template
......@@ -8,19 +8,19 @@ ad_page_contract {
@creation-date 2000-10-25
} {
faq_id:integer,notnull,trim
faq_id:naturalnum,notnull,trim
question:html,notnull,trim
answer:html,notnull,trim
entry_id:naturalnum,optional
insert_p:optional
insert_p:boolean,optional
}
set package_id [ad_conn package_id]
ad_require_permission $package_id faq_create_faq
permission::require_permission -object_id $package_id -privilege faq_create_faq
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
set creation_ip [ad_conn host]
if {$insert_p == "t" } {
......@@ -43,7 +43,7 @@ if {$insert_p == "t" } {
db_dml faq_update $sql_update_q_and_as
set sort_key [expr $old_sort_key + 1]
set sort_key [expr {$old_sort_key + 1}]
set entry_id [db_nextval acs_object_id_seq]
}
......@@ -74,4 +74,4 @@ db_transaction {
}
}
ad_returnredirect "one-faq?[export_url_vars faq_id]"
ad_returnredirect [export_vars -base one-faq {faq_id}]
<master>
<property name="title">@page_title;noquote@</property>
<property name="context">@context;noquote@</property>
<property name="doc(title)">@page_title;literal@</property>
<property name="context">@context;literal@</property>
<property name="focus">question.question</property>
<form action="@target@" name="question">
<div>
<input type="hidden" name="insert_p" value="@insert_p@">
<input type="hidden" name="faq_id" value="@faq_id@">
</div>
<if @insert_p@ eq "t">
<input type="hidden" name="entry_id" value="@entry_id@">
</if>
<blockquote>
<table>
<tr valign="top">
......@@ -29,6 +29,5 @@
<td><input type="submit" value="@submit_label@"></td>
</tr>
</table>
</blockquote>
</form>
......@@ -24,7 +24,7 @@ ad_page_contract {
answer_q:onevalue
}
ad_require_permission [ad_conn package_id] faq_create_faq
permission::require_permission -object_id [ad_conn package_id] -privilege faq_create_faq
db_1row get_name "select faq_name from faqs where faq_id=:faq_id"
......
......@@ -10,8 +10,8 @@ ad_page_contract {
taken largely from acs 3.4 faq/swap.tcl
} {
entry_id:integer,notnull
faq_id:integer,notnull
entry_id:naturalnum,notnull
faq_id:naturalnum,notnull
}
set package_id [ad_conn package_id]
......@@ -51,5 +51,5 @@ db_transaction {
db_release_unused_handles
ad_returnredirect "one-faq?[export_url_vars faq_id]"
ad_returnredirect [export_vars -base one-faq {faq_id}]
<master>
<property name="context">@context;noquote@</property>
<property name="title">#faq.FAQs#</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">#faq.FAQs#</property>
<h1>#faq.FAQs#</h1>
<p>
@notification_chunk;noquote@
</p>
<if @admin_p@ eq 1>
<p>
<a href="./admin" class="button">#faq.administer#</a>
<a href="./admin" class="button" title="#faq.administer#">#faq.administer#</a>
</p>
</if>
<if @faqs:rowcount@ eq 0>
<i>#faq.lt_no_FAQs#</i><p>
<p><i>#faq.lt_no_FAQs#</i></p>
</if>
<else>
<ul>
<multiple name=faqs>
<li><a href="one-faq?faq_id=@faqs.faq_id@">@faqs.faq_name@</a>
<li><a href="one-faq?faq_id=@faqs.faq_id@" title="#faq.View# @faqs.faq_name@">@faqs.faq_name@</a>
</li>
</multiple>
</ul>
......
......@@ -21,24 +21,24 @@ set package_id [ad_conn package_id]
set context {}
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
ad_require_permission $package_id faq_view_faq
permission::require_permission -object_id $package_id -privilege faq_view_faq
set admin_p 0
if {[ad_permission_p -user_id $user_id $package_id faq_admin_faq]} {
set admin_p 1
}
set notification_chunk [notification::display::request_widget \
-type all_faq_qa_notif \
-object_id [ad_conn package_id] \
-pretty_name FAQs \
-url [ad_conn url] \
]
db_multirow faqs faq_select {
select faq_id, faq_name
from acs_objects o, faqs f
where object_id = faq_id
and context_id = :package_id
and disabled_p = 'f'
order by faq_name
if {[permission::permission_p -party_id $user_id -object_id $package_id -privilege faq_admin_faq]} {
set admin_p 1
}
db_multirow faqs faq_select "" {}
ad_return_template
set url /[ad_conn extra_url]
if {[regexp {^/+cat/+([^/]+)/*} $url \
ignore_whole sw_category_id]} {
# SWC (Site-wide categories)
# As the categories package currently doesn't have short names we
# are using IDs. We don't check whether this is a valid integer here
# because index.tcl will take care of that.
rp_form_put category_id $sw_category_id
}
rp_internal_redirect "/packages/faq/www/one-faq"
<?xml version="1.0"?>
<queryset>
<fullquery name="faq_select">
<querytext>
select faq_id, faq_name
from acs_objects o, faqs f
where object_id = faq_id
and context_id = :package_id
and disabled_p = 'f'
order by faq_name
</querytext>
</fullquery>
</queryset>
<master>
<property name="context">@context;noquote@</property>
<property name="title">@faq_name;noquote@</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">#faq.FAQs#</property>
<h1>@faq_info.faq_name;noquote@</h1>
<p>
@notification_chunk;noquote@
</p>
<property name="doc(title)">@faq_info.faq_name;literal@</property>
<property name="displayed_object_id">@faq_id;literal@</property>
<table width="70%" border="0">
<tr><td align="left" valign="top">
<if @one_question:rowcount@ eq 0>
<i>#faq.lt_no_questions#</i>
<p>
</if>
<else>
<ol>
<multiple name="one_question">
<if @separate_p@ true>
<if @faq_info.separate_p@ true>
<li>
<a href="one-question?entry_id=@one_question.entry_id@">@one_question.question;noquote@</a>
<a href="one-question?entry_id=@one_question.entry_id@" title="#faq.View_QA#">@one_question.question;noquote@</a>
</li>
</if>
<if @separate_p@ false>
<if @faq_info.separate_p@ false>
<li>
<a href="#@one_question.entry_id@">@one_question.question;noquote@</a>
<a href="#@one_question.entry_id@" title="#faq.Jump_to_Answer#">@one_question.question;noquote@</a>
<if @use_categories_p@>
<a href="categories/categorize?object_id=@one_question.entry_id@&amp;faq_id=@faq_id@" title="#faq.Categorize_Q#">Categorize</a>
</if>
</li>
</if>
</multiple>
</ol>
<if @separate_p@ false>
<if @faq_info.separate_p@ false>
<hr>
<ol>
<multiple name="one_question">
<li>
<a name=@one_question.entry_id@></a>
<a name="@one_question.entry_id@" title="#faq.View_QA#"></a>
<p>
<b>#faq.Q#</b> <i>@one_question.question;noquote@</i>
</p>
<p>
<b>#faq.A#</b> @one_question.answer;noquote@
<p>
</p>
</li>
</multiple>
</ol>
</if>
</else>
</td><td align="right" valign="top">
<if @use_categories_p@>
<multiple name="categories">
<h2>@categories.tree_name@</h2>
<group column="tree_id">
<a href="@package_url@cat@categories.category_id@?faq_id=@faq_id@&amp;category_id=@categories.category_id@" title="#faq.View_in_Category# @categories.category_name@">@categories.category_name@</a><br>
</group>
</multiple>
<br><a href="@package_url@one-faq?faq_id=@faq_id@" title="#faq.All_QA#">#faq.All_QA#</a>
</if>
</td></tr>
</table>
<if @gc_comments@ not nil>
<p>#faq.lt_Comments_on_this_faq#
<ul>
@gc_comments;noquote@
</ul>
</p>
</if>
<if @gc_link@ not nil>
<p>@gc_link;noquote@</p>
</if>
ad_page_contract {
View contents of one faq
View contents of one faq. Filter by categories if enabled
@author Elizabeth Wirth (wirth@ybos.net)
@author Jennie Housman (jennie@ybos.net)
@author Nima Mazloumi (nima.mazloumi@gmx.de)
@creation-date 2000-10-24
} {
{category_id:naturalnum,optional {}}
faq_id:naturalnum,notnull
}
......@@ -14,17 +15,66 @@ ad_page_contract {
set package_id [ad_conn package_id]
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
permission::require_permission -object_id $package_id -privilege faq_view_faq
faq::get_instance_info -arrayname faq_info -faq_id $faq_id
if { ![info exists faq_info(faq_name)] } {
ns_returnnotfound
ad_script_abort
}
set context [list $faq_info(faq_name)]
# Use Categories?
set use_categories_p [parameter::get -parameter "EnableCategoriesP" -default 0]
if { $use_categories_p == 1 && $category_id ne "" } {
db_multirow one_question categorized_faq "" {}
} else {
db_multirow one_question uncategorized_faq "" {}
}
ad_require_permission $package_id faq_view_faq
db_1row faq_info "select faq_name, separate_p from faqs where faq_id=:faq_id"
# Site-Wide Categories
if { $use_categories_p == 1} {
set package_url [ad_conn package_url]
if { $category_id ne "" } {
set category_name [category::get_name $category_id]
if { $category_name eq "" } {
ad_return_exception_page 404 "No such category" "Site-wide \
Category with ID $category_id doesn't exist"
return
}
set context [list $faq_name]
# Replace last element of context (the FAQ name) with link to that FAQ and current category name
set context [lreplace $context end end [list "one-faq?faq_id=$faq_id" $faq_info(faq_name)] $category_name]
}
db_multirow -unclobber -extend { category_name tree_name } categories faq_categories "" {
set category_name [category::get_name $category_id]
set tree_name [category_tree::get_name $tree_id]
}
}
db_multirow one_question q_and_a_info "select entry_id, faq_id, question, answer, sort_key
from faq_q_and_as
where faq_id = :faq_id
order by sort_key"
set notification_chunk [notification::display::request_widget \
-type one_faq_qa_notif \
-object_id $faq_id \
-pretty_name $faq_info(faq_name) \
-url [ad_conn url]?faq_id=$faq_id \
]
set return_url "[ad_conn url]?faq_id=$faq_id"
if { [apm_package_installed_p "general-comments"]
&& [parameter::get -package_id $package_id -parameter GeneralCommentsP -default 0] } {
set gc_link [general_comments_create_link -link_attributes { title="#general-comments.Add_comment#" } $faq_id $return_url]
set gc_comments [general_comments_get_comments $faq_id $return_url]
} else {
set gc_link ""
set gc_comments ""
}
ad_return_template
<?xml version="1.0"?>
<queryset>
<fullquery name="categorized_faq">
<querytext>
select entry_id, faq_id, question, answer, sort_key
from faq_q_and_as qa, category_object_map com
where faq_id = :faq_id and
com.object_id = qa.entry_id and
com.category_id = :category_id
order by sort_key
</querytext>
</fullquery>
<fullquery name="uncategorized_faq">
<querytext>
select entry_id, faq_id, question, answer, sort_key
from faq_q_and_as
where faq_id = :faq_id
order by sort_key
</querytext>
</fullquery>
<fullquery name="faq_categories">
<querytext>
select c.category_id as category_id, c.tree_id
from categories c, category_tree_map ctm
where ctm.tree_id = c.tree_id
and ctm.object_id = :package_id
</querytext>
</fullquery>
</queryset>
<master>
<property name="context">@context;noquote@</property>
<property name="title">#faq.One_Question#</property>
<property name="context">@context;literal@</property>
<property name="doc(title)">#faq.One_Question#</property>
<property name="displayed_object_id">@entry_id;literal@</property>
<h1>@faq_name;noquote@</h1>
<p>
<b>#faq.Q#</b> @question;noquote@
<P>
<b>#faq.A#</b> @answer;noquote@
</p>
<p>
<b>#faq.A#</b> @answer;noquote@
</p>
<p>
<a href="index">#faq.Back_to_FAQs#</a>
<a href="one-faq?faq_id=@faq_id@" title="#faq.Back_to_current_FAQ# @faq_name;noquote@">#faq.Back_to_current_FAQ# @faq_name;noquote@</a>
<br>
<a href="index" title="#faq.Back_to_FAQs#">#faq.Back_to_FAQs#</a>
</p>
......@@ -14,14 +14,11 @@ ad_page_contract {
set package_id [ad_conn package_id]
ad_require_permission $package_id faq_view_faq
permission::require_permission -object_id $package_id -privilege faq_view_faq
set user_id [ad_verify_and_get_user_id]
set user_id [ad_conn user_id]
db_1row q_and_a_info "select question, answer,faq_name, f.faq_id
from faq_q_and_as qa, faqs f
where entry_id = :entry_id
and qa.faq_id = f.faq_id"
db_1row question_info ""
set context [list [list "one-faq?faq_id=$faq_id" $faq_name] [_ faq.One_Question]]
......
<?xml version="1.0"?>
<queryset>
<fullquery name="question_info">
<querytext>
select question, answer,faq_name, f.faq_id
from faq_q_and_as qa, faqs f
where entry_id = :entry_id
and qa.faq_id = f.faq_id
</querytext>
</fullquery>
</queryset>
\ No newline at end of file
......@@ -3,7 +3,7 @@ set file_stub_2 [template::util::url_to_file other_name [ad_conn file]]
set key [ad_conn package_key]
set root_dir [acs_package_root_dir $key]
set root_dir_length [string length $root_dir]
set file_name [string replace $file_stub 0 [expr $root_dir_length + 4]]
set file_name [string replace $file_stub 0 [expr {$root_dir_length + 4}]]
set template_location "$root_dir/templates/first/$file_name"
ns_return 200 text/html "
......
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