GitLab now enforces expiry dates on tokens that originally had no set expiration date. Those tokens were given an expiration date of one year later. Please review your personal access tokens, project access tokens, and group access tokens to ensure you are aware of upcoming expirations. Administrators of GitLab can find more information on how to identify and mitigate interruption in our documentation.
*[Create your own copy of the project](#Create-your-own-copy-of-the-project)
*[How to contribute to the source code](#How-to-contribute-to-the source-code)
*[Create a new skin](#Create-a-new-skin)
## Prerequisite
AFI & BIBLIBRE developpment teams use the opensource [forge](https://fr.wikipedia.org/wiki/Forge_%28informatique%29) libre [GitLab](https://www.gitlab.com) and the[SCM](https://fr.wikipedia.org/wiki/Gestion_de_versions)[Git](http://www.git-scm.com). Ce document décrit l'utilisation minimale nécessaire de ces deux outils pour pouvoir contribuer au code des projets maintenus par AFI et Biblibre. Néanmoins nous vous invitons à lire le livre [Pro Git](http://git-scm.com/book/fr).
Source code are hosted on https://git.afi-sa.fr. Public projects are accessible here https://git.afi-sa.fr/public.
## Create your own copy of the project
### Create a gitlab account
From the [Sign Up](http://git.afi-sa.fr/users/sign_up) page, you can create your account. You will receive a confirmation email.
### Clone the project
Once connected, from the [OPACCE project page](http://git.afi-sa.fr/afi/opacce), clic on the **Fork repository** button. You can also clone the project [here](http://git.afi-sa.fr/afi/opacce/fork).
This will create your own public copy of the project accessible through http://git.afi-sa.fr/my-account/opacce.
The SSH access is given from your project home page. for example git@git.afi-sa.fr:my_account/opacce.git
### Installing SSH access
In order to upload modifications on the gitlab you need SSH access. On [Your account page](http://git.afi-sa.fr/profile), in the [SSH Keys](http://git.afi-sa.fr/profile/keys) tab, use the link [Add SSH Key](http://git.afi-sa.fr/profile/keys/new).
#### Create & register your key
If you already have a key on your workstation in **~/.ssh/id_rsa.pub**, copy it.
otherwise, [ generate a key ](http://git.afi-sa.fr/help/ssh), with the following command:
```bash
ssh-keygen -t rsa -C"addresse_email@domaine.ext"
```
to show the content:
```bash
cat ~/.ssh/id_rsa.pub
```
#### configure SSH access
SS access uses **2950** port. Create or modify the **~/.ssh/config** file to add the following lines:
```
Host git.afi-sa.fr
Hostname git.afi-sa.fr
Port 2950
User git
IdentityFile ~/.ssh/id_rsa
```
## How to contribute to the source code
### Install your own copy of the project
The install process is described [in](INSTALL_en.md), unlike described in the [Downloading source code](INSTALL.en.md#Downloading-source-code) section, you should use your own depository:
```bash
cd /var/www
git clone git@git.afi-sa.fr:mon_compte/opacce.git
```
### Update files and push them to gitlab
Once your done with your udpates, the file upload is done in two steps.
1. Commit your modifications locally
```bash
git commit -a-m"Commentaires des modifications"
```
2. Push your master branch to gitlab (origin):
```bash
git push origin master
```
For more details please check [Pro Git](http://git-scm.com/book/fr)
### Propose patches to the release team
On your private GitLab page, **Merge Requests** tab, clic on the link **+ New Merge Request** and fill the form to describe your patch.
### retrieve the last official release
Declate the official version depository (upstream) in your local project:
Now, new files should be acessible from https://git.afi-sa.fr/mon_compte/mon_skin/files
### Folder description
***css/** contains the global.css file where to work. Other files are deprecated.
***images/** icons **images/support/** for doc types. Files must be named: **support_id_.png**, for exemple **support_1.png** for books.
***templates/** Box template on the home page. Files must be named with **_**, the liste will appear in the combo **Box style**. Every template can include tags **{TITRE}**, **{RSS}**, **{CONTENU}**. Pour avoir un rendu conditionnel, le fichier peut inclure les conditions **{IF-TITRE}**, **{IF-RSS}**, **{IF-CONTENU}** suivi de la balise **{ENDIF}**
```html
<divclass="right-box">
<divclass="right-box-inner">
{IF-TITRE}
<divclass="header">
<div><h1>{TITRE}</h1></div>
<divclass="rss">{RSS}</div>
</div>
{ENDIF}
<divclass="content">
{CONTENU}
</div>
</div>
</div>
```
All files can be renamed in **application/modules/opac/views/scripts** . main files are:
***footer.phtml** pour le pied de page
***banniere.phtml** pour l'en-tête
***skin_head.phtml** pour rajouter des éléments dans la balise **head** du site