204 |
204 |
/**********************************************************
|
205 |
205 |
* - core-module menu_link
|
206 |
206 |
*/
|
|
207 |
echo "<br /><u>Convert menu_links</u><br />";
|
207 |
208 |
// create table
|
208 |
209 |
$table = TABLE_PREFIX ."mod_menu_link";
|
209 |
210 |
$database->query("DROP TABLE IF EXISTS `$table`");
|
... | ... | |
220 |
221 |
$pages = array();
|
221 |
222 |
$table_p = TABLE_PREFIX.'pages';
|
222 |
223 |
$table_s = TABLE_PREFIX.'sections';
|
223 |
|
$query_page = $database->query("SELECT p.* FROM $table_p AS p, $table_s AS s WHERE p.page_id=s.page_id AND s.module = 'menu_link'");
|
|
224 |
$table_mm = TABLE_PREFIX ."mod_menu_link";
|
|
225 |
|
|
226 |
$query_page = $database->query("SELECT p.*, s.section_id FROM $table_p AS p, $table_s AS s WHERE p.page_id=s.page_id AND s.module = 'menu_link'");
|
224 |
227 |
if($query_page->numRows() > 0) {
|
225 |
228 |
while($page = $query_page->fetchRow()) {
|
226 |
229 |
$pages[$page['page_id']]['page_details'] = $page;
|
... | ... | |
258 |
261 |
}
|
259 |
262 |
}
|
260 |
263 |
}
|
|
264 |
unset($files); unset($dirs);
|
261 |
265 |
// try to convert old menu_links to new ones
|
262 |
|
$table_p = TABLE_PREFIX.'pages';
|
263 |
|
$table_s = TABLE_PREFIX.'sections';
|
264 |
|
$table_mm = TABLE_PREFIX ."mod_menu_link";
|
265 |
266 |
foreach($pages as $p) {
|
266 |
267 |
$page = $p['page_details'];
|
267 |
268 |
$file_content = $p['file_content'];
|
268 |
269 |
$filename = $p['filename'];
|
269 |
270 |
$link = $p['page_details']['link'];
|
270 |
|
$page_trail = $p['page_details']['page_trail'];
|
|
271 |
$parent_pid = $p['page_details']['parent'];
|
271 |
272 |
$page_id = $p['page_details']['page_id'];
|
272 |
|
//var_dump($page);var_dump($file_content);var_dump($filename);var_dump($link);var_dump($page_trail);
|
|
273 |
$section_id = $p['page_details']['section_id'];
|
|
274 |
$menu_title = $p['page_details']['menu_title'];
|
273 |
275 |
|
274 |
|
// - aus wb_pages.page_trail aktuelle Position bestimmen
|
275 |
|
// - daraus link bestimmen und in wb_pages eintragen
|
276 |
|
// - Datei in pages wenn nötig verschieben
|
277 |
|
//ok - Über $link die page_id der Zielseite feststellen (--> $target_page_id), und nach mod_menu_link speichern, anchor leer.
|
278 |
|
if($query_pid = $database->query("SELECT p.page_id, s.section_id FROM $table_p AS p, $table_s AS s WHERE p.page_id = s.page_id AND p.link = '$link' AND p.page_id != '$page_id'")) {
|
|
276 |
// calculate link from wb_pages.parent and menu_title
|
|
277 |
$cur_link = '';
|
|
278 |
if($parent_pid != '0' && $query_link = $database->query("SELECT link FROM $table_p WHERE page_id = '$parent_pid'")) {
|
|
279 |
$res = $query_link->fetchRow();
|
|
280 |
$cur_link .= $res['link'];
|
|
281 |
}
|
|
282 |
$cur_link .= '/'.page_filename($menu_title);
|
|
283 |
echo "found: $cur_link<br />";
|
|
284 |
$database->query("UPDATE $table_p SET link = '$cur_link' WHERE page_id = '$page_id'");
|
|
285 |
echo mysql_error()?'mySQL: '.mysql_error().'<br />':'';
|
|
286 |
|
|
287 |
$new_filenames[$page_id]['file'] = WB_PATH.PAGES_DIRECTORY.$cur_link.PAGE_EXTENSION;
|
|
288 |
$new_filenames[$page_id]['link'] = $cur_link;
|
|
289 |
$new_filenames[$page_id]['menu'] = $menu_title;
|
|
290 |
|
|
291 |
// delete old access files in pages
|
|
292 |
if(file_exists($filename)) {
|
|
293 |
if(!is_writable(WB_PATH.PAGES_DIRECTORY.'/')) {
|
|
294 |
echo "Cannot delete access file in pages/ - permission denied ($FAIL)<br />";
|
|
295 |
} else {
|
|
296 |
unlink($filename);
|
|
297 |
}
|
|
298 |
}
|
|
299 |
|
|
300 |
// make entry in wb_mod_menu_link
|
|
301 |
if($query_pid = $database->query("SELECT page_id FROM $table_p WHERE page_id != '$page_id' AND link = '$link'")) {
|
279 |
302 |
$res = $query_pid->fetchRow();
|
280 |
303 |
$target_page_id = $res['page_id'];
|
281 |
|
$section_id = $res['section_id'];
|
282 |
304 |
$database->query("INSERT INTO $table_mm (page_id, section_id, target_page_id, anchor) VALUES ('$page_id', '$section_id', '$target_page_id', '0')");
|
283 |
|
echo mysql_error()?mysql_error().'<br />':'';
|
|
305 |
echo mysql_error()?'mySQL: '.mysql_error().'<br />':'';
|
284 |
306 |
}
|
285 |
|
//var_dump("-------------------");
|
286 |
|
// This part is still missing
|
|
307 |
}
|
|
308 |
// create new access files in pages/; make directories as needed
|
|
309 |
foreach($pages as $p) {
|
|
310 |
$page_id = $p['page_details']['page_id'];
|
|
311 |
$filename = $new_filenames[$page_id]['file'];
|
|
312 |
$menu_title = $new_filenames[$page_id]['menu'];
|
|
313 |
$link = $new_filenames[$page_id]['link'];
|
|
314 |
$content = $p['file_content'];
|
|
315 |
$level = $p['page_details']['level'];
|
|
316 |
$depth = '';
|
|
317 |
for($i=0; $i<=$level; $i++)
|
|
318 |
$depth .= '../';
|
|
319 |
$content = preg_replace('#((../)+)config\.php#', "{$depth}config.php", $content);
|
|
320 |
while(file_exists($filename)) {
|
|
321 |
echo "Cannot create '$filename' - file exist. Renamed to: ";
|
|
322 |
$menu_title .= '_';
|
|
323 |
$link .= '_';
|
|
324 |
$filename = WB_PATH.PAGES_DIRECTORY.$link.PAGE_EXTENSION;
|
|
325 |
echo "$filename<br />";
|
|
326 |
$database->query("UPDATE $table_p SET link='$link', menu_title='$menu_title' WHERE page_id = '$page_id'");
|
|
327 |
echo mysql_error()?'mySQL: '.mysql_error().'<br />':'';
|
|
328 |
}
|
|
329 |
// check if we need to create a subdir somewhere
|
|
330 |
$dirs = array();
|
|
331 |
while(dirname($link) != '/') {
|
|
332 |
$link = dirname($link);
|
|
333 |
$dirs[] = WB_PATH.PAGES_DIRECTORY.$link;
|
|
334 |
}
|
|
335 |
foreach(array_reverse($dirs) as $dir) {
|
|
336 |
if(!file_exists($dir)) {
|
|
337 |
mkdir($dir, OCTAL_DIR_MODE);
|
|
338 |
}
|
|
339 |
}
|
|
340 |
// create new file in pages/
|
|
341 |
if($handle=fopen($filename, "wb")) {
|
|
342 |
if(!fwrite($handle, $content)) {
|
|
343 |
echo "Cannot write to $filename - ($FAIL)<br />";
|
|
344 |
}
|
|
345 |
fclose($handle);
|
|
346 |
} else {
|
|
347 |
echo "Cannot create $filename - ($FAIL)<br />";
|
|
348 |
}
|
|
349 |
|
|
350 |
}
|
287 |
351 |
|
288 |
352 |
|
289 |
|
}
|
290 |
353 |
|
291 |
|
|
292 |
354 |
//******************************************************************************
|
293 |
355 |
//Start of upgrade script for the form modul
|
294 |
356 |
//******************************************************************************
|
upgrade-script.php: added code to upgrade menu_links