IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)


Consulteu també:

https://sourceforge.net/projects/webfaltes
http://www.iesebre.com/webfaltes_wiki/index.php/P%C3%A0gina_principal

Contingut

Centres

Procediment canvi de període acadèmic

Consulteu Webfaltes. Procediment canvi de període acadèmic

TODO

Migració: bootstrap i Code Igniter

  • Pàgina de login: nova pàgina de Login
  • No té opció d'establir una imatge amunt?
  • Desplegable tipus usuari: fora
  • Un cop dins:
  • Foto capçalera: div que es pugui amagar
  • Passar les pestanyes/tabs a un menú de navegació boostrap: mirar si es poden posar en colors bluas tipus imatge institucional
  • Boostrap té unes molletes de pa: substituir les actuals
  • Segons nivells: per exemple informes. Utilitzar boostrap menu de navegació no paina amb una llista
  • Pestanya tancar fora, login part superior dreta ja té aquesta opció
  • Imatge Ldap: també pendent a ebre-inventory

setup

Configuració després instal·lació

2012-13

31 de març:

  • Scripts Javascript. Carpeta /usr/share/javascript. Vegeu javascript
  • carpeta themes?
  • El menu blau nou d'ocultar no es veu correctament a chrome! POdem fer quelcom més sencill i que funcioni a tots els navegadors?
  • Josep Laló utilitza send_mail.php?
  • DOCUMENTAR JQUERY!!!: fitxer jquery.js. Es pot fer amb llibreria externa sense incloure? i si s'inclou o podem fer a libs?
$ grep -n "jquery" -r .
./informe_resum_credit_di_df_1.php:207: //http://www.anieto2k.com/2008/05/27/combos-dependientes-accesibles-php-jquery/
./smarty/templates/selecalumn.tpl:21:<link href="http://185.13.76.222/webfaltes/asset/jqueryui/css/cupertino/jquery-ui-1.10.0.custom.css" rel="stylesheet">
./smarty/templates/selecalumn.tpl:22:<script src="http://185.13.76.222/webfaltes/asset/jqueryui/js/jquery-1.9.0.js"></script>
./smarty/templates/selecalumn.tpl:23:<script src="http://185.13.76.222/webfaltes/asset/jqueryui/js/jquery-ui-1.10.0.custom.js"></script>
./informe_per_alumne.php:127:           <script type="text/javascript" charset="utf-8" src="http://185.13.76.222/webfaltes/asset/DataTables/media/js/jquery.js"></script>
./informe_per_alumne.php:128:           <script type="text/javascript" charset="utf-8" src="http://185.13.76.222/webfaltes/asset/DataTables/media/js/jquery.dataTables.js"></script>

  • Webfaltes Wiki: Paràmetritzar l'enllaç a la documentació als fitxers de configuració. Canviar nom? Documentació.
  • Posar una opció de sortir/tancar/logout a on apareix l'usuari en comptes de la pestanya tancar.
  • /usr/share/webfaltes/informe_Mes_alumne.php hauria d'estar amb la resta de reports PDF.
  • /usr/share/webfaltes/informe_resum_grup_faltes_mes_2.php: els mesos apareixen en angles.
  • Documentar http://jqueryui.com/, per que s'utilitza i posar-ho a les dependències (paquet: libjs-jquery-ui). Oco que veig adreces IP Hardcoded a informe_per_alumne.php i selecalumn.tpl
  • Josep Llaó: Documentar /usr/share/webfaltes/controlador1.php i /usr/share/webfaltes/controlador2.php. Cal afegir capçalera /comentari comú per identificar qui ha creat fitxer i la llicència.
  • Lo mateix que l'anterior amb getalumnegrup.php i els similars així com getObservacions.php
  • Idem amb /usr/share/webfaltes/llistatAlumneMes.php, /usr/share/webfaltes/llistatAlumneMes2.php i /usr/share/webfaltes/informe_Mes_alumne.php
  • Idem informe_per_alumne.php
  • Ídem amb tot el menuAdministrar.php i submenus
  • Idem listClasse.php, llistatAlumneMes.php i llistatAlumneMes2.php
  • Ídem: mostrarAlumnes.php
  • Imatges: Llençol, fotos conserges, elimiar (llegir de Ldap). Fer nteja de imatges buscant les que no sutilitzen (grep -n "imatges.png" -r .)


Abans del 31 de març

  • Forçar https al login de la pàgina principal. Al fitxer identifica.php, vegeu [1]. --acacha (discussió) 10:42, 5 març 2013 (CET)
  • Aplicació cross-browser. Que les icones siguin enllaços a les webs dels navegadors. Ok recomanar però cal arreglar si és possible error Exploer. --acacha (discussió) 10:42, 5 març 2013 (CET)
  • Enllaç Webfaltes Wiki. Dir-li documentació i posar enllaç Ok a està wiki
  • Recuperació de paraula de pas: implementar. Enviar un correu electrònic que tingui una URL amb un hash generat aleatoriament per validar la recuperació de paraula de pas. El canvi de pas s'ha de fer al servidor Ldap/Gosa. L'aplicació s'aprofitaria per a Gosa.
  • Pàgina Login: Botons: Canviar: Enviar -> Login. Eliminar boto restablir.
  • Dades usuari actiu de la part superior: Posar un enllaç a Gosa. La URL ha d'estar parametritzada fitxer config

IES EBRE

  • Canviar la capçalera per la que apareix ara a la web de l'Institut. Sempre paràmetritzat: documentar mides o relacions d'aspecte.
  • Afegir les funcionalitat de l'Institut de Deltebre. La forma de passar faltes per hores és una funcionalitat molt demanada. Parametritzar si és desplegable o checkbox o no les raons d'una falta. De fet parametritzar les raons d'una falta. Afegir opció (columna nova) d'una sol cop passar falta a totes les hores. Pel tutor o administrador fer quelcom similar que permeti posar falta a l'alumnes per tot el dia.
  • Tutoritza els teus grups: poder posar un comentari també com a Deltebre. Posar una columna extra que permeti posar el mateix per a tot el dia.
  • Gestionar assignatures:posar el text a mida per cada centre: al Institut de l'Ebre no són optatives, són unitats formatives.

INS MONTSIA

  • Pestanyes apartats: no funciona bé el marcar quina està activa
  • Afegir les funcionalitat de l'Institut de Deltebre. La forma de passar faltes per hores és una funcionalitat molt demanada. Parametritzar si és desplegable o checkbox o no les raons d'una falta. De fet parametritzar les raons d'una falta. Afegir opció (columna nova) d'una sol cop passar falta a totes les hores. Pel tutor o administrador fer quelcom similar que permeti posar falta a l'alumnes per tot el dia.
  • Tutoritza els teus grups: poder posar un comentari també com a Deltebre. Posar una columna extra que permeti posar el mateix per a tot el dia.

IES DELTEBRE

  • Segurament passa igual a tota la resta. Apareix un error de connexió quan es selecciona un grup a tutoritza els teus grups que no té cap alumne assignat. Es pot mostrar l'error però de forma més user friednly. (es pot veure al grup OPT)
  • Icona foto no apareix. Aitor Avila Callau, 2n BATXILLERAT. Si no està la foto mostrar una tipus perfil de facebook sense foto. Igual a tots els centres.
  • A la llista de Tutoria apareixen files en blanc al IES EBRE I MONTSIA.

Estil

  • Logo part superior, ocupa tota la pàgina un cop dins però al Login no. Harmonitzar.
  • A les llistes, posar noms a les columnes (una segona fila), remarcar amb un color diferent. En un futur implementar el poder ordenar per columnes.
  • Harmonitzar: el meu alumnes-grups. El menú que aparegui com a taula igual que a la resta d'opcions. Ok incorporar una icomna, potser més petita?
  • Menu ajuda o icona. Apareix només a informes. Fer apareixer a tot arreu al mateix lloc. Si no hi ha ajuda mostrar que no hi ha ajuda però en tot cas evitar links trencats i altres errors.
  • Les caixes on es mostra el contingut d'un menú, no s'ajusten a la mida de la pantalla. Tenen mida fixa. En la meva pantalla gran em sobra espai a baix...
  • Al menú de manteniment els títols estan en majúscules. A la resta no ho posem així.


Control de formularis per Javascript abans de post i formularis en general

  • Al afegir assignatura peta si no es posa res (dona codi error). Comprovar per Javascript que hi ha un valor.
  • Que passa si el codi ja existeix? Es comprova o es dona un missatge user friendly a l'usuari?
  • SELECCIONA OPTATIVA: Mostrar codi | Nom al desplegable
  • Oco amb els textos. És optativa sempre? A cvegades és UF! Parametritzar o buscar un nom general.
  • Formulari modificar: optativa (0/1)? Millor posar un checkbox. Oco un altre cop amb el text que apareix.
  • Es pot eliminar una assignatura amb alumnes assignats? Ok si es pot però jo posaria un: segur que vols eliminar? Hi ha alumnes assignats a aquest optativa/UF
  • Afegir una columna que mostri el numero d'alumnes assignats (el total)
  • Afegir una navegació ràpida per passar a l'apartat de afegir/treure alumnes del grup. Potser una columna nova amb un gestionar alumnes?
  • Formulari afegir una nova classe:
  • Marcar amb un asteris els camps obligatoris
  • Control per javascript del post del formulari: ara deixa fer un post sense posar res i ni idea de si fa alguna modificació a la base de dades. Mostrar missatges d'error o de que s'ha insertat correctament.
  • harmonitzar: icones més petites? Taula com la resta de menus. Si no es nota com si cada cosa la programes una persona diferenti no hagues criteris comuns d'estil.
  • Llistar classe existents: permet fer combinacions no possibles. Estaria bé que els desplegables canviessin segon el seleccionat al desplegable anterior.
  • Codi professor: mostrar codi | Nom complet. Permetre ordenar per codi en comptes de nom. Mostrar també el codi | descripció del codi assignatura.
  • Relació Alumne / Assignatura:
  • Oco amb els textos: optativa/UF
  • Oco deixa afegir alumnes dos cops! potser estaria bé posar un filtre que no mostres els ja afegits, o millor els mostres però en gris (disabled, és a dir que no els deixi afegir)
  • Està molt bé. Potser faltaria un menú apart de buscar alumne (un camp de buscar, una llista a sota que es vagi actualitzant segons se va escrivint, tipus Gosa). Això per poder afegir per alumne.
  • Este sistema d'informe no es podria aprofitar per a altres informes ja existents.

Informes:

  • Molt bé. La vista impressió millor mostra fons en blanc (mostra fons blau, no se com queda al imprimir)
  • Oco: Incidència porta accent obert
  • Oco: "Seleccioneu un grup:" i hauria de ser: "Seleccioneu un alumne"
  • Oco Search i altres opcions en anglès: Es pot posar en català
  • Hi ha un botó que posa validar, jo posaria Mostrar.
  • Estil: ho posem tot alineat a l'esquerra o tot centrat
  • Els alumnes per que apareixen en majúscules? En tot cas només majúscules la primera lleta del Nom, Cognom1 i Cognom2
  • A vegades el botó validar apareix a sota del segon desplegable i no a la dreta del tot.
  • Repassar qui pot veure que. Això ho podem fàcil quan es puguem fer passar per...

Errors

  • Al Ies Ebre la pestanya seleccionada (colot tronja) sempre és informes. Cal que surti la que toca en cada moment
  • Tema accés: En el heading HTML posar sempre la codificació. Hi ha un header comú html? Sinó el podriem fer i posar com include a tot arreu

Usabilitat

  • Calendari: Al fer clic a un dia automàticament canviar sense caler premer el botó canviar
  • Passar llista
  • Al titol posa Passar llista 05-03-2013. Incorporar el dia de la setmana. Incorporar títols de cada columna (Franja horaria, Grup, Mòdul)
  • Nova funcionalitat: incorporar una icona d'horari al costat del grup que permeti veure l'horari d'aquell grup. El mateix amb el mòdul
  • No apareix línia de la dreta a la llista alumnes
  • Llistat faltes alumnes per mes: El primer valor de la llista que sigui un text tipus: seleeciona l'alumne.

Funcionalitats noves importants:

  • Pels administradors, un nou apartat que permeti fer login com a qualsevol pare/profe/alumne sense saber la paraula de pas.
  • Cal posar un identificador clar a la dreta de que estem entrant com un altre persona i que permeti tornar a ser l'administrador.
  • Desplegable de l'esquerre: Color blau més a tó. Web de l'Institut de l'Ebre hi ha dos colors blaus. Utilitzeu CSS?
  • Ocultar alumnes:
  • Desplegable amb motius predefinits per amagar (Baixa,...,Altres)
  • Poder posar un comentari lliure
  • Oco! Aegir alumnes. Error tipografic.
  • Fitxer PHP centralitzat de control d'accés als reports PDF: Control d'accés per rol en sessió. Permetre accedir des de l'exterior, prèvia vàlidació de sessió: Petita API de com validar sessió per URL sense formulari.

Funcionalitats no tant importants però que s'han de fer

Arreglar les molletes de pa:

Institut del Bla Bla Bla > Inici > Apartat 1 > Subapartat

On Inici, Apartat 1 han de ser links per a navegar i l'últim és l'apartat actiu que ha de sortir només en negreta.

Treure apartat/pestanya tancar. Col·locar un enllaç de logout al costat del nom del usuari logat a la part superior dreta.

El logo ha d'estar parametritzat igual que la URL del centre. El logo al fer clic ha de portar a la web del centre

Fitxer de configuració i parametritzacións:

Pàgina de Login:

  • Rols actius: Només apareixer els actius. El que no estigui actiu no ha d'apareixer a la llista. Llista mapejada codi > valor dels rols:
TEACHER_ROL -> "Professor"
STUDENT_ROL -> "Estudiant"

On TEACHER_ROL, STUDENT_ROL han de ser constants que donen un valor numèric. Documentar i mirar de posar el mateix valor a cada centre. El Text "Professor", etc pot ser diferent.

  • Parametritzar URL de Gosa

2011-12

  • Crear l'opció de descarregar un CSV dels alumnes a les llistes de clase. --acacha 08:28, 16 nov 2011 (UTC)

2010-11

Rodrigo i Eros:

Amado i Ester

  • Documentació de la base de dades?
  • Què és pot eliminar? --> Crear un altre cop el sql amb l'esquema
  • Eliminar i comprovar que tot funciona correctament...
grep -n "webfaltes_con.php" -r /usr/share/webfaltes | more
Un sol include! include_once("config.inc.php");
Tots han de tenir l'include de seguretat!:
 include_once(_DIR_CONNEXIO."seguretat.inc.php");
Neteja webfaltes


Miquel Angel:

  • Cal fer els requeriments. Llista del que utilitzar i necessita l'aplicació
  • Gràfic de l'arquitectura de l'aplicació
  • Llista extra del que necessita un desenvolupadors: SVN, smarty, ADS, Gosa
  • Recordar: origen de dades dels horaris: GPUntis
  • Tot amb enllaços i logos, estaria bé fer un quadre
  • Explicar els dos tipus d'instal·lació: Servidor explotació i desenvolupament
  • Webfaltes#Configuraci.C3.B3_de_MySQL TODO explicar d'on es treu l'esquema, posar un enllaç
  • Documentar bé l'esquema bàsic, a on es troba, quina és la última versió
  • Versions de l'esquema: buit --> Documentar com es pot omplir a partir de les dades de GPuntis! <--Preguntar a Sergi
  • Fer una base de dades exemple: només dades de la família d'informàtica sense informació privada
  • Cal també fer el mateix amb mysql. Parlar amb el company!
*TODO: Webfaltes#Com_canviar_la_paraula_de_pas_dels_usuaris_Ldap
TODOWebfaltes#Fitxers
  • Explicar com es pot obtenir el codi de l'aplicació:
#Obtenir l'aplicació
  • Buscar la paraula TODO a aquesta pàgina
http://acacha.org/mediawiki/index.php/Apache_Directory_Studio#Exemples

Pau:

  • Refactorització
  • Eliminar certes aplicacions de webfaltes i posar-les com a dependències:
  • adodb

Requeriments

Els requeriments i/o aplicacions que necessita l'aplicació Webfaltes per funcionar són:

Component
Requeriments entorn explotació
Requeriments entorn desenvolupament
Logo
Documentació pròpia
Sistema operatiu
Ubuntu Server Ubuntu Desktop
UbuntuServerLogo.jpg
Ubuntu Server
Arquitectura web
Apache (LAMP Server)
Gosa (Gestió Usuaris integrada amb Ldap)
LAMP.png
LAMP
Base de dades Ldap
Openldap
OpenLdap
OpenLdap.png
Openldap
Base de dades SQL
MySQL
MySQL
MySQL.png
MySQL
Aplicació web
webfaltes
webfaltes
Configuració webfaltes
Aplicació web frontend Ldap
Gosa (Gestió usuaris i grups)
Gosa
Gosa logo.png
Gosa
Aplicació web gestió base de dades Ldap
---
Apache Directory Studio
ADS.png
ADS
Aplicació web gestió base de dades MySQL
---
PhpMyAdmin
PhpMyadmin.png
PhpMyadmin
Entorn de desenvolupament Integrat IDE
---
Eclipse
Eclipse.png
Eclipse
Sistema Gestor de Versions RCS
Subversion (necessari per instal·lar l'última versió disponible)
Subversion
Subversion logo.png
Subversion
Plugin Eclipse per a subversions
---
Subclipse
Subclipse
Llibreria PHP per a plantilles
Smarty
Smarty
Smartylogo.png
Subclipse
Llibreria PHP per a Ldap
php5-ldap
php5-ldap
--- PHP i Ldap
Llibreria PHP per a connexió a SQL
php-adodb
php-adodb
Adodblogo.png
adodb
Llibreria/Aplicació per a editar imatges (convert)
ImageMagick
ImageMagick
Imagemagick.png
ImageMagick
Llibreria PHP creació de PDFs
FPDF
FPDF
FPDFlogo.png
FPDF
TODO PhpMailer per enviar correus-- A mig implementar (--acacha 11:28, 1 juny 2011 (UTC))
SMS? Quelcom relacionat amb OVH. A mitges!

En la primera columna s'agrupen els requeriments bàsics necessaris per a que l'aplicació webfaltes pugui funcionar i en l'altra columna s'agrupen els requeriments extra per a que els desenvolupadors treballin amb l'aplicació.

NOTA: Si observem la taula anterior s'hauria de sobreentendre que els desenvolupadors també necessiten els requeriments bàsics per poder fer funcionar l'aplicació.

Esquema de l'arquitectura de 3 capes

Webfaltes és una aplicació web que utilitza una arquitectura de 3 capes. Una qüestió força rellevant és que la capa de base de dades té dos tipus de bases de dades:

  • MySQL: es guarden les dades de les incidències i altres dades dinàmiques. L'accés és de lectura/escriptura.
  • Ldap: L'accés a Ldap s'utilitza per accedir a les dades de grups i usuaris (alumnes i professors). L'accés és de només lectura.
Arq webfaltes.png

Esquema de l'arquitectura per a desenvolupadors :

Arq webfaltes des.png

Esquema de l'arquitectura de 3 capes:

Navegador  --> Aplicació de faltes -->          Servidor Web --> Model (PHP) -->  Bases de dades (Ldap y MySQL)
Navegadors --> Gosa                --> Igual que a dalt.

Instal·lació

Makefile i paquet debian

Consulteu:

http://informatica.iesebre.com/mediawiki/index.php/Usuari:Pgomez/sintesi_2011_webfaltes

Tipus d'instal·lacions

TODO:

  • En entorn d'explotació: Ubuntu Server...
  • En entorn de desenvolupament

Totes dues instal·lacions tenen part comunes que no cal escriure dos cops però si diferenciar les coses que són diferents

Instal·lació amb paquet Debian

TODO


2 opcions:

  • Ho faci tot
  • Instal·li i després s'haguí de executar un instal·lador tipus el que fan les aplicacions com Gosa o similars
http://localhost/install.php

Formularis un assistents tipus Gosa (es pot aprofitar el de Gosa):

Dades:

Llicència:
Comprovar que es té tot el correcte: Ldap, llibreries de suport Ldap y MySQL per a PHP, Esquemes Ldap, smarty?
Usuari de root de MySQL i paraula de pas --> Crear la base de dades (o des de Debian es pot fer amb dbconfig-common)
Usuari i paraula de l'aplicació per accedir a la base de dades Ldap: Similar al de Gosa<-- Documentació del que cal fer? Script?
Usuari i paraula de l'aplicació per accedir a la base de dades MySQL: Es dona el de root i es fan totes les accions? <-- Millor per paquet dbconfig?
#Creació de l'usuari LDAP<-- Aprofitant el codi de Gosa es pot fer un exemple que detecti si hi ha usuari Ldap i si no el crea! Cal explicar però 
que faltarà ACL per que pugui llegir tots els camps?
Dades generals de configuració --> Fitxer config.inc.php
Fitxers:
 http://www.iesebre.com/subversion/projectes/webfaltes/trunk/usr/share/webfaltes/connexio/
Dades generals:
 http://www.iesebre.com/subversion/projectes/webfaltes/trunk/usr/share/webfaltes/config.inc.php


Accions:

  • Crear una base de dades MySQL buida
  • Crear els fitxers de configuració
  • Opció d'instal·lar una demo (base de dades exemple tant MySQL com Ldap)

Que fa segur el paquet Debian?:

  • Dependències (Apache, MySQL, smarty, slapd...)
  • Instal·lar els fitxers /usr/share/webfaltes i /etc...
  • Configurar Apache
  • Fitxer /etc/apache2/sites-available/webfaltes.conf <-- Posar al subversion

Instal·lació manual pas a pas des de zero. Entorn d'explotació

Els passos a seguir són:

Instal·lació del LAMP Server (opcional si ja l'heu instal·lat durant la instal·lació del sistema operatiu Ubuntu Server)

Instal·lació manual pas a pas des de zero. Entorn de desenvolupament

Suposem que utilitzeu una versió d'escriptori d'Ubuntu.

Els passos a seguir són:

  • Instal·lació d'Eclipse Plugin per a PHP
  • Instal·lació de subversion
  • Instal·lació del plugin de subversion per a Eclipse
  • Instal·lació de ADS

Instal·lació de l'Ubuntu Server

NOTA: Actualització: l'aplicació funciona correctament amb Ubuntu Server 12.04

NOTA: Molt possiblement l'aplicació webfaltes funcionarà correctament en altres sistemes operatius Linux, com per exemple Debian. Cal però indicar que els desenvolupadors del programa han fet totes les proves amb la versió de servidor d'Ubuntu i concretament amb la versió 10.10.

Per començar a utilitzar aquesta aplicació, el primer que necessitarem instal·lar és un servidor. Podem trobar com fer la instal·lació del Ubuntu Server 10.10 a:

Manual d'instal·lació Ubuntu Server 10.10.

Recursos:

Instal·lació d'Eclipse Plugin per a PHP

Baixem els arxius de java de 192.168.7.182:81/sergi
$ sudo apt-get install sun-java6-jdk
$ mkdir eclipse
$ mkdir workspace
$ mv ../Downloads/eclipse-php-galileo-SR1-linux-gtk.tar.gz .
$ tar fvxz eclipse-php-galileo-SR1-linux-gtk.tar.gz
S'executa des de la línea de comandes amb:
$ ./eclipse
Sempre i quant estiguis dins a la carpeta on esta l'executable.
$ mv eclipse eclipse_php
$ /usr/bin/php5
$ ls
 index.html  mediawiki
$ sudo ln -s /home/iesebre/workspace/php/holamon/ .
[sudo] password for iesebre: 
$ ls
holamon  index.html  mediawiki
$ cd eclipses
$ cd eclipse_php
$ ls
about_files    configuration  eclipse_php   icon.xpm         p2
about.html     dropins        epl-v10.html  libcairo-swt.so  plugins
artifacts.xml  eclipse.ini    features      notice.html      readme
$ wget http://192.168.7.100/~sergi/site-1.0.6.zip
--2009-11-27 19:28:00--  http://192.168.7.100/~sergi/site-1.0.6.zip
S'està connectant a 192.168.7.100:80... conectat.
HTTP: Petició enviada, esperant resposta... 200 OK
Longitud: 7039588 (6,7M) [application/zip]
S'està desant a: «site-1.0.6.zip»
100%[======================================>] 7.039.588   42,2M/s   en 0,2s    
2009-11-27 19:28:00 (42,2 MB/s) - s'ha desat «site-1.0.6.zip» [7039588/7039588]
$ ls
about_files    dropins       features         p2
about.html     eclipse.ini   icon.xpm         plugins
artifacts.xml  eclipse_php   libcairo-swt.so  readme
configuration  epl-v10.html  notice.html      site-1.0.6.zip
$ unzip site-1.0.6.zip 
Archive:  site-1.0.6.zip
 inflating: features/org.tigris.subversion.subclipse_1.0.6.jar  
 inflating: plugins/org.tigris.subversion.javahl.win32_1.0.6.jar  
 inflating: plugins/org.tigris.subversion.subclipse.core_1.0.6.jar  
 inflating: plugins/org.tigris.subversion.subclipse.ui_1.0.5.jar  
 inflating: plugins/org.tigris.subversion.subclipse_1.0.5.jar  
 inflating: site.xml


Quan et descarregues alguna cosa d'eclipse hi ha tres opcions:

  • Plugin que normalment es un update i el nom.
  1. La majoria de vegades se baixa per help. Normalment són zips o tar.gz que descomprimim a la arrel del eclipse
  • All in one. Porten el plugin i el eclipse incorporat.
  • El update a vegades diu que pot ser un runtime o un sdk. Amb el runtime tendriem més que suficient ja que el sdk porta el codi font i podria ser que no el necessitem per res.

Instal·lació de subversion

Instal·lació del plugin de subversion per a Eclipse

Instal·lació de ADS

Instal·lació del LAMP Server

NOTA: En la instal·lació del Ubuntu Server detallada en l'apartat anterior s'ens dona l'opció d'instal·lar el servidor LAMP. És evident, que si ho instal·lem així podem saltar-nos l'apartat que ve a continuació.

Segurament ja teniu instal·lat tasksel però per si de cas:

$ sudo apt-get install tasksel

El següent que necessitarem instal·lar és el LAMP per poder tenir muntat un servidor Web:

$ sudo tasksel

I seleccionarem LAMP (per seleccionar haurem de fer servir l'espai).

També podeu fer l'instal·lació directament amb:

$ sudo tasksel install lamp-server

Al instal·lar-ho ens demanarà que posem una contrasenya, aquesta contrasenya haurà de ser fàcil de recordar i al mateix temps prou segura ja que la necessitarem. Si l'hem oblidat haurem de tornar a configurar el LAMP amb:

$ sudo dpkg-reconfigure mysql-server-X.Y

Per exemple, en el cas de tenir la versió 5.5 (podeu tabular dos cops per tal de que l'ajuda us permeti saber quina versió teniu instal·lada):

$ sudo dpkg-reconfigure mysql-server-5.5

també sempre pode utilitzar l'usuari i paraula de pas de Debian per a mantenir el paquet mysql, el podeu consultar a:

$ sudo cat /etc/mysql/debian.cnf

Instal·lar dependències

$ sudo apt-get install imagemagick php5-ldap libphp-adodb smarty smarty-gettext php-gettext libphp-phpmailer php-fpdf

NOTA: També podeu utilitzar la versió 3 d'smarty: $sudo apt-get install smarty3 smarty3-gettext. Smarty3 només està disponible als repositoris de Gosa o a partir de la versió 11.04 d'Ubuntu.

  • imagemagick: L'aplicació webfaltes utilitzar l'ordre convert per transformar les imatges. Bàsicament s'utilitza per tal d'eliminar el canal alfa de les imatges PNG ja que la llibreria FPDF no suporta aquest canal per a aquest format d'imatges.
  • php5-ldap: L'aplicació treballa amb bases de dades Ldap i necessita la llibreria de PHP per a Ldap. Consulteu PHP i Ldap.
  • libphp-adodb: Llibreria de PHP per a adodb, serveix per a fer les connexions a la base de dades MySQL.
  • smarty: llibreria de PHP per treballar amb plantilles i poder així separar el codi de la presentació.
  • smarty-gettext: TODO. Cal afegir-lo a la taula de requeriments
  • php-gettext: TODO. Cal afegir-lo a la taula de requeriments
  • libphp-phpmailer: TODO. Cal afegir-lo a la taula de requeriments. NOTA: Pendent d'activar
  • php-fpdf: llibreria que permet crear documents PDF de forma dinàmica amb PHP.
  • jquery: Es pot instal·lar el paquet libjs-jquery

Obtenir l'aplicació

Última versió estable

TODO

Última versió del codi font. Subversion

Exemple per línia d'ordres

L'entorn d'explotació s'executarà un sistema operatiu de servidor tipus Ubuntu Server (consulteu Instal·lació d'Ubuntu Server) i en aquest entorn no podem utilitzar eines gràfiques com Eclipse. Per a obtenir el codi font a partir de subversions només us cal executar:

$ sudo apt-get install subversion
$ cd
$ sudo svn co http://www.iesebre.com/subversion/projectes/webfaltes/trunk webfaltes
$ cd webfaltes
$ sudo make install

NOTA: No us cal utilitzar cap usuari especific de subversion per a obtenir el codi. Al no indicar cap usuari esteu utilitzant l'usuari anònim amb accés de només lectura

Exemple amb Eclipse i el plugin Subclipse

Exemple pas a pas per a desenvolupament <-- Utilitzant Eclipse + Subclipse (no cal posar el pas a pas d'instal·lar aquestes eines, només l'enllaç a la secció que pertoca)

Aquí tenim com fer l'instal·lació a l'Eclipse i seguidament l'instal·lació del subclipse

El que si cal posar és l'exemple de fer un checkout de:

Una vegada tenim incorporat el subclipse a l'aplicació de l'eclipse, obrirem l'eclipse i canviarem la vista a SVN Repository Exploring

Eclipse 1 alex.png

Anem a la pestanya del programa anomenada Window, a continuació cliquem a Open Perspective i anem a Other

Eclipse view alex.png

Ens surtirà una finestra on hem de buscar la vista SVN Repository Exploring i li donem Ok

Eclipse svn alex.png

Veurem que el programa ha canviat la vista a SVN Repository i de moment no hi ha res.

Ara anem a crear un repositori. Per fer-ho haurem de clicar botó de la dreta, New i Repository Location

Eclipse crearrepositori alex.png

Ens surtirà un assitent on li haurem d'indicar quina URL vol que li posem al repositori, en aquest cas és:

http://www.iesebre.com/subversion/projectes/webfaltes/trunk/

Eclipse repository alex.png

una volta li posem Finish ha de surtir així:

Eclipse webfaltes alex.png

Una vegada tenim el repositori hem de baixar-nos una còpia en local, aquesta acció s'anomena checkout.

Per fer-la hem de fer botó de la dreta a la URL i checkout.

Eclipse checkout alex.png

Surt un assistent i et pregunta on vols guardar aquesta còpia. Li indiquem que la còpia la volem guardar al lloc de treball(workspace) i li donem a Finish.

Eclipse trunk alex.png

I farà tota la còpia d'internet al teu ordinador.

Eclipse check alex.png

Configuració del servidor web Apache

Arribats a aquest punt haurem de configurar l'Apache. El primer que farem és crear un lloc web (site) per a l'aplicació :

$ sudo joe /etc/apache2/sites-available/webfaltes

NOTA: L'aplicació webfaltes intenta seguir les indicacions de l'estàndard FHS i per aquesta raó la carpeta escollida per als fitxers estàtics és /usr/share/webfaltes

Afegiu:

Alias /webfaltes /usr/share/webfaltes

<IfModule mod_php5.c>
<Location /webfaltes>
   php_admin_flag register_globals off
</Location>
</IfModule>

Consulteu també Configuració alternativa. Exemple www.iesebre.com


Alias vol dir que quan algú escrigui la URL

http://localhost/webfaltes

es mostraran els fitxers de la carpeta:

/usr/share/webfaltes

NOTA: Per defecte els fitxers a mostrar són els index, en el nostre cas index.php

Que féssim un site disponible no vol dir que ja estigui activat, així que haurem d'executar:

$ sudo a2ensite webfaltes

Per activar el site i:

$ sudo /etc/init.d/apache2 reload

Per aplicar els canvis al servidor web.

L'ordre a2ensite activa un site disponible, en canvi l'ordre a2dissite desactiva el site:

$ sudo a2dissite webfaltes

També cal per que funcionin correctament els scripts javascript, el fitxer /etc/apache2/conf.d/javascript-common.conf o similar:

javascript#Javascript_i_Apache._Fitxer_.2Fetc.2Fapache2.2Fconf.d.2Fjavascript-common.conf

Instal·lació de LDAP

Per instal·lar i configurar la base de dades Ldap haurem de seguir els passos de:

Ldap#Instal.C2.B7laci.C3.B3

Per a versions anteriors els passos sçon un pel més complicats:

 Instal·lació del servidor Ldap a Ubuntu 9.10 - 10.10

Afegir els esquemes del gosa per poder importar les dades de la Demo de informàtica.

Descarregar el següent fitxer:

http://acacha.org/~sergi/gosa/gosa-2.7-ldifs.tar.gz
$ sudo -s
# cd /etc/ldap/slapd.d/cn=config/cn=schema
# rm -rf *
# wget http://acacha.org/~sergi/gosa/gosa-2.7-ldifs.tar.gz 
# tar xvzf gosa-2.7-ldifs.tar.gz

Tots els esquemes hauràn de ser de l'usuari openldap

# chown openldap:openldap -R *

I reiniciarem el servei LDAP.

# exit
$ sudo /etc/init.d/slapd restart

Fins a l'apartat on es crea el fitxer acl.ldif. Aleshores posem el següent fitxer acl.ldif per aprofitar i crear l'usuari que utilitzarà l'aplicació per a connectar-se al servidor

dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by anonymous auth by dn="cn=admin,dc=iesebre,dc=com" write by dn="cn=webfaltes,dc=iesebre,dc=com" read by * none
olcAccess: {1}to dn.subtree="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=iesebre,dc=com" write by * read

Per carregar les dades executem la comanda següent:

$ sudo ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif

L'usuari que hem indicat a les ACL que té permisos per llegir tots els camps és:

cn=webfaltes,dc=iesebre,dc=com

IMPORTANT: Cal que modifiqueu les dades de l'exemple (www.iesebre.com) a el vostre cas


I continuarem amb els passos que indica fins reiniciar el servidor Ldap. Ja tenim preparada el servidor Ldap i la base de dades buida

Configuració de les ACL de Ldap

Opció 1

Aprofitar el moment en que es configuren les ACL durant la instal·lació del Servidor Ldap. Vegeu l'apartat anterior

Opció 2

TODO: Utilitzar la línia d'ordre per modificar unes ACL ja existents...


Opció 3

Configuració de les ACL per Apache Directory Studio

Creació de l'usuari LDAP

Es necessari crear un usuari d'accés que permeti a l'aplicació accedir a la base de dades Ldap en mode només lectura.

NOTA: Es podria utilitzar el admindn per a connectar-se al servidor Ldap però representaria un problema de seguretat. A més l'aplicació no necessita accés d'escriptura a l'arbre Ldap, només de lectura

Per tal de crear aquest usuari podeu utilitzar el següent fitxer "usuari.ldif".

NOTA: L'exemple està pensat per al domini iesebre.com! És important que canvieu les dades pel que us correspongui!

$ joe usuari.ldif
version: 1

dn: cn=webfaltes,dc=iesebre,dc=com
objectClass: inetOrgPerson
cn: webfaltes
sn: webfaltes
uid: webfaltes
userPassword: {MD5}sac43R48I+13VCvWpQribA==

Per generar la contrasenya segueix els passos:

$ slappasswd -h {MD5}
New password: 
Re-enter new password: 
{MD5}sac43R48I+13VCvWpQribA==

Modifica l'script anterior amb la paraula de pas generada i després executa el ldapadd.

# ldapadd -x -D "cn=admin,dc=iesebre,dc=com" -W -f usuari.ldif 
Enter LDAP Password: 
adding new entry "cn=webfaltes,dc=iesebre,dc=com"

On:

-f : Indica el fitxer ldif
-D : Indica el dn
-W : Per a que demane la paraula de pas

O també es pot afegir utilitzant alguna eina gràfica de gestió del servidor Ldap com per exemple ADS (per exemple es pot fer a mà o amb un import del fitxer ldif que us proporcionem).

Configuració de MySQL

El servidor MySQL se suposa que ja està instal·lat des de el moment que s'ha instal·lat un sistema LAMP.

Per poder utilitzar la base de dades que utilitza el projecte, l'haurem de crear a la base de dades, que ho farem de la següent manera:

Primer accedirem dins al mysql amb (la contrasenya ens l'ha demanat a la instal·lació):

$ mysql -u root -p

NOTA: La -p s'haurà de posar per a que ens demani la contrasenya de MySQL al entrar, si no la posem ens podria donar un error.

Una vegada hem entrat dins del MySQL haurem de crear la base de dades buida copiant aquesta comanda SQL:

mysql> CREATE DATABASE webfaltes;
mysql> exit;

A continuació li passarem l'esquema de la base de dades.

$ mysql -u root -p webfaltes < /usr/share/doc/webfaltes/examples/database/webfaltes-schema.sql

NOTA: La ultima versió ens la podem baixar aquí.

I li afegim les dades amb la següent comanda:

$ mysql -u root -p webfaltes < /usr/share/doc/webfaltes/examples/database/webfaltes.sql

NOTA: La ultima versió ens la podem baixar aquí.


Configuració de les comptes d'accés

I ara ens farem l'usuari entrant al MySQL i posant el següent:

 
 $ mysql -u root -p
 CREATE USER 'webfaltes'@'localhost' IDENTIFIED BY 'password';
 GRANT ALL PRIVILEGES ON webfaltes.* TO 'webfaltes'@'localhost' WITH GRANT OPTION;
 FLUSH PRIVILEGES;
 exit

IMPORTANT: La paraula usuari i password s'hauran de canviar per l'usuari i la contrasenya de MySQL que vulgueu posar.

Els paràmetres de configuració que creem en aquest apartat són els que més endavant introduirem en aquest fitxer.

Instal·lació de la Base de dades de demostració
Base de Dades Ldap

La base de dades de demostració només conté dades fictícies de la família d'informàtica (professors,alumnes,grups) i les dades del usuari administrador de l'institut i del usuari webfaltes. Totes les paraules de pas són la mateixa : gosa. Menys la de l'usuari webfaltes. Aquesta base de dades està emmagatzemada en un fitxer .ldif que es troba a l'enllaç següent :

http://www.iesebre.com/subversion/projectes/webfaltes/trunk/usr/share/doc/webfaltes/ldap/ldap_demo_inf_1.ldif

Suposant que a l'Apache Directory Studio ja tinguéssim creada la connexió i que la base de dades ldap estigui buida ja podrem passar a instal·lar-ho. Per a fer això haurem d'anar a la línia d'ordres del terminal i executar el següent :

Primer aturarem el servidor LDAP amb :

$ sudo /etc/init.d/slapd stop

Per a comprovar que està aturat podem executar :

$ ps aux | grep slapd

Llavors ja podrem passar a restaurar o importar la base de dades amb per exemple :

$ sudo slapadd -c -l ldap_demo_inf_1.ldif

I per últim tornarem a arrancar el servidor LDAP :

$ sudo /etc/init.d/slapd start

A l'Apache Directory Studio hauria d'aparèixer el següent :

Bdl ldap demo inf.jpg
Base de Dades SQL

La base de dades sql de demostració només de la família d'informàtica la podem trobar a :

http://www.iesebre.com/subversion/projectes/webfaltes/trunk/usr/share/doc/webfaltes/sql/demo_bdsql_infor_dep/webfaltesDEMO_DEP_INFO.sql

Per a poder fer servir la base de dades podem importar l'arxiu .sql de dalt al phpmyadmin. Prèviament haurem d'haver creat la base de dades : webfaltes. Llavors ens col·locarem dintre aquesta base de dades, clicarem a l'opció importar i per últim escollirem l'arxiu corresponent, en aquest cas la BD del departament d'informàtica.

Script bash per realitzar tota la feina de configuració de MySQL

Consulteu el fitxer:

/usr/share/doc/webfaltes/examples/database/installdatabase.sh
#/bin/bash
stty -echo
read -p "MySQL root Password: " passwd; echo
stty echo
echo "Creating webfaltes database and user to connect..."
mysql -u root --password="$passwd" < init.sql
echo "Creating webfaltes schema..."
mysql -u root --password="$passwd" webfaltes < webfaltes-schema.sql
echo "Populating webfaltes..."
mysql -u root --password="$passwd" webfaltes < webfaltes.sql

On init.sql:

CREATE DATABASE webfaltes;
CREATE USER 'webfaltes'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON webfaltes.* TO 'webfaltes'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

Aquest arxiu de l'aplicació webfaltes el podem trobar a :

usr/share/doc/webfaltes/examples/database/init.sql

Configuració de l'aplicació webfaltes

Configuració de l'accés a Mysql. webfaltes_con.php

Cal modificar el fitxer:

$ sudo joe /etc/webfaltes/webfaltes_mysql_con.php

I dins de aquest arxiu hi ha això, on haurem de canviar les dades:

<?php
$MM_ConTut_HOSTNAME = "Aquí anirà el nom de la màquina o la Ip del servidor"; 
$MM_ConTut_DBTYPE   = "El tipus de la base de dades";     // Triarem MySQL
$MM_ConTut_DATABASE = "Nom de la base de dades";   // Suposadament es diu webfaltes
$MM_ConTut_USERNAME = "posa_aqui_el_teu_usuari";      // Usuari per accedir a la BD
$MM_ConTut_PASSWORD = "posa_aqui_el_teu_password";    // Contrasenya per accés a la BD      
$QUB_Caching = false;


$ConTut = &ADONewConnection($MM_ConTut_DBTYPE);

// Petits ajustos per connectar-nos a Acces o ODBC /IBASE / i altres.
if($MM_ConTut_DBTYPE == "access" || $MM_ConTut_DBTYPE == "odbc"){
        $ConTut->Connect($MM_ConTut_DATABASE, $MM_ConTut_USERNAME,
        $MM_ConTut_PASSWORD);        
} else if($MM_ConTut_DBTYPE == "ibase") {                
        $ConTut->Connect($MM_ConTut_HOSTNAME.":".$MM_ConTut_DATABASE,                
        $MM_ConTut_USERNAME,$MM_ConTut_PASSWORD);                        
} else {                                
        $ConTut->Connect($MM_ConTut_HOSTNAME,$MM_ConTut_USERNAME,                                
        $MM_ConTut_PASSWORD,$MM_ConTut_DATABASE);                                      
}                                              
?>

Per exemple:

<?php
$MM_ConTut_HOSTNAME = "localhost"; // Nom de la màquina o IP servidor
$MM_ConTut_DBTYPE   = "mysql";     // Tipus de base de dades
$MM_ConTut_DATABASE = "webfaltes";   // Nom de la base de dades
$MM_ConTut_USERNAME = "root";      // Usuari per accedir a la BD
$MM_ConTut_PASSWORD = "1234";    // Contrasenya per accés a la BD      
$QUB_Caching = false;


$ConTut = &ADONewConnection($MM_ConTut_DBTYPE);

// Petits ajustos per connectar-nos a Acces o ODBC /IBASE / i altres.
if($MM_ConTut_DBTYPE == "access" || $MM_ConTut_DBTYPE == "odbc"){
        $ConTut->Connect($MM_ConTut_DATABASE, $MM_ConTut_USERNAME,
        $MM_ConTut_PASSWORD);        
} else if($MM_ConTut_DBTYPE == "ibase") {                
        $ConTut->Connect($MM_ConTut_HOSTNAME.":".$MM_ConTut_DATABASE,                
        $MM_ConTut_USERNAME,$MM_ConTut_PASSWORD);                        
} else {                                
        $ConTut->Connect($MM_ConTut_HOSTNAME,$MM_ConTut_USERNAME,                                
        $MM_ConTut_PASSWORD,$MM_ConTut_DATABASE);                                      
} 
Configuració de l'accés a Ldap. webfaltes_ldap_con.php

Cal modificar el fitxer:

$ sudo joe /etc/webfaltes/webfaltes_ldap_con.php

I dins d'aquest arxiu hi ha això, on haurem de canviar les dades:

<?php
define("_LDAP_SERVER", "Aquí anirà el nom de la màquina o la Ip del servidor");
define("_LDAP_PORT", NULL);
define("_LDAP_USER", "Usuari del ldap(El cn)");
define("_LDAP_PASSWORD", "Contrasenya del ldap");
define("_LDAP_GROUP", "physicaldeliveryofficename");
define("_LDAP_USER_ID", "employeenumber");
define("_LDAP_STUDENT_BASE_DN", "ou=Alumnes,ou=All,dc=iesebre,dc=com");
define("_LDAP_TEACHER_BASE_DN", "ou=Profes,ou=All,dc=iesebre,dc=com");
?>

Per exemple:

<?php
define("_LDAP_SERVER", "localhost");
define("_LDAP_PORT", NULL);
define("_LDAP_USER", "cn=webfaltes,ou=people,ou=acls,dc=iesebre,dc=com");
define("_LDAP_PASSWORD", "1234");
define("_LDAP_GROUP", "physicaldeliveryofficename");
define("_LDAP_USER_ID", "employeenumber");
define("_LDAP_STUDENT_BASE_DN", "ou=Alumnes,ou=All,dc=iesebre,dc=com");
define("_LDAP_TEACHER_BASE_DN", "ou=Profes,ou=All,dc=iesebre,dc=com");
?>


Configuració d'Smarty

IMPORTANT: Aquesta configuració ha tingut canvis recentment --acacha 06:11, 2 juny 2011 (UTC). El make install ja fa aquest canvis!?

Per tal que funcioni ens hem d'assegurar que existeixin els següents directoris d'Smarty:

$ sudo mkdir /var/spool/webfaltes

A continuació hem de donar les permisos correctes a les carpetes. Bàsicament el que es fa és fer que algunes de les carpetes sigui propietat de l'usuari que executa el servidor web (suposem que és tracta de l'usuari www-data - usuari típic en distribucions Linux de la família Debian amb servidors Apache -):

$ sudo chown www-data:www-data /var/spool/webfaltes
$ sudo chmod 775 /var/spool/webfaltes

NOTA: Podeu veure l'antiga configuració (abans de --acacha 06:10, 2 juny 2011 (UTC)) a Antiga configuració Smarty per a webfaltes


Possible error

A continuació si anem a la url: http://localhost/webfaltes ens surt el següent error:

Warning: require_once(/usr/share/gosa/include/utils/class_msgPool.inc): failed to open stream: No such file or directory in /usr/share/webfaltes/setup/functions.inc on line 159 Fatal error: require_once(): Failed opening required '/usr/share/gosa/include/utils/class_msgPool.inc' (include_path='.:/usr/share/webfaltes/include:/usr/share/webfaltes/include/utils/excel:/usr/share/php') in /usr/share/webfaltes/setup/functions.inc on line 159 

Per solucionar el problema crearem el següent fitxer buit:

$ sudo touch /etc/webfaltes/webfaltes.conf
Fitxer de configuració general. config.inc.php

TODO

Configuració del període acadèmic

Instal·lar dependències per als desenvolupadors

Instal·lació d'Eclipse PHP
  • Podem descarregar l'eclipse per a PHP a les url següents:
Eclipse PHP (32 Bit)
Eclipse PHP (64 Bit)
  • Tot seguit es mostren els passos per la instal·lació de Java i Eclipse, respectivament:
Eclipse#Eclipse_for_PHP_Developers
Instal·lació del plugin subclipse
Eclipse#Instal.C2.B7laci.C3.B3_del_plugin_subclipse
Instal·lació de l'aplicació utilitzant Makefile

Suposem que hem seguit les passes per tal d'obtenir el codi font de l'aplicació webfaltes a partir del subversion i que ho hem fet utilitzant Eclipse i el plugin d'Eclipse Subclipse (suposem que hem baixat el trunk de l'aplicació) . Suposem a més que l'entorn de treball (workspace) el tenim a la nostre HOME, per exemple:

/home/sergi/workspace/webfaltes

Aleshores per instal·lar l'aplicació a la carpeta que pertoca segons l'estàndard FHS i per tal de poder provar-la només ens cal executar:

$ cd /home/sergi/workspace/webfaltes
$ sudo make install

Això ens instal·larà l'aplicació a /usr/share/webfaltes i també configurarà l'Apache si encara no ho havíem fet.

Per últim tindrem de crear el fitxer /etc/webfaltes/webfaltes.conf buit:

sudo touch /etc/webfaltes/webfaltes.conf
Instal·lació Apache Directory Studio

Per a la instal·lació de l'Apache Directory Studio s'han de seguir els passos següents:

 Apache Directory Studio


Instal·lació de PHPMyAdmin

Per a la instal·lació de PHPMyAdmin s'han de seguir els passos següents:

TODO

Aplicació webfaltes de demostració

Tenim la opció de provar la aplicació webfaltes sense necessitat d'instal·lar-la al nostre sistema operatiu. Per fer-ho tindrem que seguir els següents passos:

  • Tindre instal·lat Virtual box al nostre equip
  • Descarregar i instal·lar el paquet debian demowebfaltes.
  • Descarregar i muntar la màquina virtual de demostració.

Instal·lació de Virtual Box

En cas que no tinguem instal·lat al nostre equip l'aplicació Virtual Box, tindrem que fer-ho.

Per instal·lar Virtual Box seguirem el passos definits aquí

Paquet demowebdaltes

Per poder treballar amb la aplicació demowebfaltes el primer que hem de fer és descarregar el paquet demowebfaltes. El podem descarregar des del següent enllaç.

http://www.iesebre.com/subversion/2asix/rrodriguez/demowebfaltes_0.1-1_i386.deb

Per finalitzar la insatal·lació sols hem de executar la comanda dpkg seguit el paràmetre -i i el nom del paquet que acabem de descarregar.

$ dpkj -i demowebfaltes_0.1-1_i386.deb

Màquina demo

Podem descarregar la màquina virtual amb l'aplicació webfaltes instal·lada i configurada de forma adient per provar-la sense necessitat de fer l`instal·lació de la aplicació complerta.

Com aconseguir la màquina de demostració

La podem descarregar del següent enllaç.

http://www.iesebre.com/subversion/2asix/rrodriguez/demowebfaltes.vdi.tar.gz

Un cop descarregat tindrem que desempaquetar-la amb la comada.

$ tar xzvf demowebfaltes.vdi.tar.gz

pesta en marxa de la màquina

Després de desempaquetar-ho, copiarem el fitxer demowebfaltes.vdi, al directori on l'aplicació Virtual Box emmagatzema les imatges de disc dur per defecte. Normalment és el directori /home/nom_usuari/.VirtualBox/HardDisks.

$ cp demowebfaltes.vdi .VirtualBox/HardDisks/

Tot seguit executarem la comanda que ens crearà la imatge de disc de la màquina webfaltes

$ sudo bash demowebfaltes

IMPORTANT: Per a que la màquina de demostració funcione forma correcta és imprescindible aquests dos últims passos.

Un cop ha finalitzat el procés (no abans), ja podem obrir Virtual Box i fer els passos que s'indiquen tot seguit:

  • Afegir una nova màquina amb al botó Nova i següent.

Exemples1.png

  • Escollir un nom per a la nostra maquina virtual. En al nostre cas s'ha d'anomenar webfaltes

Exemples02.png

  • Ara triarem la memòria de la nostra màquina (RAM).

Exemples3.png

  • En aquest pas triarem el disc dur de la màquina triant la opció Fer servir un disc dur existent

Exemples4.png

  • Aquí buscarem el nostre disc webfaltes.vdi, si no el trobem polsarem el botó Afegeix,el buscarem al directori .VirtualBox/HardDisks i el seleccionarem.

Exemples5.png

  • Un cop seleccionat polsarem al botó següent i Finalitzar.

Exemples6.png

  • Ara sols hem de seleccionar la màquina webfaltes i a detalls entrar a configurar la xarxa.

Exemples8.png

  • aquí sols cal canviar el tipus de adaptador de xarxa a adaptador pont.

Exemples7.png

Si hem seguit aquest passos ja esta tot preparat per poder iniciar la màquina de demostració.

NOTA: Para entrar el usuario es webfaltes y el pass webfaltes.

Configuració de la xarxa

Un cop iniciada la màquina, és possible que tinguem que modificar la configuració de la xarxa. La adreça IP es una adreça estatica la 192.168.203.250 i per podes accedir a la aplicació amb el navegador, aquesta ha de ser una adreça dintre de la nostra xarxa de àrea local. Per configurar-ho haurem de modificar el fitxer /etc/network/interfaces

auto lo
iface lo inet loopback auto eth0
iface eth0 inet static
        address 192.168.203.250
        netmask 255.255.255.0
        network 192.168.203.0
        gateway 192.168.203.1

On podem modificar els següents valors:

  • address: Indica la adreça IP del servidor.
  • netmask: Detalla la màscara de subxarxa.
  • network: Específica la xarxa a la que pertany
  • gateway: Conté la porta d'enllaç al exterior de la nostra xarxa.

Per últim, en cas de fer algun canvi, haurem de reiniciar la configuració de xarxa amb la comanda.

$ sudo /etc/init.d/networking restart

Inicialitzar l'aplicació

Arribat a aquest punt ja podem obrir el navegador de qualsevol equip de la nostra xarxa i accedir a l'aplicació de demo posant al navegador la areça IP del servidor, que hem pogut configurar anteriorment, seguit del nom de l'aplicació. Per exemple:

http://192.168.203.250/webfaltes

Documentació per a l'usuari de la màquina de demostració de l'aplicació webfaltes --Roberto Rodríguez Luna 18:00, 8 juny 2011 (UTC)

Manuals de manteniment i configuració

Gestió d'usuaris i grups de classe. Gosa

En cert moment del desenvolupament de l'aplicació és va decidir no implementar cap gestió d'usuaris pròpia i utilitzar sistemes externs. Per facilitar al màxim la escal·labilitat i la integració amb altres sistemes es va decidir utilitzar Ldap com a "base de dades" en la que emmagatzemar els usuaris i altre informació de l'aplicació com els grups de classe.

Per gestionar els usuaris i la resta d'informació de l'aplicació de webfaltes que es troba al servidor Ldap recomanem Gosa

IMPORTANT: No es obligatori utilitzar Gosa, cadascú pot utilitzar altres eines de gestió de l'arbre Ldap, com ADS, phpldapadmin o similars. Això si, cal tenir en compte les característiques que han de tenir el Ldap per poder-se integrar amb l'aplicació de faltes

Actualment (--acacha 14:48, 3 maig 2011 (UTC)) tenim el següent tipus d'usuaris:

  • Alumnes
  • Professors

En futures versions es vol incorporar també:

  • Familiars dels alumnes

Instal·lació de Gosa

Instal·lació Aplicació Gosa

Gestionar professors

Exemple amb gosa:

/All/Profes

On

  • All: És la carpeta principal que conté tots els grups, tant d'alumnes com de professors.
  • /All/Profes: És la carpeta que conté informació específica dels professors, agrupats per departaments.

Aquí podem guardar tots els professors sense ordenar però millor si els organitzem per departaments:

UnitatOrganitzacional11GOSA.png

Per exemple suposem que volem crear el departament d'informàtica, aleshores el DN és:

/All/Profes/Informàtica
DN: ou=Informàtica,ou=Profes,ou=All,dc=iesebre,dc=com

Creeu aquest departament (OU) i tots els departament pare que us faltin. Un cop el tingueu, creeu un usuari per a cada professor del departament

Primer pas: creació de l'estructura
  • Anem a l'apartat Directory structure, clicarem en Acciones - Crear - Organización
TODO: Error! No és una organització és un departament!
UnitatOrganitzacional1GOSA.png


  • Un cop dins, omplim les dades referents a Nombre de la Organización i Descripción, i clicarem a Ok.


UnitatOrganitzacional2GOSA.png


  • Un cop creada l'organització All, sortirà per pantalla com /All. Clicarem damunt d'ella, i entrarem en una altra pantalla on es pot veure en un requadre Base /All. Clicarem un altre cop en Acciones - Crear - Organización. Omplirem les dades referents a Nombre de la Organización (introduint Profes) i Descripción. Si en l'apartat Base ja surt automàticament que estem dins de /All, i clicarem a Ok.


UnitatOrganitzacional3GOSA.png


  • Una vegada creada l'estructura Profes, hem de crear els departaments dels professors. Clicarem dins de Profes i farem Acciones - Crear - Departamento.


UnitatOrganitzacional5GOSA.png


  • Omplirem Nombre del departamento i Descripción, i podrem observar que en el camp Base estem situats dins de /All/Profes


UnitatOrganitzacional6GOSA.png
Segon pas: creació de l'usuari
  • Clicarem l'apartat Usuarios, i en el camp Base, veurem que ja ens indica tota la ruta on es creara l'usuari (en el nostre cas: /All/Profes/Informàtica). Clicarem Acciones - Crear - Usuario


UnitatOrganitzacional7GOSA.png


  • Omplirem els apartats Apellido, Nombre, Inicio (que és el nom amb que iniciarà l'usuari la seva sessió) i el camp Número empleado

IMPORTANT: Un camp especial és el employeeNumber (Número empleado) que conté el codi de professor. Si no creem aquest camp, donarà errors a l'hora d'accedir l'usuari al sistema, ja que demanarà aquest camp


UnitatOrganitzacional8GOSA.png


  • Ens sortirà una pantalla on ens demanarà una contrasenya i la seva verificació.


UnitatOrganitzacional9GOSA.png


  • Una vegada fets tots aquests passos, en la pantalla del GOSA sortirà el nou usuari.


UnitatOrganitzacional10GOSA.png


Un cop creat l'usuari haurem de dir a l'aplicació webfaltes on es guarden els professors. En aquest cas el baseDN dels professors és ou=Profes,ou=All,dc=iesebre,dc=com i es guarda a la constant "_LDAP_TEACHER_BASE_DN" del fitxer webfaltes_ldap_con.php.

Gestionar alumnes

Exemple amb gosa:

  • Crear un Unitat Organitzacional que contingui els alumnes. Exemple:

Ens dirigim a Directory Structure i ens fiquem sobre Actions i allí Create/Department

Usuari GerardSese Estructura Directoris All Alumnes 1.png
/All/Alumnes
Usuari GerardSese Estructura Directoris All Alumnes 2.png
  • Fem clic sobre el departament All i allí realitzem la mateixa acció que abans per crear el departament Alumnes:
Usuari GerardSese Estructura Directoris All Alumnes 3.png

On

  • All: És el directori que conté tota l'estructura de departmanets
  • /All/Alumnes: És el departament que conté tota la informació referent als alumnes del centre

Aquí es poden organitzar els alumnes de diferents formes, un exemple és el de l'Institut de l'Ebre:

Captures de pantalla de les organitzacions dels alumnes per famílies, en aquest cas per la família d'Informàtica:

Usuari GerardSese Estructura Directoris All Alumnes 4.png

Captures de pantalla de les organitzacions dels alumnes per cicles, en aquest cas pel cicle d'informàtica ASI:

Usuari GerardSese Estructura Directoris All Alumnes 5.png

Captures de pantalla de les organitzacions dels alumnes per cursos, en aquest cas el segon curs:

Usuari GerardSese Estructura Directoris All Alumnes 6.png

Captures de pantalla de les organitzacions dels alumnes per grups, en aquest cas el grup A:

Usuari GerardSese Estructura Directoris All Alumnes 7.png

Per exemple per a informàtica:

DN: ou=Grup A,ou=Curs 2,ou=Informàtica   ASI,ou=Informàtica,ou=Alumnes,ou=All,dc=iesebre,dc=com
Usuari GerardSese Estructura Directoris All Alumnes 8.png
  • Dins de l'arxiu /etc/gosa/gosa.conf està creada per defecte l'estructura ou=People i és aquí on el programa espera trobar tots els usuaris. Sinó es coloquen aquí dins, donarà error. Font:
$ man gosa.conf | grep people

Camps importants:

Hi ha una serie de camps que s'han fet servir per guardar unes dades tot i que no tenen cap relació amb el nom. Aquests són:

physicalDeliveryOfficeName: On guardem el grup al qual pertanyen els alumnes.
businessCategory: On guardem el codi de l'aula.
employeeNumber: On guardem l'identificador tant dels alumnes com dels professors.

Si en algun moment donat ens interesses canviar aquests camps especials a part de canviar-ho dels usuaris s'hauria de canviar d'aquest fitxer.

Explicar com es poden canviar per ADS... i per Gosa?

Donar d'alta un usuari/alumne, manual pas a pas...

TODO:

A on es configura quin és el baseDN per a buscar els alumnes per a webfaltes? i els camps especials?

Un cop creat l'usuari haurem de dir a l'aplicació webfaltes on es guarden els alumnes. En aquest cas el baseDN dels alumnes és ou=Alumnes,ou=All,dc=iesebre,dc=com i es guarda a la constant "_LDAP_STUDENT_BASE_DN" del fitxer webfaltes_ldap_con.php.

Gestió de les taules de la base de dades MySQL

A la base de dades de Webfaltes tenim les següents taules:

  • assignatura: aquesta taula emmagatzema les dades de les assignatures que s'impartiran durant tot el curs; aquestes dades són codi_assignatura i nom_assignatura.
  • El codi de l'assignatura és un codi curt alfanumèric que. Aquest codi és important per què s'utilitza
  • carrec_departament: aquesta taula emmagatzema les dades dels departaments, es guardarà dos càrrecs dels professors que estan en aquest departament (si es que en té dos) i dos departaments en els quals està l'anomenat professor (pot ser que només ni hagi un).
  • classe: la taula classe contindrà dades de les assignatures que s'imparteixen a les aules amb un codi de lliçó i de grup (serà el codi de la classe), també estarà el professor el dia i l'hora.
  • descripcio_motius_incidencia: aquesta taula té els identificador de les incidències que tindran els alumnes, un motiu curt que serà l'abreviació (p.e. fj) i el motiu llarg que serà el nom de la incidència (p.e. falta justificada).
  • dia_setmana: aquesta taula serveix per identificar quin dia de la setmana es farà una assignatura en concret, per a això necessitem el codi dia (seran números del 1 al 7), el dia curt serà l'abreviació del dia de la setmana (p.e. dl) i el dia llarg és el nom del dia de la setmana.
  • grup: la taula grup contindrà dades de les classes de alumnes, necessitarà tenir el nom del grup (p.e 2ASI), el nivell educatiu (p.e. CFGS), el grau (p.e. segon), la descripció del cicle formatiu triat, i el número del tutor del cicle.
  • horari: contindrà els números dels dies de la setmana i els números de les hores ( del 1 al 12 seria la primera hora, la segona hora, etc...).
  • incidencia: les incidències tindràn el codi del alumne que ha fet la incidència, el codi del dia, el codi de la hora, el codi de la assignatura, la data en la qual s'ha efectuat aquesta incidència, el motiu, si hi ha o no justificant, si el correu electrònic o el missatge de text s'han enviat, si hi ha alguna observació, el primer cognom del professor que fa la classe al qual l'alumne a faltat i el nom, el dia que es crea la incidència i per últim la última actualització d'aquesta incidència.
  • interval_horari: en aquesta taula es guardaran els intervals que van d'una hora al altra (p.e. per al codi_hora 1 l'inici serien les 8:00 i el final les 9:00).
  • llico: aquí es guardarà un codi de lliçó (p.e. tema 1 serà el codi 1) i les hores setmanals que tindrà aquesta lliçó.
  • rol_professor: serveix per saber si un professor té drets d'administrador. Conté els atributs codi_professor (per relacionar amb els professors) i es_coordinador (el boolea que et diu si és administrador (1) o no(0)).
  • Estat_alumne: Conte el codi del alumne, l'assignatura i el camp estat que te com a possibles valors 0 no fa res, 1 Assisteix, 2 Falta, 3 Convalida, 4 Ocult.

Podem consultar el diccionari de dades aquí.

Hi ha taules amb dades fixes, això significa que no solen canviar (només en canvis de períodes acadèmics o circumstàncies excepcionals), i aquestes taules són:

  • assignatura: Aquesta taula la podem crear important aquest fitxer al phpmyadmin.
  • descripcio_motius_incidencia: Aquesta taula la podem crear important aquest fitxer al phpmyadmin.
  • dia_setmana: Aquesta taula la podem crear important aquest fitxer al phpmyadmin.
  • horari: Aquesta taula la podem crear important aquest fitxer al phpmyadmin.
  • interval_horari: Aquesta taula la podem crear important aquest fitxer al phpmyadmin.
  • rol_professor

Webfaltes er v3.jpeg

Com podeu veure la aula central i per tant la més important és la taula classe.

NOTA: Les taules alumne i professor no existeixen a la base de dades ja que els usuaris es guarden en ldap.

Tenim les següents fonts de dades:

Fitxers

/etc/webfaltes/

Dintre d'aquesta carpeta trobem els següents fitxers que corresponen a la configuració de l'aplicació :

   webfaltes_ldap_con.php
   webfaltes_mysql_con.php

Aquests 2 fitxers estan relacionats amb les connexions mysql i ldap per a l'aplicació.

/usr/share/webfaltes

Dintre d'aquesta carpeta trobem els següents fitxers :

   Llistat_correu_centre_alumnes.php
   Llistat_correu_centre_personal_alumnes.php
   Llistat_correu_personal_alumnes.php
   StudentManagment.php
   administrar.php
   class_list_report.php
   class_list_report_no_photo.php
   class_lists_report.php
   class_sheet_report.php
   compileLocales.sh
   config.inc.php
   connexio/
   css/
   email_history_1.php
   email_history_2.php
   estadistiques.php
   example_database/
   faltes.php
   funcions.php
   funcions_ldap.php
   identifica.php
   identifica_alumne.php
   identifica_pare.php
   images/
   imatges/
   includes/
   index.php
   informe_centre_d_h_1.php
   informe_centre_d_h_2.php
   informe_centre_di_df_1.php
   informe_centre_di_df_2.php
   informe_centre_ranking_di_df_1.php
   informe_centre_ranking_di_df_2.php
   informe_resum_credit_di_df_1.php
   informe_resum_credit_di_df_2.php
   informe_resum_grup_di_df_1.php
   informe_resum_grup_di_df_2.php
   informe_resum_grup_faltes_mes_1.php
   informe_resum_grup_faltes_mes_2.php
   insereix_est.php
   insereix_inc.php
   insereix_inc.php.backup
   insert_new_password.php
   insert_recovery_password.php
   insert_recovery_username.php
   javascript/
   jquery.js
   libs/
   locales/
   logout.php
   lost_password.php
   lost_password_ok.php
   mailing_list_report.php
   mostra_res_missatge.php
   mostra_res_missatge_contrasenya.php
   navega.php
   novetats.html
   parameters_sms_email.php
   passwordrecovery.php
   photo/
   php_config.php
   phpinfo.php
   profile.php
   profile_father.php
   profile_student.php
   recupera_alumne_BD.php
   recupera_professor_BD.php
   recuperar_alumnes.php
   recuperar_profes.php
   reports/
   seguretat.inc.php
   selec_estadistiques.php
   selec_informe.php
   selecalum.php
   selecalum_tutoria.php
   selecgroup.php
   selecgrup_tutoria.php
   select_option_avis_pares.php
   send_mail.php
   setup/
   setup.php
   setup.sh
   smarty/
   smarty_messages.c
   sms_history.php
   sms_history_1.php
   themes/
   tutoria.php
   updateLocales.sh
   view_jpeg_photo.php

Aquest grup de fitxers correspon als arxius necessaris per fer funcionar l'aplicació webfaltes.

/usr/share/doc/

Dintre d'aquesta carpeta hi trobem la documentació de l'aplicació :

   changelog
   webfaltes/
   webfaltes_ldap_con.php

A més dintre el subdirectori webfaltes hi podem trobar bases de dades sql i ldap d'exemple, arxius innecessaris, exemples i altres fitxers extres :

/usr/share/doc/webfaltes/

  basura/
  contributors/
  examples/
  ldap/
  sql/


L'esquema de la base de dades la podeu trobar a:

/usr/share/doc/webfaltes/examples/database/webfaltes-schema.sql

I algunes dades estàtiques fixes:

/usr/share/doc/webfaltes/examples/database/webfaltes.sql


/var/cache/webfaltes/

   class.cache

/var/spool/webfaltes/

   README

Documentació per als desenvolupadors

Instal·lació

Consulteu Webfaltes#Entorn_de_desenvolupament

Relació de fitxers

TODO: Carpeta smarty

  • TODO repassar les plantilles no s'usen
/usr/share/webfaltes/locales: Aquí es guarden els locales compilats
  • TODO: Pestanya administrador:
  • TODO:
  • Altres

TODO: repassar tots els fitxers de reports:

Llencol_estudiants_grup.php          Llistat_grup_tutor.php                  informe_centre_di_df_pdf.php          informe_resum_credit_di_df_pdf.php
Llistat_alumnes_grup.php             carta_informe_resum_grup_di_df_pdf.php  informe_centre_professors_pdf.php     informe_resum_grup_di_df_pdf.php
Llistat_alumnes_grup_sense_foto.php  informe_centre_d_h_pdf.php              informe_centre_ranking_di_df_pdf.php  informe_resum_grup_faltes_mes_pdf.php


Dependències:

/usr/share/webfaltes/index.php

TODO:

  • Incorporar una navegador als costats del titol on apareix en dia: Dia anterior, dia següent, Setmana anterior, Setmana següent...
  • El nom del mòdul porta a un detall tipus perfil del mòdul on obtenir més informació.

/usr/share/webfaltes/selecalum.php

TODO Al titol:

  • Plurals: 20 alumnes
  • Nom del Grup: Porti al perfil amb informació del grup
  • Data: serveixi com a tornar a endarrera, es a dir torni al passar llista per ala data concreta.

/usr/share/webfaltes/profile.php

TODO:

  • Boto modificar porta al gosa: parametritzar la URL del GOSA al fitxer config (explicar amb una nota que cal entrar al gosa)
  • Un sol fitxer per a tots els profiles amb indepèndencia de si es profe o alumne o el que sigui..
  • Al menys que mostri el mateix que el perfil de l'alumne:
  • FOTO
  • DNI
  • Sexe...
  • Afegir funcionalitats: consultar l'horari, grups de classe, l'adreça de correu clicable, navegar endarrera...


profile_student.php
  • NO funciona timetable.php: mostrar horaris
  • Email clicable

/usr/share/webfaltes/tutoria.php

/usr/share/webfaltes/selecgroup.php

TODO:

  • Saltar quan només hi ha una opció: és a dir si només tinc un grup mostrar directament el grup
  • Mostrar el codi de grup i després la descripció
  • Ordenats per cicles estaria molt bé...
/usr/share/webfaltes/selecalum_tutoria.php

TODO:

  • Mostra una columna en dies que no hi ha classe com els diumenges
  • Mateixes millores que ena ltres en el títol de la taula (grups cicables a perfils, etc.)
  • Els dies de la setmana apareixen en angles!
  • Navegació: el torna millor que no sigui boto, un enllaç i mostrar-lo també a la part superior.
/usr/share/webfaltes/llistatAlumneMes.php

TODO:

  • Al desplegable, el primer de la llista sigui un text: "Selecciona un alumne..."
  • Camp de text amb cercador interactiu, és a dir que a mesura que escrigui mostri els alumnes possibles.
  • Boto validar, millor que es digui seleccionar.

/usr/share/webfaltes/selec_informe.php

/usr/share/webfaltes/class_list_report.php

Mostra una llista desplegable amb totes les classes del centre i un cop escollida la classe mostra les llistes de classe amb foto o sense foto

/usr/share/webfaltes/class_sheet_report.php

TODO:

  • Fusionar amb l'anterior

Reports PDF

/usr/share/webfaltes/reports/Llistat_alumnes_grup.php

/usr/share/webfaltes/reports/Llistat_alumnes_grup_sense_foto.php

/usr/share/webfaltes/reports/Llencol_estudiants_grup.php

/usr/share/webfaltes/Llistat_correu_personal_alumnes.php

TODO:

  • Posar/fusionar totes les opcions en un sol fitxer
  • Mostrar estadístiques: Número total d'alumnes, alumnes sense correu personal i/o de centre (mostrar llista)
  • ...

Login. /usr/share/webfaltes/identifica.php

La identificació es fa per usuari i paraula de pas. L'usauri es troba a un arbre ldap i la paraula de pas està emmagatzemada en MD5

TODO:

  • Fitxer config: definire el tipus de contrasenya (MD5, CRYPT, el que sigui)
  • Documentar com funcionen els substituts.

Mòduls a mig implementar

Gestió d'estudiants. StudentManagment

Fet per Pau Gomez Fitxer:

  • StudentManagment.php: Cal venir a aquest formulari provenint de selecgroup.php?form_action=StudentManagment.php
  • afegir_alumne.php: afegeix alumne a Ldap?
  • afegir_alumne2.php: afegeix alumne a Ldap?

Taules:

  • Cal una taula alumne

email_history_1.php i email_history_2.php

????

estadístiques

Fitxer:

  • estadistiques.php
  • selec_estadistiques.php
  • /smarty/templates/selec_estadistiques.tpl

Mostrar faltes als pares

  • ./smarty/templates/faltes.tpl
  • ./identifica_pare.php
  • ./faltes.php

Password recovery

Fitxers:

  • passwordrecovery.php
  • insert_new_password.php
  • insert_recovery_password.php
  • insert_recovery_username.php
  • lost_password.php
  • lost_password_ok.php

Missatges SMS i email

  • mostra_res_missatge.php
  • mostra_res_missatge_contrasenya.php
  • parameters_sms_email.php
  • select_option_avis_pares.php
  • send_mail.php

subversion

Instal·lació i configuració de l'entorn de treball. IDE Eclipse

Establint el tag $$Id$$

Si voleu modificar codi de l'aplicació de faltes cal tenir en comtpe que utilitza el tag Id i que per tant l'haureu d'activar. Consulteu:

 Subversion#Establint_el_tag_Id

Ignorant fitxers amb informació sensible

Els fitxers que s'han d'ignorar seran:

  1. webfaltes_con.php (a la carpeta connexió).
  2. webfaltes_ldap_con.php (a la carpeta connexió).

També s'hauran d'ignorar dues carpetes que crearem nosaltres:

  1. templates_c (a la carpeta smarty).
  2. configs (a la carpeta smarty).
  3. cache (a la carpeta smarty).

IMPORTANT: Si esteu desenvolupant i utilitzeu el Makefile un altre opció es només canviar el noms dels fitxer a la carpeta /usr/share/webfaltes i no pas al vostre espai de treball (workspace) Consulteu Webfaltes#Configuraci.C3.B3_de_l.27aplicaci.C3.B3_webfaltes

Per línia d'ordres

Per a un directori:

$ svn propset svn:ignore '*' directori/ .

Per exemple:

$ svn propset svn:ignore '*' smarty/templates_c/ .

Per a un fitxer:

$ svn propset svn:ignore fitxer .

Per exemple:

$ svn propset svn:ignore connexio/webfaltes_con .


Per pujar els canvis al subversion haurem de fer un commit:

$ svn ci


Amb Eclipse i el plugin Subclipse:

Amb l'eclipse és molt més sencill, haurem de seleccionar el fitxer que volem ignorar. Una vegada seleccionat, botó dret Team > Add to svn:ignore.

Una vegada fet tot això el fitxer o la carpeta triada serà ignorada per al subversion.

Com s'utilitza Smarty?

La idea és separar el codi font (model i el controlador) de les fulles d'estil (les vistes). L'únic que fa un controlador és controlar el flux. També serveix per separar els llenguatges, no volem tots els diferents llenguatges barrejats en un fitxer. L'Smarty serveix per separar el codi php de la presentació.

Definició: és un motor per a crear plantilles, és a dir, que permet crear plantilles i presentacions per a aplicacions PHP.

El framework és una serie d'eines que t'ajuda a fer coses, el smarty és un framework que t'ajuda a fer plantilles. Per preparar un projecte nou amb Smarty:

Crearem un nou projecte php que s'anomenarà HolaMon

Crearem una carpeta smarty que a dins hi haurà 4 carpetes:

  1. templates: Només tindrà html i tpl (plantilles).
  2. templates_c: No s'ha de tocar. A aquesta carpeta li haurem de donar permisos d'execució per tal que funcioni. S'encarrega de compliar les plantilles que son passades a binari quan es van a utilitzar.
  3. cache: guarda el cache.
  4. configs

A aquestes carpetes se'ls haurà de donar permisos especials per tal que funcionin:


$ chown www-data:www-data smarty/templates_c
$ chown www-data:www-data smarty/cache
$ chmod 775 smarty/templates_c
$ chmod 775 smarty/cache

Donem permisos amb l'usuari del apache(www-data).

Un exemple sencill:

<?php

// put full path to Smarty.class.php
require('/usr/local/lib/php/Smarty/Smarty.class.php');
$smarty = new Smarty();

$smarty->template_dir = '/home/ester/workspace/Holamon_Smarty/templates';
$smarty->compile_dir = '/home/ester/workspace/Holamon_Smarty/templates_c';
$smarty->cache_dir = '/home/ester/workspace/Holamon_Smarty/cache';
$smarty->config_dir = '/home/ester/workspace/Holamon_Smarty/configs';

$smarty->assign('name', 'Ester Almela Sánchez');
$smarty->display('index.tpl');

?>

Però també hem de crear un altre fitxer anomenat index.tpl dins la carpeta templates (es tracta de la plantilla):

<html>
<head>
<title>Smarty</title>
</head>
<body>
Hello, {$name}!
</body>
</html>

Com s'utilitza la Localització

La localització és el procés d'adaptar una aplicació (o tot un sistema operatiu) a una regió específica i a un idioma específic. Com que és una paraula molt llarga s'utilitza l'abreviació l10n on 10 són el número de lletres que hi ha entre l l i la n a la paraula localització. A la localització també de l'anomena regionalització.

Per a fer funcionar la localització haurem de tenir una carpeta anomenada locales dins al nostre projecte que contindrà tantes carpetes com idiomes tindrem traduïts, per exemple, per utilitzar el català tindrem la carpeta ca_ES, dins d'aquesta anirà una altra anomenada LC_MESSAGES i dins d'aquesta dos fitxers, messages.po i messages.mo. L'arxiu messages.po conté les traduccions de la següent manera:

#: smarty_messages.c:8 smarty_messages.c:776 smarty_messages.c:1001
#: smarty_messages.c:1613
msgid "Are you sure you want to delete the selected registrys"
msgstr "Estas segur que vols esborrar els registres seleccionats"

Com s'utilitzen les consultes SQL

Les consultes SQL es fan al arxiu includes/db/sql_querys_inc.php i s'executen als arxius on es referencien que són php.

Un exemple d'execució seria així:

$utils = new utils();

$RSRC = array();
$VALS = array();
$VALS['codi_professor'] = $codi_professor;
			
$utils->get_global_resources($RSRC, "db/sql_querys_inc.php", $VALS);

$utils->p_dbg($RSRC, "Prova log");
						
$result_5 = $ConTut->Execute($RSRC['COMPROVA_COORDINADOR']) or die($ConTut->ErrorMsg());

VALS serà l'array per la qual li passarem els valors a la SQL, i la comanda s'executarà a la línia del $result_5 on si hi ha un error ens mostrarà un missatge.


$RSRC['COMPROVA_COORDINADOR'] = <<<EOF
SELECT es_coordinador
FROM rol_professor
WHERE codi_professor = '{$VALS['codi_professor']}';

Aquesta seria la consulta que aniria al sql_querys_inc.php, $RSRC['COMPROVA_COORDINADOR'] aquest és el nom de la consulta, el qual necessitarem al php per referenciar-lo.

Setup

NOTA: Tal i com està ara (--acacha 05:06, 3 juny 2011 (UTC)) necessita d'smarty3!!

  • Canvis generals: Logo webfaltes. Adaptar a la presentació? Podríem passar al blau de l'Institut en comptes del gris de Gosa?
  • Step 1. Welcome: canviar la plantilla de presentació de gosa a webfaltes. TODO Multiidiomna
  • Step 2. Installation check: Ok i afegir més coses, tots els requeriments
  • Step 3. License: Ok
  • Step 3a. Esquemes Ldap: Ara no en tenim però n'hauríem de tindrà
  • Step 4. Ldap connection setup: Ok, però cal guardar les dades per tal de generar els fitxers de configuració nostres no els de gosa
  • Step 5. Ldap inspection: ??? Comprovar l'usuari webfaltes o similar que permeti la connexió a ldap
  • Step 5a. Estaria bé fer un feedback: TODO
  • Step 6. Ldap Finish: Múltiples fitxers de configuració: ldap_connection, mysql_connection, fitxer general.

Classes (carpeta setup).

Una classe pare: class_setupStep.inc

-rw-rw-r-- 1 sergi sergi   2783 2011-06-03 06:11 class_setupStep.inc

Aquesta classe és realment una plugin de gosa (hereta de la classe plugin!).

Una classe filla per cada pas (Step):

$ ls -l
-rw-rw-r-- 1 sergi sergi  13538 2011-06-03 06:11 class_setupStep_Checks.inc
-rw-rw-r-- 1 sergi sergi   9669 2011-06-03 06:11 class_setupStep_Feedback.inc
-rw-rw-r-- 1 sergi sergi   4536 2011-06-03 06:11 class_setupStep_Finish.inc
-rw-rw-r-- 1 sergi sergi   2383 2011-06-03 06:11 class_setupStep_Language.inc
-rw-rw-r-- 1 sergi sergi   6875 2011-06-03 06:11 class_setupStep_Ldap.inc
-rw-rw-r-- 1 sergi sergi   2446 2011-06-03 06:11 class_setupStep_License.inc
-rw-rw-r-- 1 sergi sergi  32914 2011-06-03 06:11 class_setupStep_Migrate.inc
-rw-rw-r-- 1 sergi sergi   3766 2011-06-03 06:11 class_setupStep_Schema.inc
-rw-rw-r-- 1 sergi sergi   2162 2011-06-03 06:11 class_setupStep_Welcome.inc

-rw-rw-r-- 1 sergi sergi 9442 2011-06-03 06:50 class_setup.inc

TODO: Un step de mysql?

TODO: Fitxer de configuració en XML? utilitzar el parser de Gosa.

Step Ldap connection setup

Afegir dos camps

Students RDN: Valor per defecte: ou=Alumnes,ou=All
Teachers RDN: Valor per defecte: ou=Profes,ou=All

Per crear les línies:

define("_LDAP_STUDENT_BASE_DN", "ou=Alumnes,ou=All,dc=iesebre,dc=com");
define("_LDAP_TEACHER_BASE_DN", "ou=Profes,ou=All,dc=iesebre,dc=com");

On dc=iesebre,dc=com és el basedn que ja el tenim. Al fitxer plantilla posem:

define("_LDAP_STUDENT_BASE_DN", "{$cv.ldapteachersrdn},{$cv.base}");
define("_LDAP_TEACHER_BASE_DN", "{$cv.ldapstudentsrdn},{$cv.base}");

NOTA: A la plantilla s'afegeix la opció TLS (define("_LDAP_TLS", "0");) tot i que no està implementada/suportada--> opció de futur

TODO: Cal manipular {$cv.connection} per obtenir els camps:
{$cv.ldapserver}
{$cv.port}

Step Ldap inspection

Checking for a root object --> Ok
 Checking _LDAP_STUDENT_BASE_DN --> TODO
 Checking _LDAP_TEACHER_BASE_DN --> TODO
Checking permission for LDAP database ??????????????????
Checking for super administrator Checking for user to connect to Ldap

Camps:

{$cv.ldapuserrdn}
{$cv.ldapuserpassword}

Per a fer el fitxer:

define("_LDAP_USER", "{$cv.ldapuserrdn},{$cv.base}");
define("_LDAP_PASSWORD", "{$cv.ldapuserpassword}");

Step Finish

Que cal fer?

La nostra pròpia plantilla/plantilles d'smarty:

/usr/share/doc/webfaltes/webfaltes_ldap_con.php
/usr/share/doc/webfaltes/webfaltes_mysql_con.php
/usr/share/doc/webfaltes/webfaltes.conf

Ldap. Exemple:

define("_LDAP_SERVER", "localhost");
define("_LDAP_PORT", 389);
define("_LDAP_USER", "cn=webfaltes,dc=iesebre,dc=com");
define("_LDAP_PASSWORD", "webfaltes");
define("_LDAP_GROUP", "physicaldeliveryofficename");
define("_LDAP_USER_ID", "employeenumber");
define("_LDAP_STUDENT_BASE_DN", "ou=Alumnes,ou=All,dc=iesebre,dc=com");
define("_LDAP_TEACHER_BASE_DN", "ou=Profes,ou=All,dc=iesebre,dc=com"); 
_LDAP_SERVER           -> {$cv.connection}=ldap://localhost:389 (cal treure el protocol i el port)
_LDAP_PORT             -> {$cv.connection}=ldap://localhost:389 (cal treure el protocol i el nom de màquina)
_LDAP_USER             -> cn=webfaltes,{$cv.base}
_LDAP_PASSWORD         -> ???? Generar un aleatòriament!
_LDAP_GROUP            -> "physicaldeliveryofficename"
_LDAP_USER_ID          -> "employeenumber
_LDAP_STUDENT_BASE_DN  -> ou=Alumnes,{$cv.base}
_LDAP_TEACHER_BASE_DN  -> ou=Profes,{$cv.base}
{$cv.location}   -> no ens cal!
{$cv.connection} -> ldap://localhost:389
{$cv.base}       -> dc=iesebre,dc=com
{$cv.admin}      -> Tampoc el necessita webfaltes! Al menys no cal guardar en cal fitxer, només cal per fer temporalment operacions al servidor Ldap
{$cv.password}   -> no es necessita

Variables:

   <location name="{$cv.location}"
             config="ou=gosa,ou=configs,ou=systems,{$cv.base}">
             <referral URI="{$cv.connection}/{$cv.base}"
                       adminDn="{$cv.admin}"
                       adminPassword="{$cv.password}" />
   </location>
 </main>

</conf>

Exemple de vector cv:

Array
(
   [instanceUUID] => f6ed507f-d29e-4c46-b55e-39103e3718b7
   [accepted] => 1
   [connection] => ldap://localhost:389
   [location] => default
   [admin] => cn=admin,dc=iesebre,dc=com
   [password] => PASSWORD
   [base] => dc=iesebre,dc=com
   [admin_given] => cn=admin,dc=iesebre,dc=com
   [append_base_to_admin_dn] => 
   [tls] => 0
   [rfc2307bis] => 0
)

Es pot imprimir a smarty amb:

{$cv|@print_r} 
Com funciona la versió original de gosa?

La clau és la funció:

 function get_conf_data()
  {
    $smarty = get_smarty();
    $smarty->assign("cv",xmlentities($this->parent->captured_values));
    $smarty->assign("config_checksum", md5(file_get_contents(CONFIG_TEMPLATE_DIR.$this->gosa_conf_contrib)));
    $str =  $smarty->fetch(CONFIG_TEMPLATE_DIR.$this->gosa_conf_contrib);
    return($str);
  } 

Aquesta funció s'encarrega de crear/obtenir el fitxer de configuració a partir d'una plantilla. La plantilla és troba a:

CONFIG_TEMPLATE_DIR.$this->gosa_conf_contrib

és a dir

/usr/share/doc/gosa/gosa.conf

Ja que

  • CONFIG_TEMPLATE_DIR = /usr/share/doc/gosa
$ grep -n "CONFIG_TEMPLATE_DIR" -r .
...
./usr/share/webfaltes/setup/.svn/text-base/functions.inc.svn-base:47:define ("CONFIG_TEMPLATE_DIR", "/usr/share/doc/gosa");
  • $this->gosa_conf_contrib: /gosa.conf
...
class Step_Finish extends setup_step
{
 var $gosa_conf_contrib   = "/gosa.conf";
...

Aquest fitxer és una plantilla d'smarty:

 $ cat /usr/share/doc/gosa/gosa.conf 
{literal}<?xml version="1.0"?>{/literal}
<conf configVersion="{$config_checksum}" 
    instancePassword=""
    instanceUUID="{$cv.instanceUUID}">

  <!-- GOsa menu definition **************************************************

       This tag defines the side and icon menu inside the
       interface. Defining an entry here is no guarantie to get it shown,
       though. Only entries with matching ACL's get shown.

       There are two types of entries inside of the menu: section and plugin

       Defining a section:

       Open a <section> tag including a "name" attribute. This will show up in
       the menu as a new section later on. Own entries are not handled via I18N
       by default. Close the </section> tag after your plugin definitions.

       Defining a plugin:

       Open a <plugin> tag including a "class" attribute. The "class" should be
       present inside your GOsa setup - the entry will be ignored if it is not.

       Plugins should have an "acl" entry, that allows GOsa to decide wether
       a user is allowed to see a plugin or not. The "acl" string matches with
       an ACL definition done inside of GOsa -> ACLs.

       You can override an icon by specifying the "icon" attribute.

       For more information about possible configuration parameters, please take
       a look at the gosa.conf(5) manual page.
   -->
  <menu>

    <!-- Section to enable administrative services -->
    <section name="Administration">
      <plugin acl="department" class="departmentManagement" />

      <!-- This long ACL list is required to exclude the users menu entry when only 
            'viewFaxEntries' permissions are set -->
      <plugin acl="users/netatalk,users/environment,users/posixAccount,users/kolabAccount,users/phpscheduleitAccount,users/oxchangeAccount,users/proxyAccount,users/connectivity,users/pureftpdAccount,users/phpgwAccount,users/opengwAccount,users/pptpAccount,users/intranetAccount,users/webdavAccount,users/nagiosAccount,users/sambaAccount,users/groupware,users/mailAccount,users/user,users/scalixAccount,users/password,users/gofaxAccount,users/phoneAccount,users/Groupware" 
            class="userManagement" />
      <plugin acl="groups" class="groupManagement" />
      <plugin acl="roles" class="roleManagement"/>
      <plugin acl="acl"  class="aclManagement" />
      <plugin acl="ogroups" class="ogroupManagement" />
      <plugin acl="sudo" class="sudoManagement" />
      <plugin acl="application" class="applicationManagement" />
      <plugin acl="mimetypes" class="mimetypeManagement" />
      <plugin acl="devices" class="deviceManagement" />
      <plugin acl="terminal/termgeneric,workstation/workgeneric,server/servgeneric,phone/phoneGeneric,printer/printgeneric,component/componentGeneric,winworkstation/wingeneric,opsi/opsiGeneric" class="systemManagement" />
      <!-- Use 'lockDn'      for dn
               'lockName'    for name
               'lockType'    for branch/freeze -->
      <plugin acl="fai/faiScript,fai/faiHook,fai/faiTemplate,fai/faiVariable,fai/faiPartitionTable,fai/faiPackage,fai/faiProfile,fai/faiManagement,opsi/opsiProperties" class="faiManagement" />
      <plugin acl="opsi" class="opsiLicenses"/>
      <plugin acl="gofaxlist" class="blocklist" />
      <plugin acl="gofonmacro" class="goFonMacro" />
      <plugin acl="gofonconference" class="phoneConferenceManagment" />
    </section>

    <!-- Section to enable addon plugins -->
    <section name="Addons">
      <plugin acl="all/all"  class="propertyEditor" />
      <plugin acl="server/rSyslogServer" class="rsyslog" />
<!--      <plugin acl="mailqueue" class="mailqueue" />-->
      <plugin acl="users/viewFaxEntries:self,users/viewFaxEntries" class="faxreport" />
      <plugin acl="users/viewFonEntries:self,users/viewFonEntries" class="fonreport" />
      <plugin acl="gotomasses" class="gotomasses" />
      <plugin acl="ldapmanager" class="ldif" />
    </section>
  </menu>

  <!-- These entries will be rendered on the short-cut menu -->
  <shortCutMenu>
      <plugin acl="none" class="welcome" />
  </shortCutMenu>

  <!-- These entries will be rendered on the path navigator -->
  <pathMenu>
      <plugin acl="users/netatalk:self,users/environment:self,users/posixAccount:self,users/kolabAccount:self,users/phpscheduleitAccount:self,users/oxchangeAccount:self,users/proxyAccount:self,users/connectivity:self,users/pureftpdAccount:self,users/phpgwAccount:self,users/opengwAccount:self,users/pptpAccount:self,users/intranetAccount:self, users/webdavAccount:self,users/nagiosAccount:self,users/sambaAccount:self,users/mailAccount:self,users/groupware, users/user:self,users/scalixAccount:self,users/gofaxAccount:self,users/phoneAccount:self,users/Groupware:self" class="MyAccount" />
      <plugin acl="users/password:self" class="password" />
  </pathMenu>


  <!-- Tab definitions *******************************************************

       Tab definitions define the sub plugins which get included for certain
       tabbed dialogs. If you change something here, never (!) remove the
       primary (the first) "tab" tag which is defined. Most tabbed dialogs
       need a primary plugin.

       "*tab" should be looked for by a defined plugin. This one will take
       every "tab" defined "class" and will show it inside of a tabbed dialog
       with the header defined in "name".
   -->

  <!-- ACL dialog -->
  <acltab>
    <tab class="acl" name="ACL" />
  </acltab>

  <aclroletab>
    <tab class="aclrole" name="ACL Role" />
  </aclroletab>

  <!-- User dialog -->
  <usertabs>
     <tab class="user" name="Generic" />
     <tab class="posixAccount" name="POSIX" />
     <tab class="sambaAccount" name="Samba" />
     <tab class="netatalk" name="Netatalk" />
     <tab class="mailAccount" name="Mail" />
<!--     <tab class="Groupware" name="Groupware" />-->
     <tab class="scalixAccount" name="Scalix" />
     <tab class="environment" name="Desktop" />
     <tab class="connectivity" name="Connectivity" />
     <tab class="gofaxAccount" name="Fax" />
     <tab class="phoneAccount" name="Phone" />
     <tab class="nagiosAccount" name="Nagios" /> 
   </usertabs>

  <!-- User dialog -->
  <MyAccountTabs>
     <tab class="user" name="Generic" />
     <tab class="posixAccount" name="POSIX" />
     <tab class="sambaAccount" name="Samba" />
     <tab class="netatalk" name="Netatalk" />
     <tab class="mailAccount" name="Mail" />
<!--     <tab class="Groupware" name="Groupware" />-->
     <tab class="scalixAccount" name="Scalix" />
     <tab class="environment" name="Desktop" />
     <tab class="connectivity" name="Connectivity" />
     <tab class="gofaxAccount" name="Fax" />
     <tab class="phoneAccount" name="Phone" />
     <tab class="nagiosAccount" name="Nagios" />
   </MyAccountTabs>

  <opsiLicenseTabs>
    <tab class="licensePoolGeneric" name="Generic"/>
    <tab class="licenseUsage" name="Usage"/>
  </opsiLicenseTabs>

  <!-- Group dialog -->
  <grouptabs>
    <tab class="group" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
    <tab class="environment" name="Desktop" />
    <tab class="appgroup" name="Startmenu" />
    <tab class="mailgroup" name="Mail" />
<!--    <tab class="GroupwareSharedFolder" name="Groupware" />-->
  </grouptabs>

  <!-- Sudo dialog -->
  <sudotabs>
    <tab class="sudo" name="Generic" />
    <tab class="sudoOption" name="Options" />
  </sudotabs>

  <!-- GOfax plugins -->
  <faxblocktabs>
    <tab class="blocklistGeneric" name="Generic" />
  </faxblocktabs>

  <!-- GOfon plugins -->
  <conferencetabs>
    <tab class="conference" name="Generic" />
  </conferencetabs>

  <macrotabs>
    <tab class="macro" name="Generic" />
    <tab class="macroParameter" name="Parameter" />
  </macrotabs>

  <phonetabs>
    <tab class="phoneGeneric" name="Generic" />
  </phonetabs>

  <!-- GOto plugins -->
  <appstabs>
    <tab class="application" name="Generic" />
    <tab class="applicationParameters" name="Parameter" />
  </appstabs>

  <mimetabs>
    <tab class="mimetype" name="Generic" />
  </mimetabs>

  <devicetabs>
    <tab class="deviceGeneric" name="Generic" />
  </devicetabs>

  <arpnewdevicetabs>
    <tab class="ArpNewDevice" name="Generic" />
  </arpnewdevicetabs>

  <termtabs>
     <tab class="termgeneric" name="Generic" />
     <tab class="termstartup" name="Recipe" />
     <tab class="termservice" name="Devices" />
     <tab class="terminfo" name="Information" />
  </termtabs>

  <servtabs>
     <tab class="servgeneric" name="Generic" />
     <tab class="workstartup" name="Recipe" />
     <tab class="ServerService" name="Services" />
     <tab class="faiSummaryTab" name="Deployment summary" />
     <tab class="gotoLogView" name="Installation logs" />
     <tab class="terminfo" name="Information" />
  </servtabs>

  <worktabs>
     <tab class="workgeneric" name="Generic" />
     <tab class="workstartup" name="Recipe" />
     <tab class="workservice" name="Devices" />
     <tab class="printgeneric" name="Printer" />
     <tab class="terminfo" name="Information" />
     <tab class="faiSummaryTab" name="Deployment summary" />
     <tab class="gotoLogView" name="Installation logs" />
  </worktabs>

  <printtabs>
     <tab class="printgeneric" name="Generic" />
  </printtabs>

  <componenttabs>
     <tab class="componentGeneric" name="Generic" />
  </componenttabs>

  <wintabs>
     <tab class="wingeneric" name="Generic" />
  </wintabs>

  <serverservice>
    <tab class="goMailServer" />
    <tab class="servkolab" />
    <tab class="goNtpServer" />
    <tab class="servrepository" />
    <tab class="goImapServer" />
    <tab class="goKrbServer" />
    <tab class="goFaxServer" />
    <tab class="goFonServer" />
    <tab class="goCupsServer" />
    <tab class="goKioskService" />
    <tab class="goTerminalServer" />
    <tab class="goLdapServer" />
    <tab class="goShareServer" />
    <tab class="gospamserver" />
    <tab class="govirusserver" />
    <tab class="servdhcp" />
    <tab class="servdns" />
    <tab class="rSyslogServer" />
  </serverservice>

  <!-- Department plugin -->
  <deptabs>
    <tab class="department" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </deptabs>

  <organization_tabs>
    <tab class="organization" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </organization_tabs>

  <locality_tabs>
    <tab class="locality" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </locality_tabs>

  <country_tabs>
    <tab class="country" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </country_tabs>

  <dcobject_tabs>
    <tab class="dcObject" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </dcobject_tabs>

  <domain_tabs>
    <tab class="domain" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </domain_tabs>

  <!-- Role tabs -->
  <roletabs>
    <tab class="roleGeneric" name="Generic"/>
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </roletabs>

  <ogrouptabs>
    <tab class="ogroup" name="Generic" />
    <tab class="DynamicLdapGroup" name="Dynamic object" />
  </ogrouptabs>

  <!-- Connectivity plugins -->
  <connectivity>
    <tab class='kolabAccount' />
    <tab class="proxyAccount" />
    <tab class="pureftpdAccount" />
    <tab class="webdavAccount" />
    <tab class="phpgwAccount" />
    <tab class="intranetAccount" />
    <tab class="pptpAccount" /> 
    <tab class="phpscheduleitAccount" /> 
    <tab class="oxchangeAccount" />
    <tab class="opengwAccount" />
  </connectivity>

  <ldiftab>
    <tab class="ldifexport" name="Export" />
    <tab class="xlsexport" name="Excel Export" />
  </ldiftab>

  <faipartitiontabs>
    <tab class="faiPartitionTable" name="Partitions" />
  </faipartitiontabs>

  <faiscripttabs>
    <tab class="faiScript" name="Scripts" />
  </faiscripttabs>

  <faihooktabs>
    <tab class="faiHook" name="Hooks" />
  </faihooktabs>

  <faivariabletabs>
    <tab class="faiVariable" name="Variables" />
  </faivariabletabs>

  <faitemplatetabs>
    <tab class="faiTemplate" name="Templates" />
  </faitemplatetabs>

  <faiprofiletabs>
    <tab class="faiProfile" name="Profiles" />
    <tab class="faiSummaryTab" name="Summary" />
  </faiprofiletabs>

  <faipackagetabs>
    <tab class="faiPackage" name="Packages" />
  </faipackagetabs>

  <opsitabs>
    <tab class="opsiGeneric" name="Generic" />
    <tab class="opsiSoftware" name="Hardware" />
    <tab class="opsiHardware" name="Software" />
    <tab class="licenseUsageByHost" name="License usage"/>
  </opsitabs>

  <opsiprodconfig>
    <tab class="opsiProperties" name="Properties" />
    <tab class="licenseByProduct" name="License usage"/>
  </opsiprodconfig>

  <!-- rSyslog plugin -->
  <rsyslogtabs>
      <tab class="rsyslog" name="System logs" />
  </rsyslogtabs>

  <!-- Main section **********************************************************

       The main section defines global settings, which might be overridden by
       each location definition inside.

       For more information about the configuration parameters, take a look at
       the gosa.conf(5) manual page.

  -->
  <!-- If you broke your setup using the propertyEditor, then set 'ignoreLdapProperties' to true. -->
  <main default="{$cv.location}"
        warnSSL="true"
        forceSSL="false"
        forceGlobals="true"
        ignoreLdapProperties="false"
{if $cv.rfc2307bis}
        rfc2307bis="true"
{else}
        rfc2307bis="false"
{/if}
    >

    <!-- Location definition -->
    <location name="{$cv.location}"
              config="ou=gosa,ou=configs,ou=systems,{$cv.base}">
              <referral URI="{$cv.connection}/{$cv.base}"
                        adminDn="{$cv.admin}"
                        adminPassword="{$cv.password}" />
    </location>
  </main>
</conf>

Informes

Informes en format PDF

Vegeu també:


Horaris

Proves

En aquesta apartat podeu trobar una sèrie de trucs i recomanacions per a fer proves-

Clau mestra

Existeix un hack per als desenvolupadors que permet entrar amb una clau mestre. Cal modificar el fitxer:

$ sudo joe /usr/share/webfaltes/identifica.php 

I canviar la línia:

if (comprovaBINDusuari($usuari, $contrasenya)==TRUE)

per

if (comprovaBINDusuari($usuari, $contrasenya)==TRUE || MD5($contrasenya)=="ff83fc7a5e51423fdd802755490fc7ec")

On el string:

ff83fc7a5e51423fdd802755490fc7ec

és el MD5 de la paraula de pas que vulgueu utilitzar com a mestre.

IMPORTANT: Aquest hack no es puja al codi font de subversion per evitar qe es propagui a altres instal·lacions. S'ha de posar manualment!

Crèdits de síntesi

Aquesta aplicació s'ha desenvolupat en gran part en el marc dels crèdits de Síntesi:

Contribuïdors

Aquesta aplicació s'ha desenvolupat gràcies a les contribucions de:

  • Carles Año: Creador de la primera versió
  • Sergi Tur Badenas

Crèdits de síntesi 2009-10:

Crèdits de síntesi 2010-11:

  • TODO

FAQ

Com canviar la paraula de pas dels usuaris Ldap

Teniu 3 opcions:

Per línia d'ordres ho podeu fer utilitzant la comanda ldappasswd.

Per exemple, per modificar la clau de pas de l'administrador del servidor ldap s'ha d'executar el següent per la línia de comandes :

$ ldappasswd -S -x -D "cn=admin,dc=iesebre,dc=com" -W "cn=admin,dc=iesebre,dc=com"
New password: 
Re-enter new password: 
Enter LDAP Password: 

NOTA: L'opció -S serveix per a que ens demani la paraula de pas nova, el mateix passa amb la opció -W però aquesta difereix en que ens demana la clau de pas antiga, ja que per a poder modificar la clau de pas d'un usuari cal connectar-nos al servidor ldap amb aquell usuari.

TODO: Exemple canviar la clau de pas de Admin

I per a modificar la clau de pas d'un profe s'ha de fer el següent, això s'hi el DN serà diferent :

$ ldappasswd -S -x -D "cn=Tur Badenas Sergi,ou="people,ou=Informàtica,ou=Prfes,ou=All,dc=iesebre,dc=com" -W "cn=Tur Badennas Sergi,ou=people,ou=Informàtica,ou=Profes,ou=All,dc=iesebre,dc=com"
New password: 
Re-enter new password: 
Enter LDAP Password:
TODO: Exemple canviar la paraula de pas d'un profe

Si teniu l'aplicació Gosa podeu entrar amb l'usuari admin de gosa i canviar la paraula de pas.

També es pot fer amb ADS. Consulteu:

Apache_Directory_Studio#Canviar_la_paraula_de_pas_d.27un_usuari_Ldap

Resolució de problemes

Problemes amb algunes fotos

Cal vigilar que no hi haguin fotos incorrecte en format a la carpeta tmp:

/tmp$ file * | grep buit


Pàgina en blanc i mostrar detalls dels errors

Per a mostrar els errors

display_errors determina si els errors s'han d'imprimir a la pantalla com a part de la sortida o si han de ser ocultats a l'usuari.

Per tal de mostrar els errors hem de modificar el fitxer:

$ sudo joe /etc/php5/apache2/php.ini

I activar display_errors:

display_errors = On

A continuació aplicarem els canvis a Apache

$  sudo /etc/init.d/apache2 reload

Si fem això ens mostrarà els errors que hi ha; al connectar-mos a l'aplicació amb un usuari professor al que li hem donat una contrasenya al ADS ens surten els següents errors:

/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1939 Notice: Undefined index: id in /home_local
/peke/workspace /Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1945 Notice: Undefined index: chkids in /home_local
/peke/workspace /Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1948 Notice: Undefined index: id in /home_local
/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1954 Notice: Undefined index: chkids in /home_local
/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1957 Notice: Undefined index: codi_grup in /home_local
/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1963 Notice: Undefined index: codi_profe in /home_local
/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1967 Notice: Undefined index: md5 in /home_local
/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1967 Notice: Undefined index: c in /home_local/peke/workspace
/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1972 Notice: Undefined index: md5 in /home_local/peke/workspace
/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php on line 1975 Warning: Cannot modify header information - headers already sent by  
(output started at /home_local/peke/workspace/Credit_Sintesi/usr/share/webfaltes/includes/db/sql_querys_inc.php:238) in /home_local/peke/workspace
/Credit_Sintesi/usr/share/webfaltes/identifica.php on line 310 

El que haurem de fer és tornar a desactivar els display errors del arxiu php.ini; entrant amb l'usuari d'un professor ens sortirà la següent pantalla:

Capturaweb.png


Smarty-gettext. Unknown tag t. Smarty versió 3

vegeu la solució


He oblidat la paraula de pas d'un usuari Ldap o la vull modificar

Consulteu:

Webfaltes#Com_canviar_la_paraula_de_pas_dels_usuaris_Ldap

Vegeu també

Enllaços externs