CMS like Drupal CCK - php

Is there anything for PHP that isn't Drupal but essentially has CCK-like features?
So far the only things I've found is SymphonyCMS and Drupal.

Personnaly not checked yet but Pimcore seems to be a PHP CMS that can provide such functionnality :
http://www.pimcore.org/wiki/display/PIMCORE/Document-Types
http://www.pimcore.org/wiki/display/PIMCORE/Editables
It's an Open Source CMS based on Zend Framework and extjs,[troll mode] 2 things that contains some smart elements that you won't find soon in Drupal[/troll mode].

There is also the WordPress powerfull Custom Types functionality, which with the help of plugins can act very likely Drupal CCK.
They are:
Types - most recent approach and a good step in the right way
Custom Post Type UI - Also very strong, should be used in conjunction with Custom Field Template Plugin which adds the the ability to add the fields themselves.
There are many out there, but I can only assure you'll have an good experience with this ones.
I'm a big fan of Drupal CCK concept but I cannot like Drupal itself. To me it always maked things much worse then it was. Maybe is just a case of learning curve...
Would love to see this concepts as much implemented as possible (great references here), but maybe the concept should get out of PHP to become full-powered (I do not know every one here, should give modx a try).

This is a pet project. I have been doing Drupal development for 12 years. Most of my work is with modules development using CCK and Views. So I created a php framework that works similarly. It's in beta stage but you are welcome to check out the demo http://cck.fhqk.com. The parts that will interest you most are in http://cck.fhqk.com/?admin/main under content types.
Somethings are different from Drupal because I do not like the limitations of the Drupal system. Content types, fields and containers are independant of each other so deleting one does not effect the others. When a field or container is deleted the user has the choice to keep or delete the data also. You can also change form field types at anytime, change a text field to a textarea or hidden without deleting the field and the data first. The form fields available are all HTML5. Development is done in PHP 5.+ and will move to PHP7 after the first public beta.
Content Connection Kit is not a CMS or Micro framework but something in between. There is not and will not be a list of user features like blogs, forum blah. Although I will use a microblog and portfolio as examples of how and what can be built the system. The concentration is on building of the website via content types menus, hooks and modules (Namespaced OOP class files). There is absolutly no javascript being used nor will there ever be. There is no nor will there evr be PSR compliance because it places restrictions on flexibility. To get all the fiffy stuff from js you have to do it yourself. The starter theme is responsive made from skeleton.css
This Website development kit is for developers and site builders that want to have the heavy lifting done and get on to customization from minute one.

Related

Joomla 2.5 component realization

I'm php programmist, and I never wrote components on Joomla 2.5 CMS, but I know it's concepts and some base hierarchy. Now I have to write a booking component which concept is
to realize the user editable booking form
to realize the administration of it's data
to afford admin creating multiple instances of that form (with some different settings e.g. font color, enableness of some fields, ...)
to afford admin load created instances of form in different materials on site (I suppose by inserting {loadmodule com_name?formid=...} ?)
I see that problem completely hard because of simply unknowing of Joomla inside construction.
How should I implement that? (I mean exacly structure of my component, maybe I should use some hard features, additional plugins, modules, or some special joomla core exceptions ...)? The most important thing is two last steps above. I just can't google how to combine those things in single component on that CMS.
As you already know, your question can be only answered if someone gives you live instructions about Joomla!, ha..ha... apart from jock here are some useful links for you:
Developing an MVC Component with Joomla 3
Joomla! Extensions Directory, from here you can find some event & booking extensions already made by famous and trusted developers from Joomla! community.
Let me know if you need specific assistance.
Thanks,
Mrunal

Converting PHP site to Joomla

I have a large complex web site currently implemented using PHP and MySQL.
Some of the pages (about, contact us, etc) are largely static, but need to be updated from time to time. I'd like these updates to be able to be done by non technical admins, so I'm migrating the site to Joomla CMS. I've created a Joomla template to reproduce the banners, styling etc of my existing web site and have successfully reproduced the static pages by cutting and pasting into Joomla articles.
I'm now trying to embed my existing dyanamic php pages into the Joomla framework. I assume that I need to convert them into one or more Joomla components? I realize that I'll need to strip out the php code that currently generates banners, menus, etc, but I don't want to make major changes to these php pages, i.e. I don't want to re-implement them to follow an MVC pattern. I'm looking for a simple Joomla 3.2 hello world component tutorial. The tutorials that I've found are either too complex (i.e. MVC) or they're "too simple". By too simple I mean the component is not listed when I select Menu Item Type within the Menu Manager. Can anyone point me to any documentation that explains the minimal config that I need to include in a custom Joomla 3.2 component in order for the component to be listed when selecting Menu Item Type?
Also, should I create one big custom component to wrap my existing PHP application containing multiple pages("views"?)? Conceptually there the system could be considered as about 3 sub-systems, but there is some overlap between the MySQL tables used in these different sub-systems.
I don't need the implementation to be portable, i.e. I'm not trying to create a reusable component that others could use, I just need it to work on my site, using the least amount of work possible.
Thanks, Wayne.
I hope to clarify a bit and give you way out.
In response to your comment on #user3057084, the power of Joomla and its flexibility comes from it being MVC! If you want to wrap your existing code with little modifications, Wordpress will let you do all kind of nasty things! Nasty in the sense of mixing logic with data, i.e. copying and pasting your code and getting it to work quickly.
Joomla coding standards require that you separate models from views. And that you understand how the Joomla MVC implementation works. It will take longer, but you'll learn a useful skill that can and should be applied if you want to write portable maintainable code following Design Patterns.
Now about the way out.
Nothing keeps you from putting your raw php code in a Joomla view, including the database access. It's really ugly and I feel bad even suggesting this, but if it can be a small step towards using a great framework, then the end justifies the means.
The absolute easiest way for you in Joomla would be to create a template override (which you'll do from the admin with a few clicks in the template manager), then throw your code in, and it will run. Then, a little bit at a time, you might learn to separate the parsing of the input in the controller, store / retrieve the data in a model, and leave just the markup in the view.
But are you absolutely sure you need to code for this? There are thousands of (free) extensions out there that might do the job for you with no coding and little configuration, leaving you just a data migration to handle.
Have you had a look at Wordpress yet? In my experience, non-technical people find it easier to administer a wordpress website in comparison to a Joomla website.
When it comes to the menu structures,themes and contact forms and blogs - Wordpress takes the cake.
It would be worth your while to check it out? It might save you hours of frustration?

Joomla: What is a good technical approach for data entry?

I have a background in .NET and Perl, but have found myself working on a project where the customer is mandating Joomla. They would like me to setup a web site that will allow them to enter rental properties, which would likely include a large description field and a number of smaller metadata fields. What is a good way to approach this problem using Joomla? Would I somehow add metadata fields to articles for entry of rental properties? Would I need to create something outside the realm of an article (I'm thinking maybe a component, based on some intro training videos that I have watched on Joomla)?
My HTML and CSS skills are pretty solid, and I have a little bit of experience with PHP, so I don't mind getting my hands dirty. However, I'd like to get an idea of how a Joomla veteran would approach the problem.
Trying to tack meta information on to the articles is almost certainly not the way to go - for a ton of reasons. You are on the right track with a component. Consider designing a component with a back-end database, admin capability and a few front-end data-entry/information screens. The Joomla framework is a little cumbersome to begin with, but ultimately the MVC implementation makes sense and is quite powerful.
This tutorial at the Joomla documentation wiki runs through pretty much everything you need to know from a basic "hello world" to databases and more complex implementations. It sounds like the basic database-enabled example would get you really close to your objective. The example application builds on itself from one tutorial to the next, so it is not at all a waste to start at the beginning and work through it.
And a couple random bits of advice for a Joomla component development beginner:
One thing you may want to research related to data-entry is the JHTML class (the JHTML::_() function in particular). IMO the approach is less than intuitive, but using it is required to leverage built-in widget classes defined for the standard form fields in more advanced applications. It is also important for working with customized form field types and handlers.
Also, the objects returned by JFactory::getApplication() and JFactory::getDocument() have a ton of useful/important functionality when it comes to manipulating the Joomla application (like access to the JInput object). Get familiar with what they can do and remember how to retrieve them.
Good luck.
While building a component from scratch is the most flexible the initial learning curve might be too expensive (time wise) if you're not experienced with PHP and the Joomla framework.
Generally, if we're asked to do something outside our normal areas in Joomla the first place I look is the Joomla Extension Directory (JED).
From that I can usually find a very good solution or a very near match. If it's not a perfect match I can easily extend it (e.g. adding a plugin for a local payment gateway) or work with the developer to add the features we need to the extensions core). Which is probably a good way to start with Joomla, i.e. modifying or extending an existing extension.
You're lucky though, the area you're interested in has it's own category on the JED — the Real Estate section has 15 items listed and most them seem to have good ratings and reviews.
So, I'd start there.
You could make a form plugin for articles to add the extra field or to divide the body field into sections with json or using the profile plugin as a model you could add fields and store them in a separate table.
YOu could repurpose the contact component and use its many fields, or just clone it and change the names.
You could also use an advanced form extension.

How do I migrate a PHP based website to Joomla?

I have a PHP based website, with database connections, form processing, etc, that I need to use a CMS on. I'm trying to use Joomla but after using it for 2 days and reading tutorials on it I'm getting the impression that it's designed to handle static content and that all form processing is to be handled by 3rd party extensions.
Am I getting the wrong impression? Is there a standard way to import a PHP website into a Joomla CMS?
I inherited a Joomla 1.5 site a few months ago, so I was in a similar situation to you - where to begin, with lots of questions about Joomla, its ethos, etc. What I've learnt in the meantime is:
Joomla is very heavily dependent on 3rd-party extensions. Some of these are good, some not so good - evaluation and caution is advised.
Joomla encourages the use of extensions, even for relatively static content. Whether these are full blown 'components', or 'modules', depends on quite how powerful/flexible they need to be.
The MVC architecture that underlies everything has its positives and negatives. On the plus side, if everything is done consistently, there is a good separation of concerns and - in particular - the template system offers good configurability. On the downside, very simple components/modules have an awful lot of complexity - e.g. just in terms of number of files.
Joomla is open-source ... sort of. If your familar with the open-source community, you might be a bit disappointed with Joomla, especially when it comes to 3rd-party extensions. Many of them do not embrace the open source ethos, and try to sell code and/or support so, to reiterate, choose your extensions carefully.
Writing your own extension is fairly simple, especially if you're familiar with PHP. Although the documentation isn't great, there are some gems - in particular, take a look at:
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
http://docs.joomla.org/Accessing_the_database_using_JDatabase
When it comes to forms, I'm still undecided. The site I've inherited uses a third-party extension to manage them (mod_breezingforms), but it has its issues. If you have the luxury of trying out several alternatives, take it.
Run your development site in debug mode. Take a look at database queries. In my own experience, Joomla is very, very demanding on the database. For example, I have some pages that make hundreds of calls to the database with every request. Watch out for this.
At some point, you'll see itemid in the URL and wonder what on earth it is. It refers to a menu item. Menus in Joomla are a bit more general than you might think - they don't necessarily represent a 'menu' and they're quite important. For example, the built-in way to include content on a series of pages is for them to belong to the same menu item, so you might need to create 'fake' menus to house content.
Try MODx Revolution. You can insert your existing php form processors straight into Snippets with next to no modification required, or using the existing FormIt extra. Ajax is easy as pie.
Some docs to get your started:
Overview
Making Sites with MODx
Snippets
edit: apologies if it looks like I've tried to hijack this thread, somehow missed the fact the question is referring specifically to Joomla. MODx is definitely worth a look though ;)
There aren't many CMS's that can handle forms correctly (maybe only the very very generic ones, such as contact me forms, or shopping carts), but for any other purpose, you probably want to use your own PHP script to handle and process the form.
Nothing is stopping you from having a CMS on one part of the page, and your own PHP script on another.
I've once had a website with 2 different CMS's (Wordpress and Joomla), as well as some custom made pages. Slightly trickier to handle, but it's possible.
This question is very broad to answer. There are few step-by-step tutorial available on the internet for this.
From Joomla
Site Ground tutorial
If you follow this head start. You are sure to know a lot of joomla along way and convert your website to the joomla.
BUT, it is easier to build on Joomla rather than convert to it
The first trick to using Joomla effectively is to not over think things and use code that is proven so you don't have to work so hard.
Your existing content can likely be imported to Joomla just be exporting it to a CSV then importing back in to the Joomla article table.
Form handling is incredibly easy. There are dozens of form handling extensions, some of which do more than you will likely ever need. I use ChronoForms most of the time because it can be made to do basically anything once you learn how it works. I also like RSForms if you need non-tech people to be able to create forms on their own.
"Load dynamic data" in to a Joomla article is not very specific, but I'll take a stab at it. If you mean getting user submissions, then there are front end content submission options built in. If you mean loading data from another source, then you can generally use either a module or a plugin to get that data loaded either on the page or actually within the article itself.
Spend a little time getting to know how it works. Learn the difference between a component, plugin, and module and that will help you get a better grasp of what you can do. Joomla is an extensible framework, there's nothing you can't make it do and many things that are already built for you.
I would use JUMI, a Joomla component for embending your own PHP scripts. No scripts modifications are required!

Do I have to work with code when building websites in Drupal

I know HTML and I know some PHP. But I would like to know if professionals do use code a lot when developing websites in Drupal. My experience from Drupal is that you don't have to write any PHP or HTML at al and that you can do everything from the admin menu. But since I'm new with Drupal and currently learning Drupal 7 I would like to know what opinion others have when it comes to Drupal and building websites.
When are you using code in you are using code at all?
As a professional, yes, I use PHP and HTML all the time while working with Drupal. I'd say that roughly 70% of the time is doing PHP, 5% is configuring the modules via Drupal's interface and 25% is testing. The numbers given are, of course, just to let you see how important PHP coding is when I'm doing a Drupal site for a client.
Theme development cannot be done without PHP + HTML + CSS + JavaScript coding. Drupal 7 requires more work than Drupal 6 due to an increased template engine granularity.
If there's no contrib module that suits you, you need to write your own or tweak an existing one (PHP and SQL, sometimes JavaScript). This is true especially of Drupal 7, as there are still many modules from D6 that have no stable version for D7.
Once you get more experienced, you'll come to this conclusion:
Drupal carries you 90% of the way, and the remaining 10% is up to you.
Not every module will solve the particular problems of your project.
The upside is the API is pretty thorough and most (just about anything) is solvable in a simple module, template override, or hook.
Unless you are building simple sites, you will probably do some coding. At the very least you will modify existing code to make changes to existing modules. More likely you may need to create new modules. Even though existing modules about, finding one that always does exactly what you want may be difficult.
Short answer: Yes, you will have to write code.
Here's why. Drupal, on it's own is all well and good. It does what it needs to do, however when setting up a website professionally you can't use the default themes, most clients wont want this. Quite a lot of clients would prefer a unique theme, which involves you creating one. This would involve some PHP programming in order to get it working with Drupal.
Not only that, but writing and or customizing Drupal plugins will most likely be necessary.
In most, if not all professional environments the 'default' just isn't enough.
I'm on the newer end of the Drupal spectrum. I've built about five sites. I built my first several sites using little or no PHP (I did use ample CSS and HTML markup). So I would say that it is possible to build in Drupal with little understanding of PHP.
But. Drupal is a complex system which seems to favor developers, as opposed to end users who may favor the click together approach (although this is something that may be changing).
I've found that the more I understand the codebase and the API, the easier it is to get what I want without having to wade through a giant body of contributed modules. The repository of contributed material in Drupal is fantastic and covers a lot of ground, but isn't always actively maintained and may not do just what you want.
I think a good place to start is understanding the hook system, the Form API, and the menu system, as well as how to generate queries. That's all more back-end stuff. On the front end: the template system, template.php and the preprocess and theming functions.
Checkout api.drupal.org.
No.
Drupal and its 90 million modules love checkboxes and dropdowns and textfields etc etc to set everything up. For most features, you won't need PHP and only very little HTML.
I consider this a downside and a flaw, but some like it.

Categories