How to create multiple schools, classes & courses in Moodle - moodle

I want to configure Moodle so I can map a real school structure in the Moodle. I want to add 4 schools and under each I want to add multiple classes. The class in one school might be different in other school. And for each class we may have different subjects & terms (3 terms/semester)
-> School
-> Classes (e.g. Pre Nursery, Nursery 1 ... etc.)
-> Terms ( currently they have 3 terms in a year)
-> Subjects (Maths, English etc.)
What should be the best way to configure the Moodle. Is there free/paid apps is available that can manage this structure? I have heard about VMoodle extension & IOMOD Extension not sure how effective is this. I am looking for more suggestions if someone has used before.
Thanks.

Moodle has a multi-tenancy option but I don't think its free.
https://docs.moodle.org/311/en/Multi-tenancy
Or you could use this very simple trick which uses the same code but different databases/config.
Configure your webserver to server all hosts from a single codebase directory
Create a config.php file which includes the individual site config depending on the host which is being served. e.g.
<?php
$moodle_host = $SERVER[‘HTTP_HOST’];
require_once(‘/etc/moodles/’.$moodle_host.‘config.php’);
Populate individual Moodle config files with site specific config as you would any other Moodle site
Copied from https://blog.danpoltawski.co.uk/2011/10/multi-tenant-moodle-without-the-2-2-feature/

Related

Multiple users working remotely on Tally ERP9

I am not very sure whether this is the right forum to ask this question or not.
We are having a TallyERP9 server with Multiple Licenses. Now our 3 users working remotely on the same Data. We have set up Google Drive for Data Syncing. But most of the time its giving issue due to synchronisation process.
What could be the best soltion so that multiple users can work on same data from Remote Locations?
This is the answer - http://mirror.tallysolutions.com/Downloads/TallyTips/GettingStartedwithDataSynchronisation.pdf
Thanks to #MitaleeRao...
Edit placed here for brevity:
These are 2 points I've noted regarding the Tally architecture:
The database is a flat file in a tree structure, and there are numerous checkpoints at each level for maintaining this inheritance (for e.g., a voucher has inventory entries that have stock items, which have units, etc.).
The SOAP XML protocol that Tally uses does not have multi-threading capabilities - i.e., the Tally server will only accept one request and give a response at a time.
The Data syncronisation that Tally has introduced is probably the automating of exporting the XML of all masters/vouchers and importing them onto the central Database (whether on the Tally.NET server or on a local computer with a static IP). Not sure how the Google Drive client works, but I'm assuming it is a variation of the same (i.e., XML based data export and then import onto a main computer).

Tag group for multiple sites in kentico?

I wanted to know how I can use a tag group for multiple site in Kentico 10 ? Is it possible or there are workarounds ?
Well you can not have the same tag group for 2 or more sites. There is no "global" tag group. Table CMS_TagGroup has the information about all the groups for all sites, and Kentico module is called Taxonomy. You have to experiment here, there is a field called TagGroupIsAdHoc by default is always false. You may try to set to true (i.e. it means a group is shared), but in this case you need to useal module -> make a change -> seal the module.
Here is the condition that you need to change:
These are just some ideas, you need to dig deeper... Essentially what you looking for is custom functionality and not available out the box. Changing system modules is not recommended (might complicate the future upgrades), so you do it at your own risk

Change Properties of multiple diagrams in Enterprise Architect

I would like to change the properties of multiple diagrams together rather than clicking on them one by one. Does anyone know how this can be achieved?
You can use the scripting facility of Enterprise Architect to loop the diagrams you would like to change and update them.
See this section of the manual to get help.
There is a bunch of example scripts included with EA, either from the local scripts, or from the EAScriptLib MDG.
Another source of examples is my Github repository: https://github.com/GeertBellekens/Enterprise-Architect-VBScript-Library
You could write a SQL to manipulate your database. t_diagram.PDATA holds a long cryptic string where one part is ScalePI=0; (which is the default for no scaling). You can alter that to be ScalePI=1; (meaning scale to one page).
String manipulations vary from database to database. So you need to write your own which you can execute in a script using
Repository.Execute("UPDATE t_diagram ...")
Note that you should test this in a sandbox first since invalid SQLs can easily disrupt your whole repository.

Typo3 best practices - general variables

What is the best way to allow backend users to edit variables?
For example, I have a TYPO3 that sends out various e-Mail notifications and I want the backend users to be able to globally change the recipients. I started with template constants, until I found out, that backend users cannot edit the "template" module.
So what would be the best way to achieve this? I'm using Typo3 8.7.7
I would create a configuration record which can be edited by the backend users.
one way would be to include one file from fileadmin/ into the constants definition of typoscript. This file editors could change. But that could be a security risk, as the editors could define any constants.
the next option would be to define additional fields to the pages record, where these values could be set by any editor. In typoscript you access the field (maybe with slide = -1, so the value needs to be set just once)
another option: add these fields to a (special?) CE (ContentElement).
last option: use std CEs (e.g.HTML-content) at special pages or columns and use the content field (bodytext). (HTML-content has the advantage that the bodytext field is stored unmodified.)
Cleanest and leanest option would be option two (additional fields to table 'pages'). Option three and four are possible with pure typoscript, but you need to use CONTENT or RECORD object. If you use fix uids: remember that your editors might delete the CE and add a new CE with the same content (but another uid)
Addition:
As #Thomas-Löffler in his answer said:
you also can add a new kind of record/table, where an editor can insert or change the global values. Handling is like pages or tt_content. you can differ if your records are global (pid = 0, or special storage page) or dependent on page tree (rootpath), so you can have differnt values for different page subtrees.
I like Thomas‘ answer for providing a dedicated place to store the configuration option instead of putting it e.g. to pages because your configuration option is not bound to a page context.
Nonetheless for me personally it feels a bit odd to create a dedicated table for it. A table that would never hold more than one record.
That leads me to the conclusion that a key-value storage would be the right thing to use. Fortunately, TYPO3 ships System Registry. The only downside is that there‘s no interface for it so you‘d have to come up with your own forms to fill it. That‘s much easier if you go with Thomas‘ solution…
A clean and easy way is setting up a backend module with a form to set the email addresses.
Then you can grant the access right to a specific group or user and they are ready to go.

Managing Versions of Images on Amazon S3 and MongoDB

I am have an app that will require to use Amazon S3 to host Images and its different sizes on it. I am looking forward to understand which is the best way to do this.
When a user uploads an Image i create 3 different sizes that are required at different parts of the site or the mobile app. In total i have 4 files of the same images.
Questions:
How to store them in Amazon S3. any idea on how to rename these files to make it easier.
Do i need to store the file names of all 4 file names in MongoDB ?
You don't need to keep all file names in db. Just keep a parent folder name.
Lets say an image uploaded by a user has id 1234567(for sake of uniqueness. You may also use timestamp). Then create a folder named 1234567 and put all images with specific names like original, thumbnail, medium, large. And whenever you need a specific one just stream it.
You could simply append a short string, either the resolution or a usage-identifier like 'thumbnail', e.g.
foobar.jpg -> 2342342_thumb.jpg
-> 2342342_gallery.jpg
-> 2342342_full.jpg
That way, you won't need to store the name of the four files but just follow the convention.