Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Configure SMTP server to send emails through Koha

Now, it's easy to configure an SMTP-based email account for Koha and send emails for various occasions. Koha provides a GUI for SMTP server configuration. Forget about cumbersome email server configuration using Exim and Postfix. Here are the steps to configure the SMTP server using Gmail. Gmail is accessible for most of the users. Other SMTP-based email users can directly go to Step 2 for configuration. The process involves two steps; creating an app password for a Google account and adding the server details to the Koha ILS.

Step 1. Create a Google app password

An App Password permits a non-Google app to access Google's SMTP server. App Passwords can only be used with accounts that have 2-step verification turned on. Google recommends using "Sign in with Google" whenever possible, a more secure way to connect apps. Here, we must create an app password for GMail to work with Koha ILS. Create a dedicated Gmail account or GMail-based email service for Koha. Don't use an existing email for other purposes when SMTP is configured; the inbox will be filled with bounced emails. 

1. Visit the Google Account Security settings page and turn on 2-step verification. Here is the link to your Google Account Security Settings, https://myaccount.google.com/u/2/security.


2. Scroll to the bottom of the page and find the app password section. Click on App passwords. Give the app name; for example, Mail. Click on the Create button.

3. Copy the app password and save it in a place for future reference.

Step 2. SMTP configuration

Open Administration > Additional parameters > SMTP servers > New SMTP Server.
Add the details.
Name: Give server name, e.g. MGU Mail
Host: Enter the server's hostname. Here, the Gmail SMTP hostname is smtp.gmail.com
Port: Enter the port number of Gmail SMTP, 587. 
Timeout (seconds): Enter the number of seconds after which an unsent email will result in an error
SSL: Choose the security protocol. STARTTLS works with Gmail.
Username: Enter the Gmail ID. 
Password: Enter the Google App Password.
Debug mode: Select debug mode to send additional output to the logs.
Default server: Select it if all libraries use the default server.

Click the ‘Submit’ button to save the configuration.

Step 3. Enable email messaging in Koha

1. Apply the following command in a Terminal to enable email services from Koha ILS.

sudo koha-email-enable library

Other configurations to prepare Koha to send email messages.

1. Enable Enhanced Messaging preferences.

Koha Administration > Global System Preferences > Patrons > Enhancedmessagingpreferences > Allow

2. Visit each patron category at Administration > Patron categories and change the configuration, Overdue notice required (Yes).

3. Overdue Notice/Status triggers

Koha >  Tools > Overdue Notice/status triggers

Symposium 2024

Le symposium Koha s’est tenu du lundi 17 juin après-midi au mercredi 19 juin à la Maison méditerranéenne des sciences de l’homme (MMSH, AMU/CNRS) à Aix-en-Provence. Merci aux équipes de la MMSH et de l’AMU pour leur accueil chaleureux et énergique. Venir à la MMSH Lundi 17 juin 14h00-14h30 : Accueil 14h30-14h45 : Ouverture (Cyril […]

L’article Symposium 2024 est apparu en premier sur Association KohaLa.

Email sending limits in Gmail: Reasons to hire a transactional email service

Many libraries started to use SMTP-based email services in Koha. Koha provides SMTP server configuration from Administration > SMTP servers > New SMTP server. Such libraries use Gmail free account as the email service provider. Gmail allow you to send 100 emails per day. Users can't send new messages for up to 24 hours if the number of messages exceeds the limit. Google says, "If a user exceeds their sending limits, their account might be suspended". Another drawback of using an ordinary Gmail account is that libraries can't add their domain to the email ID. Sending emails from an ordinary Gmail account is a non-professional approach.

What's the solution?

Libraries can use a dedicated email service to deliver emails. Hiring an SMTP email service to work with Koha is a good idea. Libraries can choose email services from an array of service providers. Such services enable sending, receiving, and tracking emails. Netcore, MailGun, and Mailchimp are examples of transactional email service providers. Libraries can subscribe to the plan based on the number of transactions per day. Email services give the SMTP server settings details to configure with Koha.

Formations 2024

L’association KohaLa organise en 2024 plusieurs sessions de formations gratuites à Koha pour ses adhérents, uniquement en visioconférence via Zoom. Si vous êtes intéressés par une ou plusieurs sessions du programme ci-dessous, mais pas encore adhérent, ou bien si vous n’avez pas encore renouvelé votre adhésion,  il est encore temps de le faire ICI ! […]

L’article Formations 2024 est apparu en premier sur Association KohaLa.

GT Périodiques

Pour donner suite à l’atelier sur le module Périodiques Koha lors du Symposium 2022 et aux réflexions du Hackfest de Marseille la même année, l’association Kohala a mis en place un groupe de travail « Périodiques ». Module peu ‘glamour’ (du fait même du traitement des périodiques qui apparaît souvent comme complexe), le souhait est de faciliter […]

L’article GT Périodiques est apparu en premier sur Association KohaLa.

Search for data inconsistencies

 


It's a script which searches for data inconsistencies.  The result shows the following inconsistencies in data;

items without a home or holding library
items without item type or with invalid item type
bibliographic records without item type or with invalid item type
bibliographic records with invalid MARCXML
bibliographic records without biblionumber or biblioitemnumber in MARCXML
bibliographic records without title
invalid values in fields where the framework limits to an authorized value category
authority records without authority type or with invalid authority type
patrons who are too old or too young for their category

The above-mentioned inconsistencies create problems in circulation and cataloguing searches.

Apply the following commands individually to get the information on data inconsistencies.

Load environmental variables

sudo su
export PERL5LIB="/usr/share/koha/lib"
export KOHA_CONF="/etc/koha/sites/library/koha-conf.xml"

Enter into the folder where the data inconsistencies script is located.

cd /usr/share/koha/bin/maintenance

Apply the command to run the script.

./search_for_data_inconsistencies.pl

Reference 

Journée Koha 2024

L’après-midi d’étude s’est tenue le mardi 30 janvier 2024 en visio-conférence. Vous avez assisté à cet événement ? Vous avez des suggestions à apporter ? Donner votre avis ! Voici le programme de cette après-midi.Vous 14h00-14h10 – Accueil 14h10-15h10 – Retours Hackathon & GT Groupe Koha / ABES – Vidéo Groupe transition bibliographique – Vidéo Groupe […]

L’article Journée Koha 2024 est apparu en premier sur Association KohaLa.

Hackathon 2024

Le Hackathon 2024 organisé par l’association KohaLa a eu lieu en visioconférence, les 22 et 23 janvier 2024, de 9h30 à 16h30, et a permis de travailler ensemble sur l’amélioration de Koha et notamment avancer sur les questions traitées par les groupes techniques, à savoir : la traduction la transition bibliographique (https://koha-fr.org/gt-transition-bibliographique/) les échanges entre […]

L’article Hackathon 2024 est apparu en premier sur Association KohaLa.

Patron searches give 500 error

Problem statement: The following error message when searching for patron names.

Something went wrong when loading the table.
500: Internal Server Error. 
Month out of range.
Month out of range.
Month out of range.
Month out of range
.

Reason: The date_renewed column has some proper dates, some NULLs and some 0000-00-00.

Solution: Uupdate borrowers set date_renewed = NULL where date_renewed = '0000-00-00'. Enter into the MariaDB and apply the following commands,

sudo mysql -uroot -p
use koha_library;
UPDATE borrowers
SET date_renewed = NULL;

Idea courtesyMahesh Palamuttath

Reference


Prepare Google Drive for Koha backup

Everybody is familiar with using Google Drive. Google Drive is the cloud storage service of Google Inc. Currently, 15 GB of free storage is available with a Google account. Koha users can make use of Google Drive storage to keep database backups. GNOME desktop facilitates synchronising online accounts like Google, Nextcloud, Facebook, Microsoft, Flickr, etc. 

Here are the steps to prepare the Koha system to store the database in Google Drive.

Installation of GNOME desktop

If the system running on desktops other than GNOME, install it. I prefer the GNOME Flashback edition for a minimal and lightweight experience. GNOME Flashback desktop can be installed on the default Ubuntu and Debian desktop. Here is the command to install GNOME Flashback on all Ubuntu variants;

sudo apt update
sudo apt install gnome-session-flashback

Command to install GNOME Flashback on Debian.

sudo apt update
sudo apt install gnome-flashback

Sign out from the current session and change the desktop to GNOME Flashback.


Prepare the system to sync Google Drive

Open the settings, Applications > System Tools > Preferences > Settings 

Select the Online accounts.

Select Google and sign in.

After the successful sign-in, the Google account is visible in the File Manager. Files and folders load into the File Manager when you click on it.




Enter inside the My Drive folder and see the files and folders. Create a folder for Koha's backup. Enter inside the folder for Koha backup and copy the folder's location. It's necessary to direct the database backup to the backup destination.

Copy the folder location and keep it in a file for later use.

The location looks like this, 
google-drive://mygmailaccount@gmail.com/0AHFZ9iUzgfcmUk9PVA/14MJDZzaMNVnosHsOj7r-Xi6bUOHn344e

Scheduling of the backup process

Here is a shell script to schedule the backup with a time stamp. It keeps three days of backup and deletes previous files to save space. Follow the instructions to schedule the backup.

Download the shell script

Copy the shell script to the home folder. Open the shell script and make changes to the Koha database, username, password and location of the backup. The timestamp of the database also appears on the backup file name. Give the number of days the backup keeps.

Move the shell script to /usr/local/bin

sudo cp backup.sh /usr/local/bin

Give the necessary permission to the shell script,

cd /usr/local/bin
sudo chmod +x backup.sh

Create the cronjob entry of the backup. Apply the following command on the terminal.

export EDITOR=mousepad
crontab -e

Copy the below lines to the bottom part of the crontab file.

#Koha backup
10 20 * * * /usr/local/bin/backup.sh

Change the timing of the backup. Here, backup takes at 8:10 PM. Watch the backed-up files appear in the folder.

pCloud for Koha backup


pCloud is a cloud storage service that offers a secure and convenient way to store, share, and access your files from anywhere. It works like Dropbox cloud storage. Dropbox gives only 2 GB of free storage only. pCloud provides a variety of pricing plans, starting with a free plan that gives you 10 GB of storage. Koha users can make use pCloud for backup storage. Schedule the backup and point to the PCloud storage is very convenient.

Installation of PCloud drive in Debian/Ubuntu.

Here are the steps on how to install PCloud software in Ubuntu:

1. Go to the pCloud website, and create an account.

2. Download the pCloud AppImage file for Linux.

3. Save the file to your computer.

4. Open a terminal window and navigate to the directory where you saved the file.

5. Run the following command to give the file executable permissions:

sudo chmod +x pcloud

Either double-click on the PCloud icon or run the following command to start the pCloud AppImage:

./pcloud

6. The pCloud login window will appear. Enter your pCloud email address and password, and click Log in.

A folder named pCloudDrive will be created in your home directory. This is your pCloud virtual drive. You can now start storing and accessing your files in pCloud.

To schedule Koha backup to pCloud please visit the following link,

http://kohageek.blogspot.com/2021/08/backup-with-auto-delete-old-files.html

The blog post gives the details of schedule backup in Dropbox cloud storage. The same steps can follow to schedule Koha backup to pCloud.

Bug 31059 - encryption_key config entry not generated when upgrading: solution

Problem statement

The following line does not add to koha-conf.xml when upgrading. I noticed it happened when we upgraded to the Koha version to 22.11.7 and higher. It results in the upgrade process terminating on the way, and Koha crashes.

 <!-- Encryption key for crypted password or sensitive data -->
 <encryption_key>__ENCRYPTION_KEY__</encryption_key>
 

Solution

Open the following file and check if the line is there; 

sudo mousepad /etc/koha/sites/library/koha-conf.xml

Find the location of the lines from the screenshot. Check the line number.

If the encryption_key line is not there, add the lines into koha-conf.xml
 <!-- Encryption key for crypted password or sensitive data -->
 <encryption_key>__ENCRYPTION_KEY__</encryption_key>

If the line is there, you only need to add the key.
Need to generate and add the key into the line; apply the following command in the terminal,

pwgen 32

Copy the key and paste it into the encryption key line,


<!-- Encryption key for crypted password or sensitive data -->
<encryption_key>Auc5ciexahphie9kairaegh4ohchai3d</encryption_key>

Restart memcached and apache2. 

sudo service apache2 restart
sudo service memcached restart

Reference

Bug 31059 - encryption_key config entry not generated when upgrading

Symposium 2023

  Le symposium Koha s’est tenu du mercredi 28 juin après-midi au vendredi 30 juin à Sciences Po Grenoble – UGA (sur le campus universitaire). Comment venir à Sciences Po Grenoble – UGA ?           Mercredi 28 juin 14h00-14h30 : Accueil 14h30-14h45 : Introduction et présentation de l’association KohaLa (Sonia Bouis, […]

L’article Symposium 2023 est apparu en premier sur Association KohaLa.

Hackfest 2023

BibLibre a organisé du 27 au 31 mars 2023, un Hackfest dans leurs locaux à Marseille, 108 rue Breteuil. Cette semaine s’adressait à tous les utilisateurs de Koha : développeurs, administrateurs, bibliothécaires, informaticiens, qui souhaitaient contribuer à améliorer Koha en : testant de nouvelles fonctionnalités ou de corrections de bugs, qui ont été intégrées récemment […]

L’article Hackfest 2023 est apparu en premier sur Association KohaLa.

How to make instant reports on the Koha home page in an exquisite menu.

        This article shows how to prepare the reports we need on the koha home page, such as koha circulation reports, catalog reports, account reports, library membership reports and etc as instant reports, with an exquisite menu.

Go to: Koha Home/Tools/HTML customizations and Click  New Entry, as shown in the image below.


Display Location Select for Librarian Interface and fill in all details.


Click the Source Code.


Copy and paste the below source code and change your library reports link, finally change all report links and save the source code.

<div class="dropdown"><button class=" btn btn-danger  btn-sm btn-block" p="" style="font-size: 16px;" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><strong> 📚 Catalog Report&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong><b class="caret"></b></button>
<ol class="dropdown-menu" p="" style="font-size: 14px;">
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=1&amp;phase=Run%20this%20report">Accession Register</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=12&amp;phase=Run%20this%20report">Total Number of Books</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=33&amp;phase=Run%20this%20report">Department Wise Number of Books</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=34&amp;phase=Run%20this%20report">Collection Wise Number of Books</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=15&amp;phase=Run%20this%20report">Item Type Wise Number of Books</a></li>
</ol>
</div>
<div class="dropdown"><button class=" btn btn-danger btn-sm btn-block" p="" style="font-size: 16px;" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><strong>💻Circulation Report &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong><b class="caret"></b></button>
<ol class="dropdown-menu" p="" style="font-size: 14px;">
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=13&amp;phase=Run%20this%20report">Check Out List of Books (Date wise)</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=7&amp;phase=Run%20this%20report">Check in List of Books (Date wise)</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=30&amp;phase=Run%20this%20report">Item Type Wise (Check Out Books)</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=24&amp;phase=Run%20this%20report">Circulation Daily Transaction</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=44&amp;phase=Run%20this%20report">Date wise Circulation Activity</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=20&amp;phase=Run%20this%20report">Month Wise Circulation Report</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=9&amp;phase=Run%20this%20report">Overdues Book List</a></li>
</ol>
</div>
<div class="dropdown"><button class=" btn btn-danger btn-sm btn-block" p="" style="font-size: 16px;" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><strong>💰 Accounts Report &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </strong><b class="caret"></b></button>
<ol class="dropdown-menu" p="" style="font-size: 14px;">
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=5&amp;phase=Run%20this%20report">Paid Fine for Students</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=14&amp;phase=Run%20this%20report">Writeoff Fine for Students</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=16&amp;phase=Run%20this%20report">Accounting Type Wise Collection</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=17&amp;phase=Run%20this%20report">Students Fine Arrears Details</a></li>
</ol>
</div>
<div class="dropdown"><button class=" btn btn-danger btn-sm btn-block" p="" style="font-size: 16px;" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><strong>👩&zwj;🎓 Library Membership Report &nbsp; &nbsp; </strong><b class="caret"></b></button>
<ol class="dropdown-menu" p="" style="font-size: 14px;">
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=11&amp;phase=Run%20this%20report">Membership Staff &amp; Students</a></li>
<li><a href="/cgi-bin/koha/reports/guided_reports.pl?phase=Use%20saved">More Library Reports</a></li>
</ol>
</div>
<div><br /><br /><br /><br /><br /><br /><br /><br /></div>

Go to Koha Home Page and your exquisite instant koha reports menu is ready.


Reference: https://getbootstrap.com/docs/4.0/components/buttons/#sizes 

Date wise circulation transaction report (Koha SQL Reports report in per day circulation activity)

 Date Wise Circulation  Transaction Counts.

         This report is a track the date wise count to total number of  circulation books per day issue, renewal, return and payment breakdown etc.

Crete the New SQL Report.
Copy and Paste following lines in the SQL report. 
Save and close.

SELECT 
date(datetime) AS Date,
      SUM( IF(type = 'issue', 1, 0 )) AS Issues,
      SUM( IF(type = 'renew', 1, 0 )) AS Renewals,
      SUM( IF(type = 'return', 1, 0 )) AS Returns,
      SUM( IF(type = 'payment', 1, 0 )) AS Payment,
      COUNT(statistics.type) AS 'Total Transactions'
FROM  statistics
WHERE DATE(datetime) BETWEEN <<From Date |date>> AND <<To Date |date>>
GROUP BY date

Run Report



Formations 2023

L’association KohaLa organise en 2023 plusieurs sessions de formations gratuites à Koha pour ses adhérents : En présentiel, à l’ENSSIB – Lyon (Villeurbane), En visioconférence via Zoom. Si vous êtes intéressés par une ou plusieurs sessions du programme ci-dessous, mais pas encore adhérent, ou bien si vous n’avez pas encore renouvelé votre adhésion,  il est […]

L’article Formations 2023 est apparu en premier sur Association KohaLa.

Hackathon 2023

Le Hackathon organisé par l’association kohaLa s’est tenu en visioconférence, du 23 au 25 janvier 2023. Une dizaine de participants ont travaillé ensemble sur l’amélioration de Koha et ont fait avancer la traduction. La traduction La version 21.11 de Koha a été traduite à près de 98%. Un effort a été porté au manuel 22.05 […]

L’article Hackathon 2023 est apparu en premier sur Association KohaLa.

Journée Koha 2023

La journée d’étude s’est tenue à la BULAC, le jeudi 26 janvier 2023. Elle a été diffusée en streaming sur la chaîne YouTube BULAC. Voici le programme de cette journée. 10h00-10h30 – Accueil café & échanges [Foyer de l’Auditorium] 10h30-12h00 – Sessions en parallèle : Import automatique des lecteurs dans Koha : Retours d’expériences [Auditorium] […]

L’article Journée Koha 2023 est apparu en premier sur Association KohaLa.

Blood group list using patron attribute types

Patron attributes help define custom fields (e.g. blood group, Course name (BSc, BA) etc.) with patron details.

1. Enable Patron Attributes from Global System Preferences

Administration  System preferences > Patrons > ExtendedPatronAttributes > Enable

2. Create an Authorized Value for the blood group

Administration > Authorized values > New category


Give the name for the Blood Group category and Save it.

Add blood group names to the Authorized values.

Add the blood group names one by one and save.

3. Add Patron Attributes
Add a new patron attribute type for the blood group.
Administration > Patron attribute types > New Patron attribute type


Enter details of the new Patron Attribute type



Save the Patron Attribute Type for Blood Group. 

Add a new patron and see the blood group list.

Patrons  > Add patron

Library clearance/Discharge certificate

A library Clearance/Discharge certificate certifies that the user has no holds, no active checkouts, and no outstanding debt. Here are the steps to generate a clearance certificate;

1. Enable useDischarge from Koha Administration > Global System Preferences. Search and find the useDischarge settings. Turn it into Allow.

2. Customize the Discharge notice at Tools > Notices and slips. Search and find the Discharge notice. The content of the notice is blank. Visit the Notice Template site and copy the content. Edit and save the notice.


3. Open the Patron account to generate Discharge. Find the Discharge button at the end of the Patron account.


4. Click on the Generate discharge button.

The discharge certificate in PDF format will save on the computer.

National workshop on Koha

Venue: BCM College, Kottayam, Kerala State-686 001 
Online registration Link: https://rzp.io/l/dakf-bcm 
Target audience: Library Science students and professionals. 
Intake Capacity: 30 Registration 

Fees: Rs. 1100 (Includes Lunch and Tea) 

Accommodation: The conference fee does not include your accommodation. Organisers will help you to find accommodation in Kottayam town. 

Resource Persons for the Workshop 
1. Dr Vimal Kumar V, Reference Assistant, Mahatma Gandhi University, Kottayam, Kerala State, India.
2. Subeesh Gopinathan, Librarian, St. Mary's Women's College for Teacher Education, Thiruvalla.
3. Mahesh Palamuttath, Librarian, East Campus, Sacred Heart College, Kochi. 

Organising Secretary: Jincy Philip ( Sr. Gracena ), Librarian (UGC), BCM College, Kottayam. 
Contact Person: Dr. Vimal Kumar V., Secretary, DAKF, Kottayam. Mobile: 9846496323

Backup and Restore of old Dspace to New Dspace versions.

1. Below are three essential backups to take in dspace.

1.dspace.backup (Database backup)

2.assetstore  (All uploaded files for e.g, pdf, image,etc..)

3 . log  (Configuration files) 

Step - 1

2. Take a backup of Dspace database.

Assume that the old version of Dspace is running. Take a PostgreSQL database backup. 

Open a Terminal and apply following commands, 

sudo su - postgres
pg_dump dspace > dspace.backup

The above command take a backup of Dspace database and store in /var/lib/postgresql/ 

Copy the database backup file to a safe place.

Step - 2

3. Take a backup assetstore and log folders.

Here we are going to backup essential things. All uploaded files stored in assetstore folder.

Save the assetstore and log files to External hard disc. (below red color command your external hard disc storage location)

cd /media/your pc name/External hard disc name
sudo zip -r assetstore.zip /dspace/assetstore
sudo zip -r log.zip /dspace/log

Step - 3

4. Restoration of backup to the latest version of Dspace

  • Install latest Dspace. 
  • Copy the assetstore, log folders, and database.backup to home folder of the system.
  • Extract (unzip) the assetstore and log folders. 
  • Follow the below steps to restore old Dspace backup.

Stop Tomcat server

sudo service tomcat stop

Remove the new dspace assetstore and log folders.

sudo rm -rf /dspace/assetstore
sudo rm -rf /dspace/log/

Move the old dspace assetstore and log folders.

Move your old assetstore and log folders to /dspace folder. (Copy & paste the assetstore and log folder in Home folder)

sudo mv /home/assetstore /dspace
sudo mv /home/log /dspace

Restoration of database

sudo systemctl stop postgresql
sudo systemctl start postgresql

Drop the database and create a new one. 

Apply following commands one by one,
sudo -u postgres psql
DROP DATABASE dspace;
CREATE DATABASE dspace;
\quit

Restore the data base backup

Make sure that the dspace.backup file in home folder. 
Apply the following command one by one to restore the database backup
sudo su postgres
psql -f dspace.backup dspace
exit

Install pgcrypto postgres extension

Execute the following commands one by one,
sudo su postgres
psql --username=postgres dspace -c "CREATE EXTENSION pgcrypto;"
exit

Apply following commands

(Dspace database version check)
sudo /dspace/bin/dspace database info
(Upgrade old database to new database migration)
sudo /dspace/bin/dspace database migrate

(Index Created)

sudo /dspace/bin/dspace index-discovery -b

(All types of files configuration process, for E.g pdf, image, video, audio and etc.. this command long process)

sudo /dspace/bin/dspace filter-media
(Index configuration)
sudo /dspace/bin/dspace index-discovery

 (Index update)

sudo /dspace/bin/dspace index-discovery -o

Restart Tomcat

sudo service tomcat start

Open DSpace in a browser
http://127.0.1.1:8080/jspui

http://127.0.1.1:8080/xmlui


Information courtesy
http://dspacegeek.blogspot.com/2016/06/restore-old-versions-of-dspace-to.html



Liste des notices avec des exemplaires pilonnés

SELECT CONCAT('<a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'">Notice</a>') AS 'Notice', b.title AS 'Titre', b.author AS 'Auteur', MIN(i.withdrawn_on) AS 'Pilon depuis', COUNT(i.itemnumber) AS 'Nb exemplaires' FROM items i JOIN biblio b ON(i.biblionumber = b.biblionumber) WHERE b.biblionumber IN ( SELECT biblionumber FROM items GROUP BY biblionumber HAVING COUNT(itemnumber) > 0 AND COUNT(IF(withdrawn = 1,1,NULL)) = COUNT(itemnumber) ) AND i.homebranch LIKE <<Site|branches:all>> AND […]

L’article Liste des notices avec des exemplaires pilonnés est apparu en premier sur Association KohaLa.

How to In out Management Auto Backup in Dropbox.

In out Management Auto Backup in Dropbox

In out Management Auto Backup in Dropbox.

Install Dropbox in your koha server 
Create an account in Dropbox 
Open Applications > System Tools > Terminal

Apply the following command,

sudo su
crontab -e 

Use down arrow button and move the cursor to bottom part of the crontab file.
Copy and Paste following command in crontab bottom part.

Backup time 9.00 AM

*/60 * * * * mysqldump -ulibinout -plibinout123 libinout | xz > /home/Dropbox/libinout-$(date +%d-%m-%Y-%H.%M).sql.xz

Apply Ctrl + X, and Y button click Enter to save and close the file.

Wait 15 minute after check in dropbox folder, your backup successfully stored.

In Out Management Problem Solving | Blank Screen After Installation | Logout After 20 Minute Issue

Blank Screen After Installation

Problem :

After installation using any method, When user run this URL (http://localhost/inout/login.php) users are getting blank page in Mozilla Firefox Browser, and Http 500 error in Google Chrome.

Solution:

The problem is with php. It works on php 5.6 so you have to switch php 7 to php 5.6

Execute the following command in terminal.

sudo su

[Enter Password]

sudo a2dismod php8.0

*In above command php8.0 is your active php version. it can be 8.1, 8.2 or 8.3 please make sure this version by entering command php -v.

sudo a2enmod php7.4

sudo service apache2 restart

Logout After 20 Minute Issue

You have to change default session time in php.ini file.
To Open the file.
sudo mousepad /etc/php/7.4/apache2/php.ini
A text editor will open. 
To find variable session.gc_maxlifetime Press Ctrl + F and paste this variable.
It'll find the session.gc_maxlifetime.In front of that the default value is 1440 second that is 24 Minutes.

Change this value to 14400 that is 4 hours.

After changing values Press Ctrl + S It'll save the file. Then exit by Pressing Ctrl + F4.

Hope this will helpful for you.

Thank you.

How to install Koha In Out Management System (E-Gate Entry System koha p...



Download In Out management: https://github.com/omkar2403/inout/releases

Old Inout Management Step by step Installation Notes Click here

Latest In Out management Installation Process.

INSTALLATION OF PHP 7.4

Open terminal and execute commands.

sudo apt-get update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt -y install php7.4
php -v

Setup the OPAC folder: 

First download the package of the software which contains two mainly files and copy it into Home directory.

Now we have to copy the inout directory into OPAC htdocs directory. 

Open the terminal into Home directory and apply the following commands.

sudo su
sudo mv /home/inout /usr/share/koha/opac/htdocs
cd /usr/share/koha/opac/htdocs
sudo chmod 777 -R inout

Setup the database:
Open the terminal and apply the following commands.

sudo su
mysql -uroot -p
[Enter MySQL Root password]

create database lib;

grant all privileges on lib.* to 'root'@'localhost'identified by'mysqlroot';

flush privileges;

Quit;

Where ‘root’ is the username and ‘mysqlroot’ is the password.

Now restore the sample database which is present in the ‘inout’ directory by applying
following command in terminal (Open Terminal in ‘inout’ directory).

sudo su

mysql -uroot -p lib < lib.sql

[Enter MySQL Root password]

Replace your SQL password and koha database name in the file dbconn.php located in ‘inout/functions/dbconn.php’ directory at the line number 3 & 5.

sudo mousepad /usr/share/koha/opac/htdocs/inout/functions/dbconn.php

Restart Apache

sudo systemctl reload apache2 && sudo systemctl restart apache2

The system is ready now.
You can access it at address given below:

How to use it?
Logins:
There are 3 users for In Out System.

1. Operator (Controls Display Screen / main screen)
username : user
password : 123456

2. Admin of library (Controls Single library / location admin panel and reports)
username : admin
password : library

3. Master ( Controls all the library / location admin panel and reports)
username : master
password : superuser

In out Management Problem Solving,  Blank Screen After Installation and Logout After 20 Minute Issue.

How to In out Management Auto Backup in Dropbox.

Information courtesy: Mr. Omkar Kakeru https://omkar2403.github.io/its_me/


How to Install Dspace-6.3 on Ubuntu MATE 22.04 LTS and Install same server in Koha

 

Install Ubuntu MATE

Koha officially supports Ubuntu MATE. Download Ubuntu-MATE-20.04.1-desktop(amd64 bit) from the following link,

Burn the Ubuntu MATE ISO image to a Pen Drive/CD/DVD. Insert the medium, change the boot option of the computer and start the installation process of Ubuntu. Visit the link to familiar with the Ubuntu MATE installation.

Open Terminal on your Ubuntu machine for Dspace installation.

sudo apt-get update
sudo apt-get upgrade

Install Git.

sudo apt-get install git

Check git Version. 

git --version

Add git Key. 

sudo add-apt-repository ppa:git-core/ppa

Upgrade git version. 

sudo apt update; apt install git
Install Java. 
sudo apt-get install openjdk-8-jdk

Install Maven. 

sudo apt-get install maven
Install ant. 
sudo apt-get install ant

 Install Postgresql.

Add Postgresql Source file location.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Add Postgresql Key

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

Install Postgresql -9.6 Version

sudo apt-get install postgresql-9.6
sudo su postgres

Create Postgres Username and Password.

createuser --username=postgres --no-superuser --pwprompt dspace
Create Database. 
createdb --username=postgres --owner=dspace --encoding=UNICODE -T template0 dspace
Crypto.
psql --username=postgres dspace -c "CREATE EXTENSION pgcrypto;"
exit

Open the following postgresql, pg_hba.conf file.

sudo gedit /etc/postgresql/9.6/main/pg_hba.conf

Add this below line to the configuration file at the end.

local 	all 		dspace 					md5

Restart PostgreSQL

sudo /etc/init.d/postgresql restart
Create a DSpace User.
sudo useradd -m dspace
sudo passwd dspace
sudo mkdir /dspace
sudo chown dspace /dspace
sudo mkdir /build
sudo chmod -R 777 /build
cd /build

Download the Dspace-6.3 version folder.

wget https://github.com/DSpace/DSpace/releases/download/dspace-6.3/dspace-6.3-src-release.tar.gz

Unzip the download Dspace-6.3 version folder.

tar -zxf dspace-6.3-src-release.tar.gz 

Build the download Dapace-6.3 version folder.

sudo gedit /build/dspace-6.3-src-release/dspace-api/pom.xml

[remove 1.4 plugin]  line number 103 to 105

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<executions><execution>
<phase>validate</phase>
<goals>
<goal>create</goal >
</goals>
</execution
</executions>
</plugin>

Installation of DSpace-6.3 version.

cd /build/dspace-6.3-src-release
sudo mvn -U package
cd dspace/target/dspace-installer

 Install Apache tomcat-8.5.82

sudo ant fresh_install
cd /opt

Tomcat Download file path Location.

sudo wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.83/bin/apache-tomcat-8.5.83.tar.gz

Unzip the download Tomcat folder.

sudo tar xvzf apache-tomcat-8.5.83.tar.gz

Rename folder apache-tomcat-8.5.82” to “tomcat

Move tomcat folder.

sudo mv apache-tomcat-8.5.83 tomcat

Tomcat reading permission. 

sudo rm apache-tomcat-8.5.83.tar.gz

Open the following file. 

sudo gedit /etc/profile

Add following lines at the bottom of the file. 

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export CATALINA_HOME=/opt/tomcat

Dspace and Tomcat file configuration Permission.

sudo cp -r /dspace/webapps/* /opt/tomcat/webapps

Edit the Tomcat init.d  file and Add the Below Scripts. 

sudo gedit /etc/init.d/tomcat

[add this script]

#!/bin/bash
### BEGIN INIT INFO
# Provides: tomcat8
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop : 0 1 6
# Short-Description: Start/Stop Tomcat server
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

start() {
sh /opt/tomcat/bin/startup.sh
}

stop() {
sh /opt/tomcat/bin/shutdown.sh
}

case $1 in
start|stop) $1;;
restart) stop; start;;
*) echo "Run as $0 <start|stop|restart>"; exit 1;;
esac

Tomcat permission.

sudo chmod +x /etc/init.d/tomcat
sudo update-rc.d tomcat defaults

Now you can Restart Tomcat.

sudo service tomcat start

Create the Dspace Administrator 

sudo /dspace/bin/dspace create-administrator

It will ask to enter the email address for user login.

Enter Your email Id : dspace@localhost

first & last name : dspace

password & confirm password : dspace

Continue: Yes

Go to any browser copy and paste the link.

http://localhost:8080/jspui



http://localhost:8080/xmlui



I hope this tutorial will help you to install the DSpace in Ubuntu MATE22.4 LTS.

Thank you so much.

Install same server in Koha Latest version 
Visit: https://libpowertech.blogspot.com/2021/03/how-to-install-koha-on-ubuntu-mate-2004.html


Blank screen phpmyadmin page after install or (error apache2.service" and "journalctl -xe")

 If you have any error PHP, use the following method

Blank screen phpmyadmin page after install

After installation phpmyadmin using any method, When user run this URL (http://localhost/phpmyadmin) user are getting blank page in Mozilla Firefox Browser, and Http 500 error in Google Chrome.

It can be 7.4 or below version please make sure this version by entering command php -v.

Execute the following command in terminal.

sudo php - v PHP file location (Version Check) usr/share 

sudo a2dismod php7.4

In above command php7.4 is dis-active in php version. 

sudo a2enmod php8.1

In above command php8.1 is active in php version. 

Restart apache web server.

sudo systemctl restart apache2

Configure Apache web Server file php8.1 version

sudo mousepad /etc/apache2/conf-enabled/phpmyadmin.conf

Below contents to the file: verified your php version.

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
Options SymLinksIfOwnerMatch
DirectoryIndex index.php

<IfModule mod_
php8.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>

php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>
<IfModule mod_php.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>

php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
php_admin_value mbstring.func_overload 0
</IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
<IfModule mod_authz_core.c>
<IfModule mod_authn_file.c>
AuthType Basic
AuthName "phpMyAdmin Setup"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
</IfModule>
Require valid-user
</IfModule>
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
Require all denied
</Directory>

Restart apache web server.

sudo systemctl restart apache2


MSQL Password Error (Access Denied for User 'root'@'localhost' (using password: YES) - No Privileges?)

 

If you have any error mysql password, use the following method

Follow the Mysql update change

PASSWORD UPDATE (Mysql)

The "unix_socket" has been called by mysql authentication process (maybe related to a partial migration of database to mariadb, now removed). To get all stuff back working go su:
sudo su

then follow:
/etc/init.d/mysql stopmysqld_safe --skip-grant-tables &mysql -uroot

This will completely stop mysql, bypass user authentication (no password needed) and connect to mysql with user "root".
Now, in mysql console, go using mysql administrative db:
Use mysql;
To reset root password to mynewpassword (change it at your wish), just to be sure of it:
update user set password=PASSWORD("mynewpassword") where User='root';
And this one will overwrite authentication method, remove the unix_socket request (and everything else), restoring a normal and working password method:
update user set plugin="mysql_native_password";
Exit mysql console:
quit;

Stop and start everything related to mysql:
/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start
Don't forget to exit the su mode.
Now mySQL server is up and running. You can login it with root:
mysql -u root -p
Enter your Password usage is operative.

That's it.

GT Transition bibliographique

Ce groupe de travail a été créé pour contribuer à l’adaptation de Koha aux évolutions liées à la transition bibliographique, en prenant en compte les spécificités françaises. Un premier travail important a été fait depuis 2019 pour adapter Koha aux changements du format Unimarc tel que défini par l’IFLA. Cela implique de mettre à jour […]

L’article GT Transition bibliographique est apparu en premier sur Association KohaLa.

GT Koha-ABES

Ce groupe de travail est né de la constatation qu’un quart des établissements du réseau SUDOC utilisaient Koha et qu’il y avait des enjeux spécifiques liés aux échanges d’information entre Koha et les outils de l’ABES. Le GT effectue d’une part une analyse des outils de l’ABES (applications, protocoles d’échange, webservices..) et en relation avec […]

L’article GT Koha-ABES est apparu en premier sur Association KohaLa.

How to set Instant Reports Options in the Koha Main Page

Step - 1

Go to: Koha Home/Tools/News

Click the New Entry and Select Display location in Librarian interface.
  1. (DD/MM/YYYY)
  2. (DD/MM/YYYY)
    News will still be accessible by direct URL if expired.














Step - 2

Click the Source code


Copy and paste the following HTML Code.

Replace your koha report link in the red colored area. 

All Links in replace and finally save the source code.

<div style="text-align: justify;"></div>
<div style="text-align: justify;">
<table border="0" cellspacing="1" cellpadding="1" style="border-collapse: collapse; width: 280px; height: 90px; margin-left: auto; margin-right: auto;">
<tbody>
<tr style="height: 18px;">
<td style="height: 10px; width: 278px; text-align: center;" colspan="2">
<h3 style="text-align: center;">?? Catalog Report</h3>
</td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 10px; text-align: center;"><strong>1</strong></td>
<td style="height: 18px; width: 265px;"><strong><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=1&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Accession Register</span></a></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 10px; text-align: center;"><strong>2</strong></td>
<td style="height: 18px; width: 265px;"><strong><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=12&amp;phase=Run%20this%20report"><span style="color: green;">Total Number of Books</span></a><br /></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 10px; text-align: center;"><strong>3</strong></td>
<td style="height: 18px; width: 265px;"><strong><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=33&amp;phase=Run%20this%20report"><span style="color: green;">Department Wise Number of Books</span></a><br /></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 10px; text-align: center;"><strong>4</strong></td>
<td style="height: 18px; width: 265px;"><strong><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=34&amp;phase=Run%20this%20report"><span style="color: green;">Collection Wise Number of Books</span></a><br /></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 10px; text-align: center;"><strong>5</strong></td>
<td style="height: 18px; width: 265px;"><strong><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=15&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Item Type Wise Number of Books</span></a><br /></strong></td>
</tr>
</tbody>
</table>
</div>
<div style="text-align: justify;"><br />
<table border="0" cellspacing="1" cellpadding="1" style="border-collapse: collapse; width: 279px; height: 110px; margin-left: auto; margin-right: auto;">
<tbody>
<tr style="height: 18px;">
<td style="height: 18px; width: 275px; text-align: center;" colspan="2">
<h3>?? Circulation Report</h3>
</td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 9.03125px; text-align: center;"><strong>1</strong></td>
<td style="height: 18px; width: 262.969px;"><strong style="text-align: center;"><a title="Check Out List of Books (Date wise)" href="/cgi-bin/koha/reports/guided_reports.pl?reports=13&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Check Out List of Books (Date wise)</span></a></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 9.03125px; text-align: center;"><strong>2</strong></td>
<td style="height: 18px; width: 262.969px;">
<strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=7&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Check in List of Books (Date&nbsp;
</span></a></strong>
<strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=7&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;"> wise)</span></a></strong>
<strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=7&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;"></span></a></strong>
<strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=7&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;"><br /></span></a></strong></td>
</tr>
<tr>
<td style="width: 9.03125px; text-align: center;"><strong>3</strong></td>
<td style="width: 262.969px;"><strong style="text-align: center;"><span style="color: green;"><strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=30&amp;phase=Run%20this%20report" rel="noopener">Item Type Wise (Check Out Books)</a></strong><br /></span></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 9.03125px; text-align: center;"><strong>4</strong></td>
<td style="height: 18px; width: 262.969px;"><span style="color: #e67e23;">
<strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=9&amp;phase=Run%20this%20report" rel="noopener" style="color: #e67e23;">Overdues Book List</a></strong></span><strong><br /></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 9.03125px; text-align: center;"><strong>5</strong></td>
<td style="height: 18px; width: 262.969px;"><strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=24&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Circulation Daily Transaction</span></a></strong><strong><br /></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 9.03125px; text-align: center;"><strong>6</strong></td>
<td style="height: 18px; width: 262.969px;"><strong style="text-align: center;"><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=20&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Month Wise Circulation Report</span></a></strong><strong><br /></strong></td>
</tr>
</tbody>
</table>
</div>
<div style="text-align: justify;"><br />
<table border="0" cellspacing="1" cellpadding="1" style="border-collapse: collapse; width: 280px; height: 25px; margin-left: auto; margin-right: auto;">
<tbody>
<tr style="height: 18px;">
<td style="height: 18px; width: 276px; text-align: center;" colspan="2">
<h3 style="text-align: center;">?? Accounts Report</h3>
</td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 13.7969px; text-align: center;"><strong>1</strong></td>
<td style="width: 259.203px; height: 18px;"><strong><a href="/cgi-bin/koha/reports/guided_reports.pl?reports=5&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Paid Fine for Students</span></a></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 13.7969px; text-align: center;"><strong>2</strong></td>
<td style="width: 259.203px; height: 18px;"><strong><a title="Writeoff Fine" href="/cgi-bin/koha/reports/guided_reports.pl?reports=14&amp;phase=Run%20this%20report" rel="noopener"><span style="color: red;">Writeoff Fine for Students</span></a></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 13.7969px; text-align: center;"><strong>3</strong></td>
<td style="width: 259.203px; height: 18px;"><strong><a title="A/C Type of Fine" href="/cgi-bin/koha/reports/guided_reports.pl?reports=16&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">A/C Type of Fine<br /></span></a></strong></td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 13.7969px; text-align: center;"><strong>4</strong></td>
<td style="width: 259.203px; height: 18px;"><strong><a title="Fine Details" href="/cgi-bin/koha/reports/guided_reports.pl?reports=17&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Fine Details<br /></span></a></strong></td>
</tr>
</tbody>
</table>
</div>
<div style="text-align: justify;"><br />
<table border="0" cellspacing="1" cellpadding="1" style="border-collapse: collapse; width: 280px; height: 25px; margin-left: auto; margin-right: auto;">
<tbody>
<tr style="height: 18px;">
<td style="height: 18px; width: 276px; text-align: center;" colspan="2">
<h3 style="text-align: center;">??&zwj;??<strong> Library Membership Report</strong></h3>
</td>
</tr>
<tr style="height: 18px;">
<td style="height: 18px; width: 13.7969px; text-align: center;"><strong>1</strong></td>
<td style="width: 259.203px; height: 18px;"><strong> <a title="Membership Staff " href="/cgi-bin/koha/reports/guided_reports.pl?reports=11&amp;phase=Run%20this%20report" rel="noopener"><span style="color: green;">Membership Staff &amp; Students</span></a></strong></td>
</tr>
</tbody>
</table>
</div>
<div style="text-align: justify;"></div>

Step - 3

Go to: Home Page (Successfully Your report displaying)





How to change master password of Koha ?

Koha master login username and password is same as MySQL database (e.g. koha_library), where data stored.

First change the password of koha_library database.

Then put new password in /etc/koha/sites/library/koha-conf.xml

Apply following commands in Applications > Accessories > Terminal

sudo mysql -uroot -p  

[enter the MySQL Root password]

use mysql;

SET PASSWORD FOR 'koha_library'@'localhost' = PASSWORD('mamcet@66');
flush privileges;

quit;

Need to change new password in Koha configuration file.

Open the configuration file using any text editor. Use any text editor, mousepad/leafpad. Install mousepad.

sudo apt-get install mousepad 
sudo mousepad /etc/koha/sites/library/koha-conf.xml 

The file will open. Scroll to bottom part of the file and find the line number 271 for password.

Reference: http://kohageek.blogspot.com/

ByWater Solutions Announces the Open to Everyone Webinar Series

The Koha Staff Experience July 14, 2022

In this 30 minute, The Koha Staff Experience, we will cover the basics of the Koha Staff interface and how staff can intuitively navigate through the models

Registration Link: https://us02web.zoom.us/webinar/register/WN_BN0k0VrSSm6ykhwHLSgRpQ?timezone_id=Asia%2FKolkata

Discover the Koha OPAC on August 9, 2022

In this 30-minute webinar, Discover the Koha OPAC, we will cover how patrons can intuitively navigate through the Koha OPAC, access their account information, and browse all materials!

Registration Link: https://us02web.zoom.us/webinar/register/WN_VtjLAB1pTGO7kQn0inK9lA?timezone_id=Asia%2FKolkata

Technical Services Overview September 15, 2022

In this 30-minute webinar, Technical Services Overview, we will cover the basics of cataloging, acquisitions, serials, and the tools for technical services workflows in Koha!

Registration Link: https://us02web.zoom.us/webinar/register/WN_9P5y1AWFQQ-4et1v2UqChQ?timezone_id=Asia%2FKolkata

The Koha Staff Experience October 18, 2022

In this 30-minute, The Koha Staff Experience, we will cover the basics of the Koha Staff interface and how staff can intuitively navigate through the models.

Registration Link: https://us02web.zoom.us/webinar/register/WN_MHW5H9DCQbm1jOuF1JV-gw?timezone_id=Asia%2FCalcutta

The Basics of Circulation November 16, 2022

In this 30-minute webinar, The basics of circulation, we will cover how staff can utilize the circulation functionality and integrate it into their daily workflows for a successful customer experience.

Registration Link: https://us02web.zoom.us/webinar/register/WN_qAxK67LATByqxRulY9ZBQQ?timezone_id=Asia%2FCalcutta

An Administrators Overview December 8, 2022

In this 30-minute webinar, An Administrators Overview, we will cover how Koha’s administration functionality can help users easily perform their day-to-day jobs at the library.

Registration Link: https://us02web.zoom.us/webinar/register/WN_cRK3MarjQny_ZuJlKye3qA?timezone_id=Asia%2FKolkata

The strange case of vanishing fines

The error aka “zor ka jhatkaa”

Last week a client partner raised a rather interesting support ticket: when they are checking in overdue items with fines, the fines seem to be vanishing. No, they were not waiving anything, the fines were simply going away and no record of there being ever a fine or its waiver were showing up in the Accounting tab of the patron.

The investigation

Turns out this was indeed happening. The instance was Koha 21.05.07 running on Debian 10.11 using MariaDB 10.3 running without plack. The evidence the fines been reset to zero and removed was available in the “Log viewer” under the Tools menu.

The solution

Doing a diff on the database backup of the table circulation_rules between the database backup from 2 days before and the one from that day, revealed that the day before, the client had re-jigged their circulation rules during which they had inadvertently changed the Fine interval aka chargeperiod setting from “1” to blank.

As the user manual says :

Enter the ‘Fine charging interval’ in the unit you set (ex. charge fines every 1 day, or every 2 hours). The finesCalendar system preference controls whether the days the library is closed will be taken into account or not.

In this specific instance, not only was the finesMode system preference set to “Calculate and charge” with fines being charged by the daily cron job, it also had CalculateFinesOnReturn system preference set to “Do”. Thus, while the cron job was creating and then updating fines once a day, the CalculateFinesOnReturn triggered at the time of check-in was resetting the fines to “0” as the chargeperiod was not set. This was why the fines were disappearing.

The simple fix was to ensure that for all the circulation rules the chargeperiod was set to “1”. And immediately the problem went away.

KISS your Koha patron categories

KISS, an acronym for “keep it simple, stupid” or “keep it stupid simple”, is a design principle noted by the U.S. Navy in 1960. The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided. The phrase has been associated with aircraft engineer Kelly Johnson. Variations on the phrase include: “Keep it simple, silly”, “keep it short and simple”, “keep it simple and straightforward”, “keep it small and simple”, or “keep it stupid simple”. [1]

Earlier today we received a request to add a new SQL report to generate a list of all students with their email ids from the librarian at our client partner Sister Nivedita University. The request prima facie was simple. However, when we looked at the patron categories for students under Administration, the first reaction was “Uh oh!”.

Let me explain. There were 8 patron categories for students (of all types) and all these student patron categories had different mnemonic codes that were as follows:

DIP Diploma – 2 years
GNM-3 General Nursing and Midwifery – 3 years
RS Research scholar
SPG-2 Student Postgraduate – 2 years
SPG-3 Student Postgraduate – 3 years
SUG-3 Student Undergraduate – 3 years
SUG-4 Student Undergraduate – 4 years
SUG-5 Student Undergraduate – 5 years

Still, just to fulfill the service request, all we needed to do was to create an SQL query like

SELECT
   cardnumber, firstname, surname, email
FROM borrowers 
WHERE categorycode IN 
('DIP', 'GNM-3', 'RS', 'SPG-2', 'SPG-3', 'SUG-3', 'SUG-4', 'SUG-5')

The ‘problem’

There was no way to know from the mnemonic values that all these codes designated a student patron category, as there was no uniform standardization of the values used for student categories. To put the problem in a perspective that library professionals will understand easily – e.g. if we saw a DDC class number that started with 004, we’ll immediately know that it belongs to “computer science“, but what if the computer science documents were marked out with numbers that did not denote computer science under DDC???

Further, if in the future, the library added another student patron category, the SQL report would need to be updated in order to give the correct output that will include members belonging to this newly added category.

The ‘solution’

Luckily the solution was both simple and straightforward. We had to standardize and re-code the student patron categories and update the affected patrons. To do that we prefixed every student patron category with “STD_“. And thus, the student patron categories became:

STD_DIP2 Diploma – 2 years
STD_GNM3 General Nursing and Midwifery – 3 years
STD_RS Research scholar
STD_PG2 Student Postgraduate – 2 years
STD_PG3 Student Postgraduate – 3 years
STD_UG3 Student Undergraduate – 3 years
STD_UG4 Student Undergraduate – 4 years
STD_UG5 Student Undergraduate – 5 years

This was followed by updating the categorycode in the borrowers table to reflect the new changes. As a result the SQL query became much simplified:

SELECT
   cardnumber, firstname, surname, email
FROM borrowers 
WHERE categorycode LIKE 'STD_%'

If the library added a new student patron category in the future, all they would need to do is prefix the code with “STD_” and this query would continue to work without any change with this simple and straightforward update.

Legalese

This solution required us to directly access the production database with MySQL’s foreign key check turned off with SET FOREIGN_KEY_CHECKS=0;. If you get inspired to follow this, please ensure you have a complete database backup before you attempt this. And if by chance, you manage to mess it up or damage your database while attempting to do this, we are NOT responsible in any manner.

References [1] https://en.wikipedia.org/wiki/KISS_principle

ESI-PGIMSR (Kolkata) selects L2C2 Technologies as their Koha support partner.

We are pleased to welcome our newest client partner ESI-PGIMSR (Joka) Library to our cloud-hosted Koha ILS platform.

About ESI-PGIMSR

ESI-PGIMSR, Kolkata, also known by its full name Employees State Insurance Post Graduate Institute of Medical Sciences and Research & Employees State Insurance Corporation Medical College, Kolkata, is a MCI recognised medical college established in 2013 under the aegis of the ESI Corporation, an autonomous body under the Ministry of Labour and Employment, Government of India.

About the library

The library is located at the 2nd Floor of the Academic Building with floor area of more than 3000 sq. ft. Users have facility of for easy browsing, reading and borrowing of Books and Journals. The library caters to the need of M.B.B.S. students, Research Scholars, Post Graduate Students, Senior Residents, Junior Residents, Medical Teaching Faculty and other Doctors and Paramedical Staff of the Institute. The library follows open access system with books arranged using the Decimal Classification (D.D.C.) scheme.

“Fixing” ascii sorting in SQL Reports

The Problem

Recently there was a request from IDSK – they wanted the accession register SQL report for their Rabindranath Tagore Grant collection books to be listed in a natural sort. Documents of this collection carry the prefix “RT” which is fine and dandy. The “problem” started after that. In their earlier legacy system (SOUL v1) when these books had been accessioned, they did not use an fixed uniform length accession no for this collection. For example, instead of RT00001, it was entered RT1, RT2 and so on. Further, their problem was compounded by another glitch. In several of these accession nos, there were spaces inserted between “RT” and the actual numerical part. When they migrated to Koha with L2C2 Technologies, these problems were carried over to the new system as data curation and correction was not part of the deliverables. Now, three years later, when reports were being asked for, these issues had come back to haunt them.

The “Solution”

The RT collection has over 4000+ books and a manual fix was not feasible at this time. So using the ORDER BY keyword in the report’s SQL like this: ORDER BY LPAD(REPLACE(REPLACE(TRIM(items.barcode)," ",""),"RT",""), 10, ' ') ASC we at least managed to hide the problem and also got natural sorting to work. The first REPLACE() took out any space in the accession no, and the second REPLACE() stripped off the “RT” prefix, leaving us with only the number. Finally using LPAD() we zero prefixed the number so that each one was exactly 10 characters long. And we had our naturally sorted list of accession numbers in the report as we can see below.

Bangiya Sahitya Parishat Library goes online with L2C2 Technologies

The 126-year old heritage library of Bangiya Sahitya Parishat (aka Bangiya Sahitya Parishad) chooses L2C2 Technologies as their Koha hosting service provider, and it is with great joy admixed with a sense of greater responsibility that we welcome our newest client-partner. The OPAC is available at https://library.bangiyasahityaparishat.org/

About Bangiya Sahitya Parishat

Originally founded on 23 July, 1893 as the “Bengal Academy of Literature” literary society, the institution renamed itself as “Bangiya Sahitya Parishat” in 1894 with Romesh Chunder Dutt as it’s first president and Rabindranath Tagore and Navinchandra Sen as vice presidents. With the study and development of the Bengali language and literature as its main objective, the society has over the years, has delved into the cultural, historical, archaeological, sociological and other scientific studies and researches with special reference to Bengal. The society moved into its present address in 1908. The land the building stands on was donated by Maharaja Manindra Chandra Nandy of Cossimbazar Raj. In 1997, Kolkata Municipal Corporation notified the building as a Grade-I heritage building.

About the library

Established in 1894, the Bangiya Sahitya Parishat Library was the brainchild of Archarya Ramendra Sundar Tribedi. From its early beginning with a handful of donated books and periodicals, the library today in its collection has 1,01,719 books and 17,558 journals. The collection includes very rare and valuable books as well as many rare 19th century periodicals in Bengali and English such as ‘Digdarshan’, ‘Samachar Darpan’, ‘Samachar Chandrika’, ‘Friend of India’ etc. [1] The library has several important collections, the most important highlight being the “Vidyasagar Collection” donated by the erstwhile Maharajah of Lalgola. Given the richness of its collections, the library attracts readers and researchers from both India and abroad.

References: [1] https://bangiyasahityaparishat.org/library/

SSH using PuTTY.exe into a vagrant managed kohadevbox VirtualBox VM on Win 10 Prof

What is kohadevbox?

As the README.md at https://gitlab.com/koha-community/kohadevbox says – “Create a development environment for the Koha ILS project. It uses Vagrant and Ansible to set up a VirtualBox.” Basically it automates the long and somewhat complex process of manually setting up a development system for #kohails.

Why PuTTY?

From the website – PuTTY is an SSH and telnet client, developed originally by Simon Tatham for the Windows platform. PuTTY is open source software that is available with source code and is developed and supported by a group of volunteers. It is our go-to tool on Windows for accessing physical Koha boxes or VMs via SSH.

Vagrant sets up SSH service on the VM to use public-key authentication. Therefore our PuTTY instance needs to know the private key that Vagrant had setup inside the VM, in order to login into it. As many posts in Stackoverflow indicates, this is a point where many people get stuck. Usually they try with %USERPROFILE%\.vagrant.d\insecure_private_key and that typically fails.

Steps for kohadevbox

Using git-bash go to the directory where you had cloned kohadevbox. Be default it will be %USERPROFILE%/git/kohadevbox if you have simply followed the instructions from kohadevbox README.md file. In our case, it was %USERPROFILE%/gitdev/kohadevbox as we had changed it.

Run the command

vagrant ssh-config

You should see something like this:

The line to note in the output is IdentityFile. That’s the private key you need to grab and feed to PuTTYGen for it to convert it into a PuTTY compatible .ppk format private key.

NOTE: This path to the key is going to be different for different users, so do not attempt to copy-paste what you see here, instead use your own IdentityFile value.

Now we convert the vagrant_private_key from IdentityFile and save it as a .ppk file.

And lastly we import it into PuTTY like this and we are good to go!

Finally we are logged in into the VM

NOTES: The versions of software used – (a) PuTTY.exe – 0.71 (b) Vagrant – 2.2.7 (c) Git Bash – 2.25.0 (d) VirtualBox – 6.1.2

Nirmala College Library,Muvattupuzha chooses L2C2 Technologies for Koha Support

We are happy to announce that Nirmala College, Muvattupuzha has chosen to L2C2 Technologies for migration from a legacy proprietary software to Koha on our hosted Koha on the cloud platform.

About Nirmala College

Established in 1953, Nirmala College, Muvattupuzha is a first-grade college affiliated to Mahatma Gandhi University, Kottayam. It is a minority Christian institution governed and managed by the Corporate Educational Agency, Syrian Catholic Diocese of Kothamangalam. In strict compliance with the vision of the founding fathers, the college has served the community, irrespective of caste, creed and colour and has contributed to the world quite large a number of value-based Nirmalites. Her performance in academic and non-academic activities has been acknowledged by the NIRF rankings 2017 in the form of its position on the 91st among the list of colleges in the country. In addition, the college has been bestowed with the prestigious ‘Star College’ status by the Department of Bio-Technology (DBT), Government of India, in recognition of the advancements made by the college in the field of science education, with a handsome financial grant. All science departments of the college are supported by the DST- FIST scheme.

The college is located on a hill top at the doorstep of high ranges in the western ghats. The campus is spread over 53 acres of land with state of the art facilities for a constructive learning experience. The college has now grown to become a centre of learning that offers graduation in 16 disciplines, post-graduation in 14 and research facility in six. The college also runs 17 certificate/ diploma programmes. The IGNOU Study Centre, functioning in the college, offers 11 UG and 04 PG Programmes. The Nirmala Civil Service Academy, functioning in the college, caters to the needs of civil service aspirants.

From : http://nirmalacollege.ac.in/welcome-to-nirmala-college/

About the Library

The Library has a collection of over 80,000 volumes. The Library subscribes to 190 journals and periodicals both national and international. The entire legacy data was migrated over to Koha ILS. The OPAC is available at https://nirmala-opac.l2c2.co.in/

A Koha ILS mashup to turbo-charge the sort1 and sort2 patron / borrower record fields

This video shares the idea about how to turbo-charge the sort1 and sort2 fields for patron records in Koha by utilizing Koha’s very own reports web service in tandem with a bit of JQuery.

If you are feeling impatient because you already know the background, feel free to jump to 3 minutes 10 seconds into the playtime, to see the actual action in progress.

Runtime: 14 mins 35 sec.

Show me the money…. er.. the barcode?

The Problem

Earlier this morning, Pranab Roy who manages the Library at the Karnavati University‘s UnitedWorld School of Business‘s Kolkata campus popped up on WhatsApp with a question – “Sir, why is Koha not showing the barcode / accession number of a borrowed document when an user logs in into their own account via the OPAC?”

This is what he meant. And this is actually the expected behaviour, with Koha doing exactly what it was asked to do. I could understand his confusion since the OPAC search’s details view showed the barcode quite nicely, then why not for the users themselves?

A bit of backstory

Karnavati University Libraries had shifted to L2C2 Technologies‘ cloud platform from a pre-existing Koha instance maintained by a 3rd party. As such the system had quite a few issues. While we had fixed a larger number of these during the initial on-boarding stage, some of these are getting ironed out only now as the librarians hit these “bumps on the road”. Pranab’s problem was one such.

The Solution

The option to display the barcodes for a logged-in OPAC user’s checkouts (issues) is driven by the SHOW_BARCODE patron attribute. In Koha, patron attributes or more correctly ExtendedPatronAttributes are library-defined custom fields that can be applied to patron records e.g. voter / aadhaar card number, registration number etc.

SHOW_BARCODE is a boolean variable that is defined as either Yes or No. and it is loaded into Koha usually during the web-installer phase of Koha’s installation from the optional SQL dump file: /usr/share/koha/intranet/cgi-bin/installer/data/mysql/en/optional/patron_atributes.sql in Debian package based installations. The tiny file contains a single SQL INSERT statement:

INSERT INTO `borrower_attribute_types` (`code`, `description`, `repeatable`, `unique_id`, `opac_display`, `staff_searchable`, `authorised_value_category`) VALUES (‘SHOW_BCODE’, ‘Show barcode on the summary screen items listings’, 0, 0, 1, 0, ‘YES_NO’);

In the case of Karnavati University this optional patron attribute was not imported during the *original* installation done by the 3rd party support provider at the time. And without “SHOW_BARCODE” being set, Koha had no way of displaying the barcodes of checked out books to patrons logged in via the OPAC.

In the end, the following two lines followed by enabling the ExtendedPatronAttributes system preference cleared off the issue for Karnavati:
$ cd /usr/share/koha/intranet/cgi-bin/installer/data/mysql/en/optional
$ mysql -uroot -p koha_karnavati .

A memcached restart later (to be safe rather than sorry) the OPAC started showing the barcodes to logged-in patrons.

Using an office suite to generate the sql for Koha’s calendar

LEGAL DISCLAIMAR: This tutorial is strictly meant for educational purpose. We are in no way responsible if you attempt to follow these steps and end up messing up your production Koha installation somehow.

Setting up yearly calendars is an important task in Koha. Especially in a country like India where we also use other calendars including lunar calendars. Since the religious festivals / holidays usually use these other calendars, the holidays often fall on different days in different years in the Gregorian calendar that Koha uses.

As support providers, we are often asked to setup the calendar for our client-partners. While Koha provides a rather useful user-interface to setup calendars under the Tools menu, we have often found that not only setting up the long list of Indian holidays a tedious affair, it is also quite prone to operator error. So for the Unique holidays we usually use a LibreOffice (a Free Software Office Suite) Calc spreadsheet to quickly generate the batch of SQL statements that can be directed imported into the special_holidays table of Koha using the SQL backend.

We ask our client-partners to send us a spreadsheet that lists the holidays and the days they fall on according to the Gregorian calendar (see the columns marked in yellow above). And then we use a couple of simple formulae to generate the necessary SQL. This approach has two advantages : (a) it’s very fast and (b) completely free of errors from our end.

In this present case, it took us less than 2 minute to upload all the 25 holidays for 2020 into this particular Koha instance.

Caveat The only risk here is that we are going to access the database directly from the command-line and that, unless you know what you are doing, can end up badly, *if* you mess things up.

How to Adding Autocomplete support to MARC21 Catalogue in koha | Book Data Entry page

Adding auto-complete feature to Koha’s MARC21 biblioitems field (Imprint – place, name of publisher, ISBN,edition, etc) as a cataloging aid.

Step - 1

Go to : Koha administration/Global system preferences/Staff interface/IntranetUserJS

Below the Java script  enable of the auto completed in four columns for ISBN, Place of publication, Name of the Publisher, Edition

Copy and paste the bellow JS Coding.


//**Autocomplete support to MARC21 catalogue**//  
$(document).ready(function(){
$( '[id^="tag_260_subfield_a"]' ).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: "/cgi-bin/koha/cataloguing/ysearch.pl",
        dataType: "json",
        data: {
          term: request.term,
          table: "biblioitems",
          field: "place"
        },
        success: function(data) {
          response( $.map( data, function( item ) {
            return {
              label: item.fieldvalue,
              value: item.fieldvalue
            };
          }));
        }
      });
    },
    minLength: 1,
  });

 $( '[id^="tag_020_subfield_a"]' ).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: "/cgi-bin/koha/cataloguing/ysearch.pl",
        dataType: "json",
        data: {
          term: request.term,
          table: "biblioitems",
          field: "ISBN"
        },
        success: function(data) {
          response( $.map( data, function( item ) {
            return {
              label: item.fieldvalue,
              value: item.fieldvalue
            };
          }));
        }
      });
    },
    minLength: 1,
  });
  
  $( '[id^="tag_260_subfield_b"]' ).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: "/cgi-bin/koha/cataloguing/ysearch.pl",
        dataType: "json",
        data: {
          term: request.term,
          table: "biblioitems",
          field: "publishercode"
        },
        success: function(data) {
          response( $.map( data, function( item ) {
            return {
              label: item.fieldvalue,
              value: item.fieldvalue
            };
          }));
        }
      });
    },
    minLength: 1,
  });

 $( '[id^="tag_250_subfield_a"]' ).autocomplete({
    source: function(request, response) {
      $.ajax({
        url: "/cgi-bin/koha/cataloguing/ysearch.pl",
        dataType: "json",
        data: {
          term: request.term,
          table: "biblioitems",
          field: "Editionstatement"
        },
        success: function(data) {
          response( $.map( data, function( item ) {
            return {
              label: item.fieldvalue,
              value: item.fieldvalue
            };
          }));
        }
      });
    },
    minLength: 1,
  });
});

Click Save Button.

Step - 2

Go to : Home/Cataloging/New Record (Enter the all bibliographies details )


References:

[1] http://www.loc.gov/catworkshop/RDA%20training%20materials/LC%20RDA%20Training/Module1IntroManifestItemsSept12.doc

[2] https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

[3] https://gist.github.com/l2c2technologies/7d0449dcb80c90880381ef4571003d1d

[4] http://catb.org/jargon/html/H/hack.html

[5] http://blog.l2c2.co.in/index.php/2017/01/15/adding-autocomplete-support-to-marc21-260-264-imprint-fields-in-koha/

❌