WebsiteBaker Support (2.8.x) > Diskussion über WB (closed)
Alle Section_IDs einer Seite auflisten
Waldschwein:
Gut.
Sektion-Anker (WB Optionen!) ist auf Standard "wb_" eingestellt.
Meine round index.php:
--- Code: ---<?php
// prevent this file from being accessed directly
if (!defined('WB_PATH')) die(header('Location: ../../../index.php'));
// TEMPLATE CODE STARTS BELOW
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php
echo defined('DEFAULT_CHARSET') ? DEFAULT_CHARSET : 'utf-8'; ?>" />
<meta name="description" content="<?php page_description(); ?>" />
<meta name="keywords" content="<?php page_keywords(); ?>" />
<?php
// automatically include optional WB module files (frontend.css, frontend.js)
if (function_exists('register_frontend_modfiles')) {
register_frontend_modfiles('css');
register_frontend_modfiles('jquery');
register_frontend_modfiles('js');
} ?>
<link rel="stylesheet" type="text/css" href="<?php
echo TEMPLATE_DIR; ?>/template.css" media="screen,projection" />
<link rel="stylesheet" type="text/css" href="<?php
echo TEMPLATE_DIR; ?>/print.css" media="print" />
<title><?php page_title('', '[WEBSITE_TITLE]'); ?></title>
</head>
<body>
<table cellpadding="0" cellspacing="0" border="0" align="center" class="main" width="750">
<tr>
[...]
<td class="content" width="600" rowspan="2">
<?php frontend_edit();
page_content(); ?>
</td>
</tr>
</table>
</body>
</html>
--- End code ---
Meine andreas00 index.php:
--- Code: ---<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="<?php page_description(); ?>" />
<meta name="keywords" content="<?php page_keywords(); ?>" />
<link rel="stylesheet" type="text/css" href="<?php echo TEMPLATE_DIR; ?>/andreas00.css" media="screen,projection" />
<link rel="stylesheet" type="text/css" href="<?php echo WB_URL; ?>/include/jquery/plugins/jquery-ui.css" media="screen,projection" />
<?php
if(function_exists('register_frontend_modfiles')) {
register_frontend_modfiles('css');
} ?>
<title><?php page_title(); ?></title>
<script language="JavaScript" type="text/javascript">
//<![CDATA[
var URL = '<?php print WB_URL ?>';
var WB_URL = '<?php print WB_URL ?>';
var TEMPLATE_DIR = '<?php print TEMPLATE_DIR ?>';
//]]>
</script>
<script type="text/javascript" src="<?php echo WB_URL;?>/include/jquery/jquery-min.js"></script>
<script type="text/javascript" src="<?php echo WB_URL;?>/include/jquery/jquery-ui-min.js"></script>
<script type="text/javascript" src="<?php echo WB_URL;?>/include/jquery/jquery-insert.js"></script>
<?php
if(function_exists('register_frontend_modfiles')) {
register_frontend_modfiles('js');
} ?>
</head>
<body>
<div id="wrap">
[...]
<?php ob_start(); // start output buffer
frontend_edit();
page_content(2); // call content
$foo=ob_get_contents(); // put outputbuffer in $foo
ob_end_clean(); // clear outputbuffer
[...]
?>
</div>
</body>
</html>
--- End code ---
Die zweite ist die "kein register_modfiles.j query Lösung, da WB 2.8.0.
Die erste ist die komfortable >= WB 2.8.1er.
Wichtig ist die Reihenfolge im <head>
1.) Alles CSS
2.) Alles jQuery
3.) Alles JavaScript
Gruß Michael
Stefek:
Hallo Michael,
ziemlich cooler Ansatz.
Ich habe nicht viel Zeit zum Testen, aber ansatzweise funktioniert es.
Einfach als Feedback:
Die Sections lassen sich eineln in einem "Modal" aufmachen und editieren. Beim Klick auf "Abbruch", komme ich zurück auf die Seite - Beim Klick auf "Speichern", komme ich (leider) ins Backend, nachdem die Modal-Box verschwunden ist.
Leider wird auch nicht ALLES aus dem Backend_Theme in der Modal-Box Ansicht rausgefiltert (siehe ScreenShot).
Das gefällt mir aber sehr vom Ansatz her!
//EDIT: bei mehreren Sections wird für die Links jeweils die letzte im Array genommen (?)
Gruß,
Stefek
[gelöscht durch Administrator]
Waldschwein:
Hallo Stefek,
danke für das Feedback.
Das mit dem letzten Link im Array ist bekannt - leider hat es bisher an meinen bescheidenen Programmier-Kenntnissen gelegen, dass ich keine Lösung hierfür gefunden habe.
Ich stelle einfach mal einen Codeauszug hier rein, evtl. kennt jemand die Lösung dazu.
--- Code: ---<?php
if (!function_exists('sections_on_page'))
{
function sections_on_page()
{
global $wb, $database, $HEADING;
if ($wb->is_authenticated())
{
$is_admin=false;
$page_id =PAGE_ID == 0 ? $wb->default_page_id : PAGE_ID;
$sql ='SELECT `section_id`, `block`, `module` FROM `' . TABLE_PREFIX . 'sections`';
$sql .='WHERE `page_id` = ' . $page_id . ' ORDER BY `position`';
$sect_set=$database->query($sql);
while ($sections=$sect_set->fetchRow())
{
$section_array[]=$sections['section_id'];
}
return $section_array;
}
}
}
if (!function_exists('fedit_jq_section_edit'))
{
function fedit_jq_section_edit()
[...]
{
$fedit_jq=WB_PATH . '/modules/frontend_edit/frontend_snippet/fedit_jq_overlay.js';
}
[...]
if (file_exists($fedit_jq))
{
$get_jq_file =get_fedit_file($fedit_jq);
$feditget_section='<script type="text/javascript">' . $get_jq_file . '</script>';
$section_array =sections_on_page();
$fedit_section =$feditget_section;
$store_modify ='';
foreach ($section_array as &$value)
{
$store_modify
= '<a href="' . ADMIN_URL . '/pages/modify.php?page_id=' . $page_id . '&wysiwyg=' . $value
. '" class="fbox" title="' . $HEADING['MODIFY_PAGE'] . ': ' . $value . '"><img src="' . WB_URL
. '/modules/frontend_edit/images/edit_16.png" alt="' . $HEADING['MODIFY_PAGE'] . '" /></a>';
unset ($value);
}
foreach ($section_array as &$value)
{
$fedit_replace = str_replace('replace', $store_modify, $fedit_section);
return $fedit_replace;
}
}
}
}
}
?>
--- End code ---
In der fedit_jq_overlay.js ist folgener jQ-Code:
--- Code: ---if (jQuery) {
jQuery(document).ready(function() {
if($(".section_anchor").length) {
$(".section_anchor").after('replace');
// ++++ Das ist das Replace in der PHP Datei, das per str_replace ersetzt wird ++++
};
[...]
});
};
--- End code ---
Der Klick auf das Speichern ist noch ein kleines Problem - ich werde auf jeden Fall rumbasteln, in der Priorität 1.) Backend-Theme unabhängig -> wenn es nicht geht 2.) Einbinden von einer kleinen Datei in das Backend-Header oder in den jQuery Ordner des Backend-Themes. Auf jeden Fall mal den Tipp von chio ausprobieren mit dem target.
Gruß Michael
chio:
--- Code: ---$sql ='SELECT `section_id`, `block`, `module` FROM `' . TABLE_PREFIX . 'sections`';
$sql .='WHERE `page_id` = ' . $page_id . ' ORDER BY `position`';
--- End code ---
Meine rudimentären SQL Kenntnisse sagen mir, dass nach SELECT auch position stehen muss und dass bei ORDER BY `position` die Gänsefüßchen weg müssen.
Luisehahne:
Zur Info!
--- Quote ---Meine rudimentären SQL Kenntnisse sagen mir, dass nach SELECT auch position stehen muss und dass bei ORDER BY `position` die Gänsefüßchen weg müssen.
--- End quote ---
Sind keine Gänsefüsschen sondern sogannte Backticks. (identifier quote character)
zum Nachlesen
http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
Dietmar
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version