further smartify serendipity_iframe

This commit is contained in:
onli 2013-06-14 23:05:09 +02:00
parent 574ab0a834
commit d6857176d8
2 changed files with 40 additions and 58 deletions

View File

@ -669,24 +669,6 @@ function serendipity_restoreVar(&$source, &$target) {
return false; return false;
} }
/**
* Echo Javascript code to set a cookie variable
*
* This function is useful if your HTTP headers were already sent, but you still want to set a cookie
* Note that contents are echo'd, not return'd.
*
* @access public
* @param string The name of the cookie variable
* @param string The contents of the cookie variable
* @return null
*/
function serendipity_JSsetCookie($name, $value) {
$name = htmlentities($name);
$value = urlencode($value);
echo '<script type="text/javascript">SetCookie("' . $name . '", unescape("' . $value . '"))</script>' . "\n";
}
/** /**
* Set a Cookie via HTTP calls, and update $_COOKIE plus $serendipity['COOKIE'] array. * Set a Cookie via HTTP calls, and update $_COOKIE plus $serendipity['COOKIE'] array.
* *
@ -770,7 +752,7 @@ function serendipity_is_iframe() {
$serendipity['POST'] = &$_SESSION['save_entry_POST']; $serendipity['POST'] = &$_SESSION['save_entry_POST'];
$serendipity['GET'] = &$_SESSION['save_entry_POST']; // GET-Vars are the same as POST to ensure compatibility. $serendipity['GET'] = &$_SESSION['save_entry_POST']; // GET-Vars are the same as POST to ensure compatibility.
ignore_user_abort(true); ignore_user_abort(true);
serendipity_iframe($_SESSION['save_entry'], $iframe_mode, true); echo serendipity_iframe($_SESSION['save_entry'], $iframe_mode);
return true; return true;
} }
return false; return false;
@ -790,62 +772,39 @@ function serendipity_is_iframe() {
* @param boolean Use smarty templating? * @param boolean Use smarty templating?
* @return boolean Indicates whether iframe data was printed * @return boolean Indicates whether iframe data was printed
*/ */
function serendipity_iframe(&$entry, $mode = null, $use_smarty = true) { function serendipity_iframe(&$entry, $mode = null) {
global $serendipity; global $serendipity;
if (empty($mode) || !is_array($entry)) { if (empty($mode) || !is_array($entry)) {
return false; return false;
} }
if ($use_smarty) { $serendipity['smarty_preview'] = true;
$serendipity['smarty_raw_mode'] = true; // Force output of Smarty stuff in the backend
$serendipity['smarty_preview'] = true; $data = array();
serendipity_smarty_init(); $data['is_preview'] = true;
$serendipity['smarty']->assign('is_preview', true); $data['mode'] = $mode;
ob_start();
}
$show = false;
switch ($mode) { switch ($mode) {
case 'save': case 'save':
echo '<div class="clearfix">'; ob_start();
echo '<div style="float: left; height: 75px"></div>';
$res = serendipity_updertEntry($entry); $res = serendipity_updertEntry($entry);
$data['updertHooks'] = ob_get_contents();
ob_end_clean();
if (is_string($res)) { if (is_string($res)) {
echo '<div class="serendipity_msg_error">' . ERROR . ': <b>' . $res . '</b></div>'; $data['res'] = $res;
} else { }
if (!empty($serendipity['lastSavedEntry'])) { if (!empty($serendipity['lastSavedEntry'])) {
// Last saved entry must be propagated to entry form so that if the user re-edits it, $data['lastSavedEntry'] = $serendipity['lastSavedEntry'];
// it needs to be stored with the new ID. $data['entrylink'] = serendipity_archiveURL($res, $entry['title'], 'serendipityHTTPPath', true, array('timestamp' => $entry['timestamp']));
echo '<script type="text/javascript">parent.document.forms[\'serendipityEntry\'][\'serendipity[id]\'].value = "' . $serendipity['lastSavedEntry'] . '";</script>';
}
$entrylink = serendipity_archiveURL($res, $entry['title'], 'serendipityHTTPPath', true, array('timestamp' => $entry['timestamp']));
echo '<div class="serendipityAdminMsgSuccess msg_success"><img class="img_error" src="' . serendipity_getTemplateFile('admin/img/admin_msg_success.png') . '" alt="" />' . ENTRY_SAVED . ' (<a href="' . $entrylink . '" target="_blank">' . VIEW . '</a>)</div>';
} }
echo '</div>';
$show = true;
break; break;
case 'preview': case 'preview':
echo '<div class="clearfix">'; $data['preview'] = serendipity_printEntries(array($entry), ($entry['extended'] != '' ? 1 : 0), true);
echo '<div id="serendipity_preview_spacer" style="float: left; height: 225px"></div>';
serendipity_printEntries(array($entry), ($entry['extended'] != '' ? 1 : 0), true);
echo '</div>';
$show = true;
break; break;
} }
return serendipity_smarty_show('preview_iframe.tpl', $data);
if ($use_smarty) {
$preview = ob_get_contents();
ob_end_clean();
$serendipity['smarty']->assignByRef('preview', $preview);
$serendipity['smarty']->display(serendipity_getTemplateFile('preview_iframe.tpl', 'serendipityPath'));
}
return $show;
} }
/** /**

View File

@ -26,6 +26,7 @@
<link rel="stylesheet" href="{serendipity_getFile file="user.css"}"> <link rel="stylesheet" href="{serendipity_getFile file="user.css"}">
{/if} {/if}
<script src="{serendipity_getFile file="js/modernizr-2.6.2.min.js"}"></script> <script src="{serendipity_getFile file="js/modernizr-2.6.2.min.js"}"></script>
{serendipity_hookPlugin hook="backend_header" hookAll="true"}
<script> <script>
window.onload = function() {ldelim} window.onload = function() {ldelim}
parent.document.getElementById('serendipity_iframe').style.height = document.getElementById('content').offsetHeight parent.document.getElementById('serendipity_iframe').style.height = document.getElementById('content').offsetHeight
@ -42,7 +43,29 @@
<div id="page" class="clearfix container"> <div id="page" class="clearfix container">
<div class="clearfix{if $leftSidebarElements > 0 && $rightSidebarElements > 0} col3{elseif $leftSidebarElements > 0 && $rightSidebarElements == 0} col2l{else} col2r{/if}"> <div class="clearfix{if $leftSidebarElements > 0 && $rightSidebarElements > 0} col3{elseif $leftSidebarElements > 0 && $rightSidebarElements == 0} col2l{else} col2r{/if}">
<main id="content" style="padding: 1em 0; margin: 0;"> <main id="content" style="padding: 1em 0; margin: 0;">
{if $mode == 'preview'}
<div class="clearfix">
<div id="serendipity_preview_spacer" style="float: left; height: 225px"></div>
{elseif $mode == 'save'}
<div class="clearfix">
<div style="float: left; height: 75px"></div>
{$updertHooks}
{if $res}
<div class="serendipity_msg_error">{$CONST.ERROR}: <b>{$res}</b></div>
{else}
{if $lastSavedEntry}
<script type="text/javascript">$(document).ready(function() {
parent.document.forms['serendipityEntry']['serendipity[id]'].value = "{$lastSavedEntry}";
});
</script>
{/if}
<div class="serendipityAdminMsgSuccess msg_success">
<img class="img_error" src="{serendipity_getFile file='admin/img/admin_msg_success.png'}'" alt="" /> {$CONST.ENTRY_SAVED} (<a href="{$entrylink}" target="_blank">{$CONST.VIEW}</a>)
</div>
{/if}
{/if}
{$preview} {$preview}
</div>
</main> </main>
</div> </div>
</div> </div>