hosting PHP application within moodle LMS - php

Good day, I would like to know if there is a way to run a php application within the moodle LMS.
Prior to implementation in php, the information was in the form of static html documents, which were simply uploaded into folder and accessing the files gave the appearance of a site hosted within moodle.
Can such a functionality be replicated using PHP files that require service processing for desired features.
If not what are the best options for giving users a similar experience.
thanks

You can use plugins(Blocks or Module) to develop applications within Moodle. The pre-condition is that you need to follow Moodle programming guidelines to create a plugin.
More details here:
http://docs.moodle.org/dev/Modules
http://docs.moodle.org/dev/Blocks
However, you need to decide whether you need a Block or an Activity Module and it can be determined only after seeing the requirements.

Related

Using wordpress and django togther

I am developing a web application using Django and python. We have also a public website where a customer can find information regarding our products. I was thinking to implement this website using WordPress or other well known php CMS, since the content may be modified by people who don't know how to code.
A user must login to access our web application. The login should be located in the public website (built using php and a CMS) along with the registration form. The user model is already implemented in the web application and therefore is not available in the CMS/php. I was thinking to include a login page written in python by means of an iframe. is it a good idea?
Is there a neat solution for this problem? Is a good idea to mix up php/cms and python/Django?
There is an opensource CMS for Django called Mezzanine. Its very elegant.
In some ways, Mezzanine resembles tools such as Wordpress that provide an intuitive interface for managing pages, blog posts, form data, store products, and other types of content. But Mezzanine is also different. Unlike many other platforms that make extensive use of modules or reusable applications, Mezzanine provides most of its functionality by default. This approach yields a more integrated and efficient platform
Follow this link to download and have a look at its features
Regarding you question Is a good idea to mix up php/cms and python/Django?, No, because Django is Python based and wordrepss is PHP based. Although you can sync data by writing different scripts that require some knowledge of both ends.
There is another option https://www.django-cms.org/
This is specially usefull if you have already a django project, because you can add to the project the CMS components, Mezzanine is a very good option too, but you have to start the project from scratch.

How to go about allowing plugins for a custom framework?

First off, this isn't really a programming question but more of a programming concept question. Basically, I've built a bespoke PHP framework to speed up deployment on my end and I want some kind of plugin system in place that will allow me to add specific features to the base of the framework (like the SQL class or maybe a Twitter package) that will allow me to throw them into a folder and not have to actually edit the base for every new project.
Any ideas of the best way of going about this?
Here is a nicely written post by #ircmaxell on how to do that and what are the options:
Handling Plugins In PHP
Also check out:
Best way to allow plugins for a PHP application
what im doing in my cms:
for each plugin i make a folder latin-named of this plugin's name.
i create a /translations folder in there too. Check here.
have a single php file that has 2 basic functions, the plugin_install and plugin_uninstall (you know, things to happen on install/unistall like tables creation/drop)
create a special page of your system that reads these plugins, installed and not and give an on/off switch so users can install/unistall them.
load these single files mentioned above by a single call to include_once on top of your index page (or administration page) so to include whatever functionality they offer.
enabled plugins will be loaded (include_once) from your main page, and also their functionality, so each plugin can call each other's as well.

Can Drupal be used as a shell for custom web apps?

I am looking to create a web site that will need to exchange information with a Filemaker Pro (version 11) database. Using PHP I can create simple web apps that submit and retrieve data from Filemaker. I would however like to use a CMS framework (such as Drupal) to allow users to control access to the site and update site content (blog posts, images, etc ...).
Is it possible to use Drupal as a "shell", controlling access to certain pages and allowing site editors to modify content, while embedding a PHP page/form to interact with the Filemaker data? I would be planning to use MySQL for Drupal and the custom "web apps" would access Filemaker. Thanks for any help.
Have you ever heard of the expression "there's a module for that?" It's used quite a bit in the Drupal world. And yes, for Filemaker, there is a Module for That!. It's called, the Filemaker module, see more detail at http://drupal.org/project/filemaker.
Now I've never tested it, so it may not give you everything you want. But the beauty of open source is that you can always contribute what it doesn't already have. Or at least see how they did it to see if its worth it for you to try your own integration.
Now this module is one version behind current, so maybe you can learn Drupal by learning to upgrade the module. There's great guides on how to do this.

How to allow customization of a platform built on Drupal (and PHP obfuscation)

My company is building a platform on top of a heavily extended Drupal core. I have multiple customers who will be using separate instances of this system and will want to customize both the theme and the functionality.
I'm trying to design a system to allow them to add themes and modules, some of which might interact with some of my modules, without giving them access to the actual code. (This isn't open source)
The way that Facebook and Ning do this is to have the developer host their own custom code, and have a callback to it. This won't really work for me, as these sites need the ability to be fully customized, so callbacks for specific integration points don't really work.
One option is to set up a sandbox environment where the custom developers only have access to a couple specific directories to build their themes and custom modules. We could then integrate with git to commit these when they're ready and deploy them with the rest of our code into production. The problem with this setup is that developers have to develop remotely and have to use our source control system.
A more typical setup is to allow the developers to download something to build their custom code against. They can develop locally and use whatever source control practices they already have. As we don't want specific point integrations, I don't think this can be a library that runs against a separate server. The alternative is to download our full core Drupal system and develop locally against that, uploading the custom code when it's ready, but then they would have access to all our code and IP.
Thus the predicament, as I don't think there is any way to effectively obfuscate PHP.
Anyone have any brilliant ideas here?
It sounds like your system is a derivative work of Drupal and thus covered by the GPL. If you distribute the code to your clients they have all of the rights provided by the GPL, Including modifying and redistributing it.
Be aware that distributing obfuscated GPLed code is not allowed. To quote the GPLv2 "The source code for a work means the preferred form of the work for making modifications to it."
Obfuscated code does not comply with this clause of the GPL.
That said, if you really want to provide your clients a way to customize your system you could provide your clients access to the existing Drupal module and theme system but only on your sandbox.
Of course since the modules and themes are PHP and you "don't want specific point integrations" it seems they would have the sort of freedom that would allow them to write a module that reads all of the source code for the rest of your system and then tar it up and send it to themselves.
I think you've painted yourself into a corner by depending on GPL. Keeping your IP private while allowing your clients to extend/customize the system in general ways doesn't really work.
I hope you're aware that Drupal is GPL licensed, be sure to read their licensing FAQ before you start obfuscating.
Why not just create an FTP user for them which can only access /sites/theirsite? What am I missing?

Need to Assess whether Joomla is good fit for Web Application Requirement

I have a web application that needs to be built using PHP/MySQL. The application will require documents to be generated from data in the MySQL database. Such documents will be printed and/or emailed and user will be prompted to run a daily print/email job based on business logic.
This application functionality needs to be made available to individual users such that they can upload data, have the system prompt them as to whether letters/emails are to be generated. The site also needs to be able to support a bulletin board, online live training events and will have admin area as well.
Question: Should a hybrid solution be developed such that the data management (upload functionality, and letter production) be a separate part of the site that authenticated Joomla users can access? That is, the document management functionality would exist separately from Joomla, but be called from within it via a link in the Joomla sitemap. Alternatively, should custom modules be developed from within Joomla to accomodate the document management functionality?
Thanks so much for your input!!
Joomla could do the job for you but based on the amount of things you need that differ from a normal Joomla site I would use a framework to build from instead of a CMS. I say this because it sounds like you need a lot more than just a CMS and it can be more work if you try making Joomla do things it wasn't designed to do. In my opinion Joomla is for "web sites" and not as much for "web apps". Of course those terms have overlap but it sounds like you would be better off with a Framework to go off of instead of working around Joomla to get what you want. However if the site is already done in Joomla it may be less work just to make a Joomla add-on.
Since you have to use PHP I would definitely recommend CakePHP for your framework. As for an integrated forum try looking at the links in this post. If that doesn't work for you, try out Vanilla forums (vanillaforums.org) which are very clean and may be easier to integrate into CakePHP than some of the other PHP forums.
If you decide to use CakePHP, check out Cake Forge to see if you can find anything there to make your life even easier.
If you were to use Joomla, the upload functionality and letter production would be written as a custom component. You can write the component to make sure that the current user is authenticated before generating the documents. I would not develop this as a separate application alongside Joomla; it would be easier to write it as a component.
Many forums and forum bridges are available for Joomla, so that would be something you wouldn't have to write.
I'm not sure what kind of live event support you're looking for.

Categories