I am primarily a front-end developer, that means I like to design the websites myself, including scripts, CSS and HTML.
But popular CMSs won't let me to do that. They generate completed webpages as they need to. But I am not able to override the outcome and I have to use the very limiting default pages.
Once I discovered a small CMS called MNews, which was really useful. It let me to write all the pages myself, and at some point, where I wanted to include an article, I wrote a small PHP script:
<div id="article">
<?php
$article_id = 12;
include mnews/inport_article.php;
?>
</div>
And it included then the article with formatting I've set earlier in the setting in the CMS.
However, the customers started to complain that the used CMS is difficult and that they are used to WordPress. But I can't use WordPress because of the non-ability to design the pages myself.
So, do you know another similar CMS, which would let me to do the design and including myself?
I have used Wordpress to create my own pages in PHP. There are two very easy ways to do that.
You can create a shortcode which allows you to run your own PHP command on a page.
If you want to have complete control over the page, you can create your own page template. This allows you to build an entire page from scratch, whilst still having access to Wordpress' features.
Related
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?
I'm developing my personal website and want a "blog section" in the main page. I want to use a CMS only to manage the content, but not displaying it in the page with a pre-built template.
What I asking here is if there is a CSM that provides the interface for managing the content, adding, updating, deleting and the main part, an easy way to retrieve these informations with database.
I already did this one time with Wordpress, but maybe there is something more appropriate.
I don't know if I'm clear, so, I want to manage the content with CMS, but display in my own ways.
I've not used it, but ages ago I came across Symphony CMS (not to be confused with Symfony, the PHP framework). Symphony uses XML throughout, so once you've edited your content, it can be consumed+cached by pretty much anything.
Have you ever heard of Mut8. The application manages your content and you build your template by using their special css classes for editing. It's pretty good.
http://mut8.me
You could use Joomla and build your own template.
Installing Joomla would take less than 5 minutes. Give it a try !
Joomla Template Tutorial: Joomla Template Tutorial from NetTuts
In case you want to use another programming language, you could try Python and the Django CMS.
It lets you build a "customized" back-end in a few minutes.
I'm creating a website which has a public-facing side, which I want selected users to be able to edit like in a CMS, but I also want to create a private intranet side which is made up of pages written in PHP by me to perform certain functions, but are not part of the CMS as such.
So basically I want:
- Some CMS-ified pages which are user-editable
- Some custom pages which use the CMS templating engine, authentication etc..
Which would be the best CMS for this?
Drupal is really good when you need this kind of flexibility. You can easily configure it to link to other pages via the menu system and TBH, it's so flexible, you'll find that anything you would want to hand code for the intranet can be done by installing and configuring existing third party modules, with the option of writing a custom module if you really have to.
We do developments like this and bring all of the intranet stuff into Drupal by putting code into a custom module and having the functions called by simple forms made in Drupal. To see data from internal DBs, tell Drupal the DB details in the config, then use the views module to make lists etc.
Not sure if it's the best, but Drupal is a very good candidate based on your description.
Your custom pages can be implemented in a module (PHP code). Specific URLs can be declared as being handled by your module and the rest of the CMS will not get in the way if you don't want to. From the point of view of your code, Drupal can be seen as a kind of framework.
I might use drupal. From what I've done with it, it seems very customizable. It's more flexible and seems more clean and secure than something like joomla. There are plenty of addon's. I haven't done enough with it to get to the point where I was interfacing my own PHP pages with it, but if I had to try anyone that's what I would go with.
I, however, personally just make my own CMS. It might be more work, but then everything is the way that I want it to be. It depends on how much you want them to be able to edit. For example, I was making a website for a shop, and so I created a place where they could add and remove items, which wasn't that difficult, especially since it was database based. To be able to do things like change menus and appearance and such might be harder...probably look towards something like a CMS.
I'm developing a car buying and selling website in php, currently what i'm planning is all the pages and the blog will be done using wordpress and other functionalities i'll develop as independent application and will connect it with wordpress using the function.php file. Only user management and posting for page and blog will be done by wordpress.
Including the database table will be custom. Is this a good idea? Will i get into any bottleneck?
Admin will only be uposting to news. Users will post their cars for sale after login. They can search and rate also...
To answer your question, let's look at the most common options:
Build from Scratch
Build using Framework such as Zend, Cake, etc...
Build using Content Manager such as Joomla, Drupal, etc..
Build using WordPress
Build from Scratch
This is the most time consuming. The benefits include complete control over the database and code - perhaps giving improvements in speed and resource management. The cons are the time to develop with additional time needed for testing and debugging (since all of the code is untested).
Build using Framework
A framework gives you the pieces that you need to build the site. It includes many of the benefits from the build from scratch option without the concern of 100% untested code. The only downside is having to take time to learn the framework and its gotchas (they all have little things that will bite during the learning curve).
Build using Content Manager
WordPress is not a true CMS like Drupal or Joomla. A CMS gives the ability for users to edit pages (with permission) while allowing customization via plug-in or code change. Like WP a CMS may have plug-in functionality to do everything you need. However, if there is a problem then you may find yourself debugging someones plug-in code.
Build using WordPress
WP is a blogging platform. It is now being used in a more CMS like fashion with the aide of plug-ins and developer know-how. If you have a news site, blog, media site, etc... then WP is excellent. If you are creating a site for buying and selling then there are plug-ins to do that. However, you still have the same problems of the CMS in that if there is a bug you may have to figure out plug-in code to fix.
Conclusion:
The idea of using anything other than write from scratch is to speed up development time and make the end result more solid in terms of pre-tested code. WP is a great platform and could serve you well but if the only thing being posted is news then a simple PHP blog class may do the trick.
If you are going to spend allot of time customizing WP (especially the database) then I would recommend using a Framework like Cake or Zend and writing most of it yourself. If you are writing a site to display media then WP is a no brainer.
What do you mean by "connect it with wordpress using the function.php file"?
I've delevoped http://storelocator.no on top of WP.
I've created WP templates which have custom code and retrieves data from it's own tables. This way I can create pages in WP and select which template to use. Good for page navigation.
As for pages that is completely separeted from WP, but you still want to use WP functions, just include the following at the top of the PHP file:
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');
You can use WP function to validate data instead of creating your own validation code (you can save time here). See available functions here: http://codex.wordpress.org/Function_Reference/get_template_directory_uri
I'm building a new website which has one core application and many content pages. Content pages are mostly dynamic and I require a way to manage this dynamic content on a regular basis. The core application's main functionality is a 3 step process or reading user data (input page), reading data from MySQL (product page) and submitting an application to an email address (application page).
Ideally I would like to build the core application in regular PHP and leverage Drupal for its content management capabilities. Can Drupal and regular PHP be integrated as I suggest easily? My feeling is that coding the core application as a Drupal module(s) will add layers of complexity that could be difficult to code from the outset and maintain later on as the system matures - so I would really like to just use regular PHP.
Let me explain where dynamic content (managed by the CMS) intersects with the core application:
Dynamic content such as FAQ data is used both on the 'normal' help pages and also within a mini-feed displayed within core application pages down a right hand side column. In this column, 3 random questions are pulled from the database and displayed as a feed. When users click on FAQ question they are not taken away from the core application product page but are instead shown data in a pop-up window displaying the question and answer. In addition, users can browse other questions and answers through a simple navigation menu within this popup. There are 3 such like feeds as I describe above that I require on the core application product page.
So, what is the ideal solution here in terms of 'keeping things simple' for both the management of dynamic content and the ease of coding the core application? Can 'regular PHP' and Drupal co-exist 'peacefully'? If so, how is this technically possible? Because there is some content managed by Drupal contained within core application pages, can the core application still be coded in regular PHP?
Any advice / suggestions?
Thank you!
Jim.
This is part of a post I submitted few years ago. Unfortunately the linked article is long gone, but it might still be relevant for your needs:
Importing old-style standalone PHP scripts into Drupal system
Drupal system is a very strong CMS, but taking an existing PHP site and trying to force it on Drupal might be a hard thing to do.
The "right" way to convert a site into Drupal is to "Drupalize" it, which means to do everything "the Drupal way", which is really the right thing to do - but is some cases not everybody agrees about that.
I had an example with a company that has many HTML/PHP based sites. They heard about the flexibility and strength of Drupal, and decided it is their choice for the revolution. But, on the other hand, they want not to change anything, and that I will do it as fast as possible.
The "right way" to do it was to break each PHP script they have to its pieces, find the commons, create the right methodology with existing Drupal modules, and finish the gaps with my own additional module.
But this is not what they asked me to do - instead, I looked for a way to just import the existing PHP script into Drupal environment.
Searching for am existing solution brought me to a proof-of-concept described by Dan Morrison. In the bottom line it uses PHP output buffering commands it order to collect everything the old script does, and then to display it as part of a Drupal module. In my case I had to make some small modifications (mainly to pass variables from the request to the PHP in the relevant scope), but in the bottom line it did exactly what I needed.
Well, almost... In other cases, in which I wanted to enjoy from Drupal's Form API, I handled it differently, as I will describe later on.
It sounds like you are asking about two things:
Including Drupal content in a custom-built PHP application.
Displaying Drupal content in a pop-up window from the PHP application.
There are a number of different levels of integration- if your need is as simple as pulling content into a page then you may be able to simply create a view (http://drupal.org/project/views) with that content from Drupal that you can make available to and then include it in your web app.
If you are looking for a tighter integration between the 2 including sharing of users, sessions, etc... then it is likely also "possible" but would take additional information to understand what you need.