Project

General

Profile

1 1158 Luisehahne
<?php
2 1239 Luisehahne
/****************************************************************************
3
* SVN Version information:
4
*
5
* $Id$
6
*
7
*****************************************************************************
8
*                          WebsiteBaker
9
*
10
* WebsiteBaker Project <http://www.websitebaker2.org/>
11
* Copyright (C) 2009, Website Baker Org. e.V.
12
*         http://start.websitebaker2.org/impressum-datenschutz.php
13
* Copyright (C) 2004-2009, Ryan Djurovich
14
*
15
*                        About WebsiteBaker
16
*
17
* Website Baker is a PHP-based Content Management System (CMS)
18
* designed with one goal in mind: to enable its users to produce websites
19
* with ease.
20
*
21
*****************************************************************************
22
*
23
*****************************************************************************
24
*                        LICENSE INFORMATION
25
*
26
* WebsiteBaker is free software; you can redistribute it and/or
27
* modify it under the terms of the GNU General Public License
28
* as published by the Free Software Foundation; either version 2
29
* of the License, or (at your option) any later version.
30
*
31
* WebsiteBaker is distributed in the hope that it will be useful,
32
* but WITHOUT ANY WARRANTY; without even the implied warranty of
33
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
34
* See the GNU General Public License for more details.
35
*
36
* You should have received a copy of the GNU General Public License
37
* along with this program; if not, write to the Free Software
38
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
39
****************************************************************************
40
*
41
*                   WebsiteBaker Extra Information
42
*
43
*
44
*
45
*
46
*****************************************************************************/
47
/**
48
 *
49
 * @category     modules
50
 * @package      news
51
 * @author       Ryan Djurovich
52
 * @copyright    2004-2009, Ryan Djurovich
53
 * @copyright    2009-2010, Website Baker Org. e.V.
54
 * @version      $Id$
55
 * @platform     WebsiteBaker 2.8.x
56
 * @requirements >= PHP 4.3.4
57
 * @license      http://www.gnu.org/licenses/gpl.html
58
 *
59
 */
60 1158 Luisehahne
61
if(defined('WB_URL')) {
62
63
    function create_new_post($filename, $filetime=NULL, $content )
64
    {
65
    global $page_id, $section_id, $post_id;
66
	// The depth of the page directory in the directory hierarchy
67
	// '/pages' is at depth 1
68
	$pages_dir_depth = count(explode('/',PAGES_DIRECTORY))-1;
69
	// Work-out how many ../'s we need to get to the index page
70
	$index_location = '../';
71
	for($i = 0; $i < $pages_dir_depth; $i++)
72
    {
73
		$index_location .= '../';
74
	}
75
76
	// Write to the filename
77
	$content .='
78
define("POST_SECTION", $section_id);
79
define("POST_ID", $post_id);
80
require("'.$index_location.'config.php");
81
require(WB_PATH."/index.php");
82
?>';
83
	if($handle = fopen($filename, 'w+'))
84
    {
85
    	fwrite($handle, $content);
86
    	fclose($handle);
87
        if($filetime)
88
        {
89
        touch($filename, $filetime);
90
        }
91
    	change_mode($filename);
92
    }
93
    }
94
95
    // read files from /pages/posts/
96
    if( !function_exists('scandir') ) {
97
        function scandir($directory, $sorting_order = 0) {
98
            $dh  = opendir($directory);
99
            while( false !== ($filename = readdir($dh)) ) {
100
                $files[] = $filename;
101
            }
102
            if( $sorting_order == 0 ) {
103
                sort($files);
104
            } else {
105
                rsort($files);
106
            }
107
            return($files);
108
        }
109
    }
110
111
    $target_dir = WB_PATH . PAGES_DIRECTORY.'/posts/';
112
	$files = scandir($target_dir);
113
	natcasesort($files);
114
115
		// All files in /pages/posts/
116
		foreach( $files as $file )
117
        {
118
            if( file_exists($target_dir.$file) && $file != '.' && $file != '..' && $file != 'index.php')
119
            {
120
                clearstatcache();
121
                $timestamp = filectime ( $target_dir.$file );
122
                $lines = file($target_dir.$file);
123
                $content = '';
124
                // read lines until first define
125
                foreach ($lines as $line_num => $line) {
126
                    if(strstr($line,'define'))
127
                    {
128
                      break;
129
                    }
130
                    $content .= $line;
131
                }
132
133
                create_new_post($target_dir.$file, $timestamp, $content);
134
            }
135
136
        }
137
// Print admin footer
138
$admin->print_footer();
139
}
140
?>