![](https://secure.gravatar.com/avatar/313888a8ddb82f89a307015186524e15.jpg?s=120&d=mm&r=g)
I strongly feel that the update process is sacrosanct (more so for a system
like Koha, which provides frequent updates) and we must not disturb it.
Database operations are like surgery, especially in a live system.
Disasters are waiting to happen, even with a small misstep. Hence, they
should always be the last resort. Altering the database schema in a live
system is a dangerous idea. You can, however, create your own table without
disturbing the updates. Although I would prefer doing so in a separate
database altogether as per industry best practices.
I am sure most are aware that, unlike DSpace, Koha allows customization of
both UI and other functionalities without touching the underlying code. For
example:
1. You can inject custom JavaScript/jQuery into both staff and OPAC
interfaces (OPACUserJS and IntranetUserJS). You have many examples on this
page: https://wiki.koha-community.org/wiki/JQuery_Library
2. UI customizations are possible using the parameters OPACUserCSS and
IntranetUserCSS. The combination of custom JS/jQuery and custom CSS can be
very potent.
3. The Reports module allows JSON export. With JSON reports and custom
JS/jQuery you can build powerful tools.
4. Authorized values allow you to create a controlled list of terms, which
are useful in many modules.
5. There are HTTP APIs available to interface with Koha from your custom
code or custom JS/jQuery.
6. HTML customizations (under Tools) allow you to modify various sections
of the OPAC interface.
None of the above methods requires any code change. Koha saves these
customizations in the database, not in the file system. The database backup
will include all those customizations (no need for a separate backup).
We should exhaust all options listed above before thinking of a custom Koha
plugin or a separate application.
Best regards,
Saiful Amin
Semantic Consulting Services Pvt. Ltd.
Bangalore
On Thu, Sep 8, 2022 at 5:44 PM vinod mishra
Hello
Thanks and what I learned from this email is confirmation of my doubt that point number 4 ( The "*.3pm") is not required to be changed. The rest of the things are known to me and really it is not recommended for novices. Your suggestion of two approaches is possible but again it's very difficult practically because there is much variation in book Indent form of libraries.
Such changes are only recommended if someone is dedicated to working on these types of works in a library.
With Regards,
Vinod Kumar Mishra, Assistant Librarian, Biju Patnaik Central Library (BPCL), NIT Rourkela, Sundergadh-769008, Odisha, India. Mob:91+9439420860 URL: http://vinod.itshelp.co.in/ ORCID ID: http://orcid.org/0000-0003-4666-7874 Scopus ID: 57223138343
*"Spiritual relationship is far more precious than physical. Physical relationship divorced from spiritual is body without soul" -- Mahatma Gandhi*
On Thu, Sep 8, 2022 at 9:56 AM Dr. Saiful Amin
wrote: Greetings,
The process described in the link suggests exactly the things that one must avoid while customizing any software.
There are several issues with this approach:
1. Altering database schema is a sacrilege and must be avoided. Future upgrades will probably destroy all the database changes and the accumulated data. It can even prevent applying updates in the future.
2. Changing application code (*.pm|pl) is another thing to avoid for the same reasons as above. However, it is possible to keep a record of the changes in a patch file and applied to the code after every upgrade. But if a future software update changed the same file, then the patch needs to be updated as well. As one can understand that it is not trivial and very time-consuming. Hence, this approach is suitable only for very minor changes of a few lines.
3. Template file (*.tt) changes are another area that has a high chance of breaking after the upgrade. Same suggestions as the point 2 applies here.
4. The "*.3pm" files do not need to be changed at all. These are documentation/manual generated automatically from the code. The effort to change these files is redundant.
I understand that there might be a pressing need to make such changes for local requirements or compliances. Calculate the cost/effort of maintaining a separate code-base and backup of the altered database and syncing it after every update. Make sure that the cost/effort is worth it.
There are two approaches that I can suggest in such a scenario:
1. The recommended process is to submit these changes as patches to the Koha Community Bug Tracker system. Speak to the developers in the forums to get it approved to be made a part of the core software. It however takes time since the developers need to prioritize critical changes over general improvement ones.
2. Write a Koha Plugin which de-couples the code from core Koha software and can be maintained separately. It is less likely to break during the upgrades.
Best regards, Saiful Amin Semantic Consulting Services Pvt. Ltd. Bangalore
On Tue, Sep 6, 2022 at 10:14 AM vinod mishra
wrote: Dear all Wish you all a very happy teachers' day! It's my pleasure to share one of my desire and requirement of many libraries to customize the Koha ILMS online purchase suggestion form is fulfilled today. I could able to customize the same and the entire process is shared with the community on auspicious Teacher's Day. Hope this will be utilized by many libraries to make their library purchase suggestion online. Your feedback is highly appreciated and some more development is underway.