Add the ability to use Tabs (Nav Pills) in a modal window.
I use xCrud, there is a very simple but at the same time functionality of simple field separation.
Real example:
https://xcrud.net/demos/index.php?page=tabs&theme=bootstrap4
You can also implement something like:
->set_fields('customer_name, customer_lastname, etc', phrase(‘My profile’));
->set_fields('num_orders, total, etc', phrase(‘My orders’));
->set_fields('customer_address, customer_credid, etc', phrase(‘Billing info’));
I think it's a very good idea.
Improve multi language support
To add 1 blog post in 6 languages, you need to make 6 different posts with the same link. I think this is a very wrong decision.
I will give an example of the optimal implementation of multi-language support based on a blog:
- add 2 tables blogs__translation and blogs__categories_translation
add rows to the blogs_translation table
trans_id
trans_title
trans_excerpt
trans_content
trans_lang
trans_post_id
add rows to blogs__categories_translation table
trans_id
trans_title
trans_descriptions
trans_lang
trans_cat_id
-
In the main site settings, the administrator specifies the main language of the system, for example, English.
-
Remove language dropdown when adding a post. Instead, get an array of available languages (/administrative/translations) excluding the main language of the site and display them on the screen.
Example
- For more comfortable adding/editing, you can put translations in Tabs (from the first suggestion for improvement), it will be convenient if there are many languages :-)
- When saving a post, save the translation fields directly to the blogs_translation database.
Example when saving a blog entry
| trans_id | trans_title | trans_excerpt | trans_content | trans_lang | trans_post_id |
| 1 | En-tête | Entrée | Texte | FR | 120 |
| 2 | Judul | Ringkasan | Konten | ID | 120 |
| 3 | Titolo | Estratto | Contenuto | IT | 120 |
| 4 | En-tête | Entrée | Texte | FR | 125 |
Example when saving blog category
| trans_id | trans_title | trans_descriptions | trans_lang | trans_cat_id |
| 1 | En-tête | Entrée | FR | 5 |
| 2 | Titolo | Descrizione | IT | 5 |
| 3 | Judul | Keterangan | ID | 5 |
- When a user opens a site for the first time, give it the default system language. If the user changes the language, just before displaying the content, pass it through a function, for example,
get_translate('blogs', 'title', $current_lang)
, if there is no required translation, then show the text in the original language.
This solution is very simple. You need to use this approach to multi-language support everywhere (pages, blogs, testimonials ....). Thanks to this, it will be more convenient to edit the record in one place and there is no need to add a bunch of records, which will eventually lead to confusion with a large number of records.
Do not upload unused scripts to the frontend
You can separate the loading of scripts that are used in the backend and frontend parts of the site. There are too many scripts and styles loaded in the front end that are not actually used by the average visitor.
They can be divided. There is one download for the backend, and another download for the frontend (for example, only bootstrap, jquery and other styles and scripts that are actually used for the frontend)
It's the same with translations. The translation of all strings from json files (including the backend) is loaded into the frontend. Maybe when translating text in /administrative/translations/translate, it is worth making marks where the translation will be used (for example, backend
, frontend
or backend/frontend
). And when generating JS, give the desired translation for the frontend or backend.
Also, as I understand it, js and css are created dynamically every time the page is updated. It may be worthwhile to physically save the files to a folder so as not to load the server.
Thanks to such little things, you can very well increase the speed of Aksara.
Groups and privileges
Add the ability to choose to show dashboard and sidebar widgets. For example, I allow my editor to add blog entries in the group, but he actually does not have a menu that is initially there (CMS-> Blogs-> Posts). In this case, you must manually create a menu for the group.
It would be great if all the menus that come by default in Aksara, you could choose which group they can be shown (and not just the super administrator).
The same applies to widgets on the main dashboard. For example, so that you can separately give privileges to a group, which, for example, will have access to the visit statistics widget (or Most used browser, Application information etc)
In general, these are my suggestions for improvement. I would also like to use the standard Codeigniter style coding.
Thanks