diff options
-rw-r--r-- | faqs-sample | 44 | ||||
-rw-r--r-- | languages/ca.php | 6 | ||||
-rw-r--r-- | languages/en.php | 15 | ||||
-rw-r--r-- | languages/es.php | 15 | ||||
-rw-r--r-- | manifest.xml | 27 | ||||
-rw-r--r-- | start.php | 32 | ||||
-rw-r--r-- | vendors/jquery-stoc/jquery.stoc.js | 80 | ||||
-rw-r--r-- | views/default/expages/menu.php | 23 | ||||
-rw-r--r-- | views/default/js/simple_faq/toc.php | 24 |
9 files changed, 266 insertions, 0 deletions
diff --git a/faqs-sample b/faqs-sample new file mode 100644 index 000000000..7152111ff --- /dev/null +++ b/faqs-sample @@ -0,0 +1,44 @@ +<h3>Cuentas, perfil y personalización</h3> +<h4>¿Cómo cambio la cuenta de email asociada a mi usuario (habitante)?</h4><p>Puedes cambiarlo en "Configuración", en la esquina superior derecha.</p> +<h4>¿Dónde puedo encontrar manuales y más ayuda en N-1?</h4><p>Puedes ir al <a href="https://n-1.cc/pg/groups/9394/help/">Grupo Help!</a> y consultar la wiki, donde tenemos un <a href="https://n-1.cc/pg/dokuwiki/9394">Manual</a> en actualización permanente. Si no encuentras allí lo que buscas, pregúntalo en el foro del grupo.</p> +<h4>¿Cómo puedo darme de baja y eliminar mi perfil?</h4><p>Si quieres eliminar tu perfil, ve a “Editar datos de perfil” y pulsa en el botón de “Suicidio” que hay abajo del todo. Borraremos todos tus datos, excepto los que estén asociados a un grupo, que pasarán a figurar como propios de quien administre el grupo. Si ese habitante tampoco existe ya, se transferirán a otra admin o a un miembro aleatorio.</p> +<p>De cualquier manera, para tener un control exhaustivo de tus datos te sugerimos que antes de irte los borres manualmente. Nuestra intención es permitir exportar los datos para que puedas guardarlos fácilmente cuando quieras darte de baja, pero esta funcionalidad aún no esta disponible.</p> +<h4>¿Cómo puedo cambiar de nombre?</h4><p>En el menú de "Configuración" puedes cambiar el nombre que aparece asociado a tu actividad en la red. Tu nombre para loguearte y la url de tu perfil seguirán siendo los que elegiste al abrir la cuenta, si quieres cambiarlos tendrás que crear una nueva.</p> +<h4>¿Cómo cambio la imagen de fondo de mi perfil?</h4><p>En el menú de "Configuración" tienes que dirigirte a "Tema personal", donde puedes crear tu propio tema (con tu imagen y colores preferidos) o elegir entre uno de los temas que han creado otras habitantes.</p> +<h4>¿Puedo utilizar una misma cuenta para todas las redes de Lorea?</h4><p>Tu cuenta en cualquier red de Lorea funciona como una <a href="http://es.wikipedia.org/wiki/OpenID">OpenID</a>, que es un estándar de identificación descentralizado. Así no tendrás que crearte una cuenta nueva para cada red y además es un primer paso para la federación de estas redes (estamos desarrollando Lorea para que haya más servicios compartidos y más comunicación entre sus semillas). También podrás utilizarla como tu cuenta de usuario en cualquier otro servicio de internet que soporte OpenID.</p> +<p>Una vez que tengas tu cuenta creada en alguna de las redes de Lorea, puedes entrar en cualquier otra haciendo clic en el logo OpenID de la página principal, utilizando tu usuarix y añadiendo @nombre_de_la_red. Por ejemplo, si ya eres federica en N-1, puedes entrar en ALD con la ID federica@n-1.cc. La primera vez que lo hagas te pediremos que confirmes que quieres usar esa ID. Si lo haces cada vez que vuelvas sólo tendrás que decirnos tu OpenID (tu navegador podrá recordar que te fiaste de nosotrxs la primera vez).</p> +<h3>Federación</h3> +<h4>¿Puedo utilizar mi cuenta OpenID?</h4><p>Puedes entrar haciendo clic en el logo OpenID de la página principal. Cualquier usuarix de Lorea funciona como OpenID, pero si quieres usar otra cuenta la primera vez que lo hagas te pediremos un email y un nombre para saber cómo dirigirnos a ti. Te mandaremos un email con un enlace en el que tendrás que clicar para confirmar que ese es tu correo y tu proveedor de identidad también te preguntará si confías en nosotrxs. Si lo haces, podrás entrar en esta red sin tener que crearte una cuenta específica y cada vez que vuelvas sólo tendrás que decirnos tu usuarix OpenID (tu navegador recordará que te fiaste de nosotrxs la primera vez).</p> +<h4>¿Cómo funciona una cuenta OpenID?</h4><p><a href="http://es.wikipedia.org/wiki/OpenID">OpenID</a> es un estándar de identificación descentralizado que sirve para poder usar una misma cuenta de usuarix en distintos sitios. Se basa en dos puntos:</p> +<ol> +<li>Un "proveedor de identidad" en el que puedes crear y alojar tu OpenID. Te fías de él para que sea quien se ocupe de gestionar tu identidad personal. Puede que ya tengas una cuenta en algún servicio que provee OpenID, aquí tienes <a href="http://openid.net/get-an-openid/">una lista con los más populares</a>, pero como Lorea también es un proveedor te recomendamos que nos uses. Tenemos como objetivo aumentar la comunicación entre las distintas semillas de Lorea y usar una cuenta única puede ser el primer paso para la federación.</li> +<li>Sitios que se fían de estos proveedores, por ejemplo esta red social. Puedes entrar haciendo clic en el logo OpenID de la página principal e insertando tu usuarix.</li> +</ol> +<p>La principal ventaja es que sólo tienes que memorizar una cuenta y una contraseña, te ahorras engorrosos formularios de registro y podrás moverte por todas las redes de Lorea (y otros muchos servicios). Puede ser más seguro porque controlas qué información das y a quién en todo momento, pero también existe la desventaja de que te estás jugando toda tu seguridad y tu privacidad a la misma carta (la de tu proveedor). Así que si no te fías de nadie puedes montarte tu propio proveedor de identidad.</p> +<h3>Grupos</h3> +<h4>We wish for a horizontal structure, but groups have one "owner". Is it possible for a group to belong equally to all its members?</h4><p>Yes, it is: if you are owner or admin of the group, check the left-side menu for "Edit group" and then "Manage group operators", where you can turn all the group members into owners (privileges can be dropped by admins there too).</p> +<h4>¿Cómo abrir un grupo en N-1?</h4><p>Tienes que ir al listado de "Grupos" y hacer clic en "Crear un grupo nuevo". La habitante que cree el grupo será su administradora y podrá editar su configuración, pero podrá hacer administradoras a otras habitantes que formen parte del grupo.</p> +<h4>¿Cómo configurar la visibilidad de los elementos de un grupo?</h4><p>Por ahora no existe esta función, los elementos aparecen en la portada de tu grupo siempre en el mismo orden. Sólo puedes elegir qué elementos habilitas y cuáles no (mediante el menú "Editar grupo" si eres admin).</p> +<h3>Herramientas y aplicaciones</h3> +<h4>¿Dónde puedo resolver más dudas sobre herramientas y aplicaciones?</h4><p>Puedes ir al <a href="https://n-1.cc/pg/groups/9394/help/">Grupo Help!</a> y consultar la wiki, donde tenemos un <a href="https://n-1.cc/pg/dokuwiki/9394">Manual</a> en actualización permanente con una sección sobre <a href="https://n-1.cc/pg/dokuwiki/9394/doku.php?id=herramientas_y_aplicaciones">Herramientas y aplicaciones</a>. Si no encuentras allí lo que buscas, pregúntalo en el foro del grupo o vuelve aquí y haz clic en "Hacer una pregunta" en la columna de la izquierda.</p> +<h4>How do I delete once created wiki pages?</h4><p>You have to edit the page and delete all the content. (Normally, control+A and delete).</p> +<h3>Proyecto Lorea / N-1</h3> +<h4>¿Por qué llamáis "habitantes" a los usuarios?</h4><p>Esto no es un servicio comercial, sino una comunidad de personas que construyen un entorno de comunicación seguro, donde estén garantizadas la privacidad y el control propio de sus datos. Nos gusta pensar que las personas no usan las redes de Lorea, sino que las habitan conscientemente.</p> +<h4>¿Qué significa N-1?</h4><p>N-1 es una noción utilizada por Deleuze y Guattari en el <a href="http://www.con-versiones.com/nota0475.htm" title="http://www.con-versiones.com/nota0475.htm">libro <em>Mil Mesetas</em>, en Introducción al Rizoma</a> o la multiplicidad no reducible al Uno. Es "la resta que permite multiplicar". Es el espacio de menos, que no suma dimensiones a un conjunto, sino que permite, a través del desarrollo de una interfaz-herramienta compartida, componer y recombinar en un común abierto</p> +<h4>¿Cómo se financia Lorea?</h4><p>Actualmente son las personas que se encuentran desarrollando el proyecto las que financian la mayoría de los costes, tanto con recursos económicos como con su tiempo y trabajo. Hemos recibido algunas aportaciones pero aún no cubren todas las necesidades. Sugerimos a las habitantes que hagan una donación anual equivalente a lo que ganen en dos horas de trabajo y a los colectivos a aportar fondos en función de sus posibilidades. Puedes ver más información <a href="https://n-1.cc/pg/pages/view/14884/">aquí</a>.</p> +<h4>¿Dónde puedo enterarme de las novedades sobre Lorea?</h4><p>En el <a href="https://n-1.cc/pg/groups/7826/lorea/">grupo Lorea</a> se está documentando el proyecto. Su <a href="https://n-1.cc/pg/blog/group:7826">blog</a> se utiliza para anunciar herramientas implementadas o en desarrollo.</p> +<p>Además contiene un <a href="https://lorea.cc/planet" target="_blank" title="planet lorea">Planet</a> donde poder seguir las noticias públicas de los blogs de todas las redes sociales en su conjunto.</p> +<h4>¿Cómo participar en el desarrollo de Lorea y N-1?</h4><p>Hay varios canales. Por favor lee las instrucciones con atención para ayudarnos a gestionar la información ordenadamente.</p> +<ol> +<li><strong>Participar en el grupo de <a href="https://n-1.cc/mod/groups/topicposts.php?topic=7169&group_guid=5241">Testers de la red social</a>.</strong> En su foro se discuten cuestiones de usabilidad y desarrollo de las herramientas. Por ejemplo, en el hilo <a href="https://n-1.cc/mod/groups/topicposts.php?topic=7169&group_guid=5241">Feature Suggestions</a> puedes explicar características o funciones que creas necesarias para mejorarlas. Antes de opinar te pedimos que revises el trabajo que ya se ha hecho. También usamos las páginas para redactar los manuales de usuarix y otros textos colaborativamente.</li> +<li><strong>Reportar errores en el grupo <a href="https://n-1.cc/pg/groups/6217/bughunting">Bughunting</a>.</strong> En su foro puedes reportar los bugs, errores, comportamientos extraños y fenómenos paranormales que observes en N-1 o cualquiera de las otras redes de Lorea. Lxs administradorxs de N-1 nos encargaremos de revisar los mensajes y añadir a la <a href="https://n-1.cc/pg/tasks/group:6217">lista de tareas</a> lo que deba ser arreglado.</li> +<li><strong>Participar en el grupo <a href="https://n-1.cc/pg/groups/7826/lorea">Lorea</a></strong>. Este grupo sirve para el desarrollo y mantenimiento de las redes sociales alojadas dentro de Lorea. Los anuncios respecto a nuevos plugins, funcionalidades y otros avances listos por instalar, probar y usar se harán desde el blog de este grupo de trabajo.</li> +<li><strong>Suscribirte a la lista de correo <a href="https://lists.rhizomatik.net/listinfo/mycelia-community">Mycelia-community</a>.</strong> Es el punto de encuentro de habitantxs y grupos presentes en Lorea. Cualquiera que quiera crear una nueva red social debe presentar su propuesta por esta lista. Si quieres colaborar en el desarrollo técnico también puedes dirigirte aquí para coordinarte con el equipo "techie".</li> +<li><strong>Ponerte en contacto con lxs administradorxs de la red.</strong> Si necesitas ayuda o tienes más preguntas dirígete al perfil <a href="https://n-1.cc/pg/profile/n1crew">N1crew</a>, desde donde compartimos más información y puedes enviarnos mensajes. Lxs administradorxs de las distintas redes de Lorea pueden crear los canales de interacción con sus usuarixs que consideren oportunos y deben canalizar los reportes de bugs y peticiones de desarrollo a los dos grupos de N-1 para Testers y Bughunting.</li> +<li><strong>Contribuir a la sostenibilidad de Lorea.</strong> Lorea es un proyecto sin ánimo de lucro pero su mantenimiento acarrea algunos costes y podremos mejorar el servicio si nos ayudas con donaciones económicas o adoptando a unx programadorx durante unas semana. Puedes leer <a href="https://n-1.cc/pg/pages/view/14884/">más detalles económicos aquí</a>.</li> +</ol> +<h3>Seguridad y privacidad</h3> +<h4>¿Cómo hago una copia de seguridad del contenido de mi grupo o mi perfil?</h4><p>Lo sentimos, pero por ahora no tenemos implementada la posibilidad de exportar tus datos para hacer copias de seguridad automáticamente.</p> +<h4>¿Qué es una dirección de correo ofuscada?</h4><p>Quiere decir que en vez de dar tu dirección de correo verdadera (p.ej: pepita@movements.net) el sistema dará una dirección inventada (e inservible :P) estilo pepita@n-1.cc.</p> +<p>Estamos pensando que puedas recibir respuestas en esta direccion pero de momento simplemente serviria para q no des tu direccion.</p> +<p>El sistema de listas de correo es capaz de ofuscar tu correo, de forma que cuando escribas en el foro la gente no reciba tu cuenta verdadera (q podrian usar para saber quien eres o espamearte).</p> diff --git a/languages/ca.php b/languages/ca.php new file mode 100644 index 000000000..40dfc8993 --- /dev/null +++ b/languages/ca.php @@ -0,0 +1,6 @@ +<?php +$language = array ( + 'faq' => 'PMF', + 'expages:faq' => 'Preguntes Més Freqüents', +); +add_translation("ca", $language);
\ No newline at end of file diff --git a/languages/en.php b/languages/en.php new file mode 100644 index 000000000..625ffee6e --- /dev/null +++ b/languages/en.php @@ -0,0 +1,15 @@ +<?php +/** + * FAQ pages English language file + */ + +$english = array( + + /** + * Menu items and titles + */ + 'faq' => "FAQ", + 'expages:faq' => "Frequently Asked Questions", +); + +add_translation("en", $english); diff --git a/languages/es.php b/languages/es.php new file mode 100644 index 000000000..b7c1fce44 --- /dev/null +++ b/languages/es.php @@ -0,0 +1,15 @@ +<?php +/** + * FAQ pages Spanish language file + */ + +$spanish = array( + + /** + * Menu items and titles + */ + 'faq' => "Preguntas frequentes", + 'expages:faq' => "Preguntas frequentes", +); + +add_translation("es", $spanish); diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 000000000..d84f2d999 --- /dev/null +++ b/manifest.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8"> + <name>Simple FAQ</name> + <author>Lorea developers</author> + <version>1.2</version> + <description>A FAQ plugin.</description> + <website>https://lorea.cc/</website> + <copyright>(C) Lorea 2012</copyright> + <license>GNU Affero General Public License, version 3 or higher</license> + <requires> + <type>elgg_release</type> + <version>1.8</version> + </requires> + <requires> + <type>plugin</type> + <name>externalpages</name> + </requires> + <requires> + <type>priority</type> + <priority>after</priority> + <plugin>externalpages</plugin> + </requires> + <conflicts> + <type>plugin</type> + <name>faq</name> + </conflicts> +</plugin_manifest> diff --git a/start.php b/start.php new file mode 100644 index 000000000..c4410eaa7 --- /dev/null +++ b/start.php @@ -0,0 +1,32 @@ +<?php +/** + * A Frequently Asked Question Plugin + * + * @package SimpleFAQ + */ + +elgg_register_event_handler('init', 'system', 'simple_faq_init'); + +/** + * Simple FAQ plugin initialization functions. + */ +function simple_faq_init() { + + // Footer navigation + $item = new ElggMenuItem('faq', elgg_echo('faq'), 'faq'); + elgg_register_menu_item('footer', $item); + + // Register a page handler, so we can have nice URLs + elgg_register_page_handler('faq', 'simple_faq_page_handler'); + + // register the faqs' JavaScript + $simple_faq_js = elgg_get_simplecache_url('js', 'simple_faq/toc'); + elgg_register_simplecache_view('js/simple_faq/toc'); + elgg_register_js('elgg.simple_faq', $simple_faq_js); + +} + +function simple_faq_page_handler($page) { + elgg_load_js('elgg.simple_faq'); + expages_page_handler($page, 'faq'); +} diff --git a/vendors/jquery-stoc/jquery.stoc.js b/vendors/jquery-stoc/jquery.stoc.js new file mode 100644 index 000000000..dc8f58398 --- /dev/null +++ b/vendors/jquery-stoc/jquery.stoc.js @@ -0,0 +1,80 @@ +(function($){
+ $.fn.stoc = function(options) {
+ //Our default options
+ var defaults = {
+ search: "body", //where we will search for titles
+ depth: 6, //how many hN should we search
+ start: 1, //which hN will be the first (and after it we go just deeper)
+ stocTitle: "<h2>Contents</h2>", //what to display before our box
+ listType: "ul", //could be ul or ol
+ smoothScroll: 1
+ };
+
+ //let's extend our plugin with default or user options when defined
+ var options = $.extend(defaults, options);
+
+ return this.each(function() {
+ //"cache" our target and search objects
+ obj = $(this); //target
+ src = $(options.search); //search
+ //let's declare some variables. We need this var declaration to create them as local variables (not global)
+ var appHTML = "", tagNumber = 0, txt = "", id = "", before = "", after = "", previous = options.start, start = options.start, depth = options.depth, i = 0, srcTags = "h" + options.start, cacheHN = "";
+
+ //which tags we will search
+ while ( depth > 1) {
+ start++; //we will just get our start level and numbers higher than it
+ srcTags = srcTags + ", h" + start;
+ depth--; //since went one level up, our depth will go one level down
+ }
+ src.find(srcTags).each(function() {
+ //we will cache our current H element
+ cacheHN = $(this);
+ //if we are on h1, 2, 3...
+ tagNumber = ( cacheHN.get(0).tagName ).substr(1);
+
+ //sets the needed id to the element
+ id = cacheHN.attr('id');
+ if (id == null || id == "") { //if it doesn't have only, of course
+ id = "h" + tagNumber + "_" + i;
+ cacheHN.attr('id', id);
+ }
+ //our current text
+ txt = cacheHN.text();
+
+ switch(true) { //with switch(true) we can do comparisons in each case
+ case (tagNumber > previous) : //it means that we went down one level (e.g. from h2 to h3)
+ appHTML = appHTML + "<" + options.listType +"><li>"+ before +"<a href=\"#"+ id + "\">" + txt + "</a>";
+ previous = tagNumber;
+ break;
+ case (tagNumber == previous) : //it means that stay on the same level (e.g. h3 and stay on it)
+ appHTML = appHTML + "</li><li>"+ before +"<a href=\"#"+ id + "\">" + txt + "</a>";
+ break;
+ case (tagNumber < previous) : //it means that we went up but we don't know how much levels (e.g. from h3 to h2)
+ while(tagNumber != previous) {
+ appHTML = appHTML + "</" + options.listType +"></li>";
+ previous--;
+ }
+ appHTML = appHTML + "<li>"+ before +"<a href=\"#"+ id + "\">" + txt + "</a></li>";
+ break;
+ }
+ i++;
+ });
+ //corrects our last item, because it may have some opened ul's
+ while(tagNumber != options.start) {
+ appHTML = appHTML + "</" + options.listType +">";
+ tagNumber--;
+ }
+ //append our html to our object
+ appHTML = options.stocTitle + "<"+ options.listType + ">" + appHTML + "</" + options.listType + ">";
+ obj.append(appHTML);
+
+ //our pretty smooth scrolling here
+ // acctually I've just compressed the code so you guys will think that I'm the man . Source: http://css-tricks.com/snippets/jquery/smooth-scrolling/
+ if (options.smoothScroll == 1) {
+ $(window).load(function(){
+ function filterPath(string){return string.replace(/^\//,'').replace(/(index|default).[a-zA-Z]{3,4}$/,'').replace(/\/$/,'')}var locationPath=filterPath(location.pathname);var scrollElem=scrollableElement('html','body');obj.find('a[href*=#]').each(function(){var thisPath=filterPath(this.pathname)||locationPath;if(locationPath==thisPath&&(location.hostname==this.hostname||!this.hostname)&&this.hash.replace(/#/,'')){var $target=$(this.hash),target=this.hash;if(target){var targetOffset=$target.offset().top;$(this).click(function(event){event.preventDefault();$(scrollElem).animate({scrollTop:targetOffset},400,function(){location.hash=target})})}}});function scrollableElement(els){for(var i=0,argLength=arguments.length;i<argLength;i++){var el=arguments[i],$scrollElement=$(el);if($scrollElement.scrollTop()>0){return el}else{$scrollElement.scrollTop(1);var isScrollable=$scrollElement.scrollTop()>0;$scrollElement.scrollTop(0);if(isScrollable){return el}}}return[]}
+ });
+ }
+ });
+ };
+})(jQuery);
diff --git a/views/default/expages/menu.php b/views/default/expages/menu.php new file mode 100644 index 000000000..a88536924 --- /dev/null +++ b/views/default/expages/menu.php @@ -0,0 +1,23 @@ +<?php +/** + * External pages menu + * + * @uses $vars['type'] + */ + +$type = $vars['type']; + +//set the url +$url = $vars['url'] . "admin/site/expages?type="; + +$pages = array('about', 'terms', 'privacy', 'faq'); +$tabs = array(); +foreach ($pages as $page) { + $tabs[] = array( + 'title' => elgg_echo("expages:$page"), + 'url' => "admin/appearance/expages?type=$page", + 'selected' => $page == $type, + ); +} + +echo elgg_view('navigation/tabs', array('tabs' => $tabs, 'class' => 'elgg-form-settings')); diff --git a/views/default/js/simple_faq/toc.php b/views/default/js/simple_faq/toc.php new file mode 100644 index 000000000..2b1621f88 --- /dev/null +++ b/views/default/js/simple_faq/toc.php @@ -0,0 +1,24 @@ +<?php +/** + * Show the FAQs' Table of Contents + * + * @package SimpleFAQ + */ + +include(elgg_get_plugins_path() . 'simple_faq/vendors/jquery-stoc/jquery.stoc.js'); + +?> + +elgg.provide('elgg.simple_faq'); + +elgg.simple_faq.init = function() { + $(function(){ + $("<div class="elgg-simplefaq-toc"></div>").prependTo(".elgg-main .elgg-output").stoc({ + search: ".elgg-main .elgg-output", + stocTitle: "", + listType: "ol", + }); + }); +}; + +elgg.register_hook_handler('init', 'system', elgg.simple_faq.init); |