# Contribute to source code ## Content * [Prerequisite](#Prerequisite) * [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 [Installation instructions](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: ```bash git remote add upstream git@git.afi-sa.fr:afi/opacce.git ``` Merge modifications: ```bash # Download all modification from the master project git fetch upstream master # Merge the modifications in your local project git merge upstream/master # Push the result on the depository git push origin master ``` ## Create a new skin ### Create Go to the skin directory in the root folder and duplicate it ```bash cd skins cp -a ../public/opac/skins/modele mon_skin ``` Go the the profil config page in the opac back office, you should see your skin in the combo. ### Save you skin on GitLab Create a project on [GitLab](https://git.afi-sa.fr) to store the sourcecode. For exemple https://git.afi-sa.fr/mon_compte/mon_skin. Go to my_skin and initialise the depository: ```bash cd mon_skin git init git remote add origin -t master git@git.afi-sa.fr:mon_compte/mon_skin.git git add * git commit -m "Premier commit" git push origin master ``` 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 <div class="right-box"> <div class="right-box-inner"> {IF-TITRE} <div class="header"> <div><h1>{TITRE}</h1></div> <div class="rss">{RSS}</div> </div> {ENDIF} <div class="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 * **accueil.phtml** pour la page d'accueil * **contenu.phtml** pour les autres pages