Jump to content

CMS using template from a mysql database


bigjoe11a
 Share

Recommended Posts

What I'm looking for is a sample that will show me how to setup a CMS using templates from a mysql database. I been looking on google.com and haven't fount any thing yet.

 

I'm looking for a way on how to read the template from the database and then display it.

 

 

Link to comment
Share on other sites

That doesn't help at all.

 

With a CMS, what you do is create your page (as a php page), style it using all of your html as normal. You can get away with only creating one .php file, and have the content loaded into that php file from the database. The pages are effectively created dynamically, and loaded into your temple php file.

 

If you don't already know how to do it, then you need to look into a free solution of wordpress or drupal, or you need to pay someone to do it. I don't think anyone will spend time to explain step by step how to do it in a forum like reply. Well I wouldn't anyway.. I'll help you gix problems as you come across them, but I won't tell you how to start, how to expand, and how to finish it..

 

Denno

Link to comment
Share on other sites

Are you wanting to code your own or use something you can install and use?  There's tons of CMS out there - wordpress, drupal, joomla that can get you started easily.  Otherwise, if you want to code your own - I recommend getting started with the tutorials: http://www.phpfreaks.com/tutorials and read the forums and learn it from scratch.

Link to comment
Share on other sites

That doesn't help at all.

 

With a CMS, what you do is create your page (as a php page), style it using all of your html as normal. You can get away with only creating one .php file, and have the content loaded into that php file from the database. The pages are effectively created dynamically, and loaded into your temple php file.

 

If you don't already know how to do it, then you need to look into a free solution of wordpress or drupal, or you need to pay someone to do it. I don't think anyone will spend time to explain step by step how to do it in a forum like reply. Well I wouldn't anyway.. I'll help you gix problems as you come across them, but I won't tell you how to start, how to expand, and how to finish it..

 

Denno

 

Ok, Let me see is I can try and explain this. I'm not sure how too. Since I never did this kind of PHP scripting before.

 

Ok, I have a web site that I been coverting over to classes. Ok. Well the idea is to get an idea about how to add templates to it. so that they can be loaded in and displayed.

 

Sorry, I don't know of any other way to explain this too. you. It you don't know what a template is or how to load it so it can be display. Then I registered at the wrong web site.

 

Joe

 

Link to comment
Share on other sites

Are you wanting to code your own or use something you can install and use?  There's tons of CMS out there - wordpress, drupal, joomla that can get you started easily.  Otherwise, if you want to code your own - I recommend getting started with the tutorials: http://www.phpfreaks.com/tutorials and read the forums and learn it from scratch.

 

If this is what I wanted I won't have all ready install this and I wouldn't be asking for help.

I want to add this option to my own projects for my web site.

 

 

 

Link to comment
Share on other sites

This is the best PHP site that I've found. If you're not getting your answer, then maybe you're not asking the right question.

 

You're not going to find help by insulting the forum.

 

Denno

 

Denno, If I wanted to insult the forums section I never would have registered. The problem is that you should all ready know what a template is and what a mysql database is.

 

The templates are loaded from the database and then display on the page. There's no other way to explain this.

Link to comment
Share on other sites

Create a table, write the code to query the correct template and then output it....  That's kind of a lot of info for a forum topic - I recommend http://www.phpfreaks.com/tutorials to get started.

 

Not really, How ever maybe what I need is a advance PHP forums section. Any way thanks, I all ready tried there. and there's nothing about using templates in a mysql database or even how to display them

 

 

Link to comment
Share on other sites

From what I get out of this you think you are supposed to save the entire template in a table or something?

 

Make folders naming each of your different templates/themes, and make a table that just refers to the location of the folder for that theme. More like options can do in the table, for users, theme selection and so on.

 

When the template is called for it would then look at mysql for which theme is selected by the file location, and then display the proper files from the correct theme folder for that user.

Link to comment
Share on other sites

Yes, That's the idea. It's called a template system in PHP. This forum is in PHP and it has templates that are added to the mysql database that it reads and then displays that page.

 

This text box is a template too. It reads it from a mysql database and then displays it so you can type in the text box. A template is bothing but HTML or PHP.

 

 

 

Link to comment
Share on other sites

This forums 'templates' are coded in php and stored on the filesystem like any other php file.

 

Template systems are generally regarded as another layer that isn't needed. They just slow things down.

 

Anyway, if you wanted to store 'templates' in a database, just go ahead and do so. They are in no way different to any other data.

 

Mind telling us where exactly you are stuck?

Link to comment
Share on other sites

So where are you stuck, exactly? Post your current code and a description of the problems you're having, along with any errors that are being returned when the code executes.

 

Ok, That's where I'm stuck at, getting started. See the page I have set up doesn't have any thing like this. That's why I wanted to add it. So I can add options and disable and enable things right from the admin page.

 

As for doing the settings. I think I can do that. As for the template setup. I'm all so lost.

I do know that I have to make a table in the mysql database

 

DB Name : mapnet

Table Name : templates

-->ID

-->template_name

-->text

 

The template name will hold the name of the template to load.

The text is what holds the template as HTML code.

 

sample

template_name : header

text:

<table cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor="$THEME[bordercolor]">

<tr>

<td>

<table border="0" cellspacing="0" cellpadding="0" width="100%">

<tr class="category">

<td><strong><font color="yellow">HEADER</font></strong></td>

</tr>

<tr>

<td bgcolor="black">

<font>HEADER</font>

</td>

</tr>

</table>

</td>

</tr>

</table>

 

The above HTML using a HTML Table is just a sample.

 

Now the problem is. Is how to load this in so that it can be displayed.

 

 

 

 

Link to comment
Share on other sites

Now the problem is. Is how to load this in so that it can be displayed.

 

You can't store php in a database and have it executed. Not efficiently or securlly anyway. So, place holder like this... $THEME[bordercolor] would need to be replaced with something like {bordercolor}.

 

All you need to then is store the template in the database just like anything else. When you retrieve it, you simply replace your placeholders with there data. eg;

 

$bordercolor = '#ddd';
$sql = "SELECT template_data WHERE template_name = 'foo' LIMIT 1";
if ($result = mysql_query($sql)) {
  if (mysql_num_rows($result)) {
    $row = mysql_fetch_assoc($result);
    $template = str_replace('{bordercolor}', $bordercolor, $row['template_data']);
    echo $template;
  }
}

 

That's the basics of it. You might end up needing to use preg_replace as replacements become more complex.

 

I'll say it again though. Templates & template engines are IMO a waste of resources.

Link to comment
Share on other sites

You have me all so lost. Let me show you some thing, Ok. I have 2 web sites and both of then use templates from a mysql database. In my forums section. I was reading threw some of the code. and well it doesn't match what you have or any where near it.

 

The function below is what loads the templates. Ok. keep reading.

function loadtemplates() {
    global $db, $table_templates;

    $num = func_num_args();
    if ($num < 1) {
        echo 'Not enough arguments given to loadtemplates() on line: '.__LINE__;
        return false;
    } else {
        $namesarray = array_unique(array_merge(func_get_args(), array('header', 'css', 'error', 'footer', 'footer_querynum', 'footer_phpsql', 'footer_totaltime', 'footer_load')));
        $sql = "'".implode("', '", $namesarray)."'";
        $query = $db->query("SELECT name, template FROM $table_templates WHERE name IN ($sql)");
        while ($template = $db->fetch_array($query)) {
            templatecache(X_CACHE_PUT, $template['name'], $template['template']);
        }
    }
}

 

Now the code below gets added to the page you need to use the templates on. So lets say if I have an index.php and I needed the templates for the index.php it would look some thing like this

 

loadtemplates(
'template_header',
'template_navbar',
'template_rightcolumn',
'template_content',
'template_footer'
);

 

This I hope will give you a better idea then it has with me. I just don't under stand any of this. Then again I been a PHP coder for over 4 years and I think it's about I learn this.

 

Now in a folder called include. there will be a file called header.php. This is used for ?, I don't know. That I don't get, I'm still studying it.

 

I think it loads the CCS and any thing else. that may be required. Like I said I still trying to under stand it and that's not easy.

 

Joe

 

 

Link to comment
Share on other sites

I think at a fundamental level your design is flawed.  Like Thorpe and phpfreak said, CMS' don't tend to store their views in a db.  Rather, they're saved as simple .php files in the filesystem itself.  These view files are constructed in such a way to expect certain data, which they parse and display.  Views are supposed to be very simple.  This is slightly different than templating as the code used to display the data is pure PHP, so there's no text replacement necessary.

 

In other words, you'd have something like:

 

<?php include('somemodel.php'); // your data ?>

<!doctype html>
<html lang="en-us">
   <head>
      <title>Example</title>
   </head>

   <body>
      <table>
         <?php foreach ($model->data as $value)
             {
                echo "<tr><td>$value</td></tr>";
             }
          ?>
       </table>
   </body>

</html>

 

Keep in mind, this is a very simple and canned example.

 

What you should do is take a look at how the pros do it.  Learn some MVC frameworks (Code Igniter, Kohana, Zend Framework), or a CMS or two (Joomla) to see how it's actually done.

Link to comment
Share on other sites

Thanks Night, Your not getting the idea. I'm looking into adding template system to the project that I'm working on how.

 

See a Template can not be a PHP page. Ok, A template is all nothing but HTML with some CSS. Like using front page.  You would use front page to create a form. Or a HTML page. Then you would insert that into a mysql database. and Then you would display that form when you needed it. This option is added in all types of forums Like XMB, SMF and many others too.

 

I'm sorry there is no other way to explain this so you can under stand.

 

If your run a forums section. In the Admin Section. There should be an option to create, edit and delete Templates. Try looking at that if you have that option

 

Joe

 

Link to comment
Share on other sites

This thread is more than a year old. Are you sure you have something important to add to it?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.