I'm thinking of building a plugin based application.
At the moment, I am not sure what type of plugins will be used so I don't have a requirement.
I wish to know how such applications are designed so I can start my application around that.
Does anyone have any experience with this? I don't mind what sort of system it is or what your plugins do. What I want are some ideas on how others have achieved this so I can formulate and make my own.
Thanks.
I use this for all of my plugins: http://failover.co.za/2010/10/20/writing-a-pluggable-php-application-part-1/
If the plugins are going to be built by people who won't be editing the script, then you can just include the file for the plugin.
I think it's better for you to work with MVC Framework and then create an application core (modules and all apps need and require this), then think global and create other apps and modules.
Also I suggest you look at an Open Source CMS like Wordpress, Drupal, etc.
Related
I have been working on Magento for the last few months. I want to develop modules in Magento but my question is how can I start to develop for it?
1) What are some of the basic needs to create a module?
2) What type of xml files settings need to develop module and why?
If someone could also provide a diagram of the overall architecture of a Magento module, that would be great.
You can find here a nice tutorial: http://www.smashingmagazine.com/2012/03/01/basics-creating-magento-module/.
This one is nice also: http://code.tutsplus.com/tutorials/magento-custom-module-development--cms-20643.
There are a lot of resources like this online. If only there was a tool to search for them...
If you are a beginner, you can use a module creator.
You will use it even if you are an advanced magnento developer because you don't want to do the same thing over and over again.
I can recommend you this one: https://github.com/tzyganu/UMC1.9. It's pretty advanced and does a lot of stuff, not just a simple module.
Or this one. http://www.silksoftware.com/magento-module-creator/. This has the advantage of being on online and you don't have to install anything to use it.
I'm looking to add an image upload and comment area to an already existing site. Not wanting to reinvent the wheel I'm wondering if there are any "drop in" ways to handle user management and security.
I've begun looking at frameworks like Codeigniter, but as far as I can see they need to be installed in the root of the system and as I said, the rest of the site is already there.
I also noticed that Symfony has a standalone security suite for PHP but I didn't see a user management component.
I guess going further down the DRY "reinvent the wheel"...is there any already existing open source framework that has members pages where they can upload images. I currently work in php, but I'm open to suggestions.
Thanks.
Well, It seems you need something like cms,
and you are asking this from framework(which cms does). I will suggest you to go with cms, For php there lots of cms:
Druapl
Joomla
So, you do not write any code for your requirement, just drop modules into folder, and turn on them.
If you really want framework, then I would suggest you go with module based framework like yii. I has tons of modules, that you can include and use it, But they are not ultimate as cms's modules. In yii it is called exnetnsion
here is some extensions:
yii-user-management
Comments
If I were you I would go with cms's. For this kind of DRY things, They are the best and built in for this purpose.
If all you want is the ability to upload images and have users comment, then why not incorporate the functionality of an existing image gallery into your application? Most of those will already include user management. This website lists some of the more common galleries: http://www.design3edge.com/2010/08/26/best-free-and-open-source-php-image-galleries/. There is bound to be one you like in that list.
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.
We are building a custom application using LAMP with P being PHP. We also need to have CMS to manage various aspects of the site. The two options for the CMS are
Build a complete custom CMS from scratch
Extend an existing open source CMS to fit our needs. This way we can use some of the features out of the box and others we will build ourselves.
I would like to get your feedback on the following
What are your experiences with option number 2?
Which CMS would you recommend that we can further customize and extend for our use?
What are the best ways to integrate a custom application with other external CMS?
I really like the MVC approach for a CMS (you did mention extending), and PyroCMS is built on Codeigniter. It might not (out of the box) serve all of your needs, but easily could. Its worth a look, at the least.
A whole set of CMS are available nowadays, everyone with its own pros and cons.
I guess the first step in your case is to make a list of the features that you:
MUST HAVE
SHOULD HAVE
COULD HAVE
Once you have this list, you'll be able to compare the existing CMSs to see which one better fits your needs.
There's no a best CMS (otherwise everyone would use the same).
Said this, Joomla offers a powerful base system, easily extensible. But this is just my modest opinion. Right now, 4712 extensions exist for this CMS. If you still can't find all you need, it's possible to implement your own extensions (in terms of plugins, components and modules). See the developers section for more information.
I've recommended ModX in response to previous questions
It provides a nice clean framework which is simple to install and is easy customize.
For your situation I think ModX is a strong contender as it allows you to embed your own php code in your site using snippets - Bob's guide on snippets is a good overview. The snippets can be managed through the backend web manager and they can easily be dropped into any pages as required.
Larger applications can be setup as modules, this is similar to many of the other main stream CMS's, it's just that in ModX the web based control makes the management of the code a simple task.
I am looking for an easy-to-use CMS that can be used to host a multilingual website with photo galleries and a few forms.
I am open to PHP/Python, excluding WordPress/Joomla/Drupal.
Django CMS 2.0 is a great multilingual CMS.
Views are cached and being a pluggable Django app makes it very extensible.
You would like the plugin approach of the design, is very helpful to integrate existing apps to a project.
http://github.com/digi604/django-cms-2.0/tree/master
Try CMS From Scratch. It's hard to get any simpler or easier.
Also, don't forget http://www.opensourcecms.com/. They host demo versions of most CMSs out there that you can try.
If you're open to Ruby, see Radiant CMS: "Radiant is a no-fluff, open source content management system designed for small teams." Also Mephisto.
For something in Python that isn't Django, you can also try Pylons.
Checkout django-blocks. Has multi-language Menu, Flatpages and even has a simple Shopping Cart!!
Since you tag django, I can suggest you a reusable Django application called django-photologue. IMHO it's worth it to use a CMS capable framework like Django rather than using a ready made CMS because in the future there would be a chance for you to customize your application. Using a ready made CMS I reckon is not as flexible as using a framework like Django.
One of your tags is 'django'.
I don't know if I would call Django simple, but it is easy
to use - once you know how... It has a very steep learning
curve.
Perhaps you are really looking for which framework to learn
and use for web-development for the next many years? I that
case I would recommend Django. Others systems I considered
were (all PHP based):
Joomla
CMSMS (CMS Made Simple)
Drupal
CodeIgniter,
CakePHP
Symfony
Smarty
Concrete5.
I have completed a Django project.
The problem is that the lighter CMS systems out there don't usually offer a lot - which is why WordPress/Joomla/Drupal have made it so big. WordPress actually takes 9 MB to load the index page on a vanilla install.
Have you looked at http://chryp.net?
If you know how to program in Python or PHP then there are MANY CMSes built by the users of frameworks that offer a lot if you don't mind messing with code.