Abrir imagenes adjuntas en la misma ventana, ¿como? (SOLUCIONADO)

Started by simplemachin, May 04, 2010, 07:07:25 PM

Previous topic - Next topic

simplemachin

Hola, tengo instalado el SMF 1.1.11 con la plantilla de Tux Red Planet.
Y mi pregunta es que tengo que modificar para que cuando se quiera ver ampliado una imagen adjunta a un mensaje, se amplie en la misma ventana del navegador.Es [nofollow] decir ahora mismo si se pincha en la imagen en miniatura, se abre otra ventana con la imagen en su tamaño original, pero claro eso provoca que tengamos que hacer click en el boton "atras" del navegador para volver al mensaje del foro.
¿como puedo hacer que la imagen en miniatura se amplie en la misma ventana en donde estamos viendo el mensaje?.
Os pego el codigo del post.template (supongo que aquí es donde está el codigo que controla lo de los adjuntos)


<?php
// Version: 1.1.5; Post

// The main template for the post page.
function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;

if ($context['show_spellchecking'])
echo '
<script language="JavaScript" type="text/javascript" src="'
, $settings['default_theme_url'], '/spellcheck.js"></script>';

// Start the javascript... and boy is there a lot.
echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA['
;

// Start with message icons - and any missing from this theme.
echo '
var icon_urls = {'
;
foreach ($context['icons'] as $icon)
echo '
"'
, $icon['value'], '": "', $icon['url'], '"', $icon['is_last'] ? '' : ',';
echo '
};'
;

// The actual message icon selector.
echo '
function showimage()
{
document.images.icons.src = icon_urls[document.forms.postmodify.icon.options[document.forms.postmodify.icon.selectedIndex].value];
}'
;
// The functions used to preview a posts without loading a new page.
echo '
var current_board = '
, empty($context['current_board']) ? 'null' : $context['current_board'], ';
var make_poll = '
, $context['make_poll'] ? 'true' : 'false', ';
var txt_preview_title = "'
, $txt['preview_title'], '";
var txt_preview_fetch = "'
, $txt['preview_fetch'], '";
function previewPost()
{
if (window.XMLHttpRequest)
{'
, $context['browser']['is_firefox'] ? '
// Firefox doesn\'t render <marquee> that have been put it using javascript
if (document.forms.postmodify.elements["message"].value.indexOf("[move]") != -1)
{
return submitThisOnce(document.forms.postmodify);
}'
: '', '
// Opera didn\'t support setRequestHeader() before 8.01.
if (typeof(window.opera) != "undefined")
{
var test = new XMLHttpRequest();
if (typeof(test.setRequestHeader) != "function")
return submitThisOnce(document.forms.postmodify);
}
// !!! Currently not sending poll options and option checkboxes.
var i, x = new Array();
var textFields = ["subject", "message", "icon", "guestname", "email", "evtitle", "question", "topic"];
var numericFields = [
"board", "topic", "num_replies",
"eventid", "calendar", "year", "month", "day",
"poll_max_votes", "poll_expire", "poll_change_vote", "poll_hide"
];
var checkboxFields = [
"ns",
];

for (i in textFields)
if (document.forms.postmodify.elements[textFields[i]])
x[x.length] = textFields[i] + "=" + escape(textToEntities(document.forms.postmodify[textFields[i]].value.replace(/&#38;#/g, "&#38;#38;#"))).replace(/\+/g, "%2B");
for (i in numericFields)
if (document.forms.postmodify.elements[numericFields[i]] && typeof(document.forms.postmodify[numericFields[i]].value) != "undefined")
x[x.length] = numericFields[i] + "=" + parseInt(document.forms.postmodify.elements[numericFields[i]].value);
for (i in checkboxFields)
if (document.forms.postmodify.elements[checkboxFields[i]] && document.forms.postmodify.elements[checkboxFields[i]].checked)
x[x.length] = checkboxFields[i] + "=" + document.forms.postmodify.elements[checkboxFields[i]].value;

sendXMLDocument(smf_scripturl + "?action=post2" + (current_board ? ";board=" + current_board : "") + (make_poll ? ";poll" : "") + ";preview;xml", x.join("&"), onDocSent);

document.getElementById("preview_section").style.display = "";
setInnerHTML(document.getElementById("preview_subject"), txt_preview_title);
setInnerHTML(document.getElementById("preview_body"), txt_preview_fetch);

return false;
}
else
return submitThisOnce(document.forms.postmodify);
}
function onDocSent(XMLDoc)
{
if (!XMLDoc)
{
document.forms.postmodify.preview.onclick = new function ()
{
return true;
}
document.forms.postmodify.preview.click();
}

// Show the preview section.
var i, preview = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("preview")[0];
setInnerHTML(document.getElementById("preview_subject"), preview.getElementsByTagName("subject")[0].firstChild.nodeValue);

var bodyText = "";
for (i = 0; i < preview.getElementsByTagName("body")[0].childNodes.length; i++)
bodyText += preview.getElementsByTagName("body")[0].childNodes[i].nodeValue;

setInnerHTML(document.getElementById("preview_body"), bodyText);
document.getElementById("preview_body").className = "post";

// Show a list of errors (if any).
var errors = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("errors")[0];
var numErrors = errors.getElementsByTagName("error").length, errorList = new Array();
for (i = 0; i < numErrors; i++)
errorList[errorList.length] = errors.getElementsByTagName("error")[i].firstChild.nodeValue;
document.getElementById("errors").style.display = numErrors == 0 ? "none" : "";
document.getElementById("error_serious").style.display = errors.getAttribute("serious") == 1 ? "" : "none";
setInnerHTML(document.getElementById("error_list"), numErrors == 0 ? "" : errorList.join("<br />"));

// Show a warning if the topic has been locked.
document.getElementById("lock_warning").style.display = errors.getAttribute("topic_locked") == 1 ? "" : "none";

// Adjust the color of captions if the given data is erroneous.
var captions = errors.getElementsByTagName("caption"), numCaptions = errors.getElementsByTagName("caption").length;
for (i = 0; i < numCaptions; i++)
if (document.getElementById("caption_" + captions[i].getAttribute("name")))
document.getElementById("caption_" + captions[i].getAttribute("name")).style.color = captions[i].getAttribute("color");

if (errors.getElementsByTagName("post_error").length == 1)
document.forms.postmodify.message.style.border = "1px solid red";
else if (document.forms.postmodify.message.style.borderColor == "red" || document.forms.postmodify.message.style.borderColor == "red red red red")
{
if (typeof(document.forms.postmodify.message.runtimeStyle) == "undefined")
document.forms.postmodify.message.style.border = null;
else
document.forms.postmodify.message.style.borderColor = "";
}

// Set the new number of replies.
if (document.forms.postmodify.elements["num_replies"])
document.forms.postmodify.num_replies.value = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("num_replies")[0].firstChild.nodeValue;

var newPosts = XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("new_posts")[0] ? XMLDoc.getElementsByTagName("smf")[0].getElementsByTagName("new_posts")[0].getElementsByTagName("post") : {length: 0};
var numNewPosts = newPosts.length;
if (numNewPosts != 0)
{
var newTable = \'<span id="new_replies"></span><table width="100%" class="windowbg" cellspacing="0" cellpadding="2" align="center" style="table-layout: fixed;">\';
for (i = 0; i < numNewPosts; i++)
newTable += \'<tr class="catbg"><td colspan="2" align="left" class="smalltext"><div style="float: right;">'
, $txt[280], ': \' + newPosts[i].getElementsByTagName("time")[0].firstChild.nodeValue + \' <img src="\' + smf_images_url + \'/', $context['user']['language'], '/new.gif" alt="', $txt['preview_new'], '" /></div>', $txt[279], ': \' + newPosts[i].getElementsByTagName("poster")[0].firstChild.nodeValue + \'</td></tr><tr class="windowbg2"><td colspan="2" class="smalltext" id="msg\' + newPosts[i].getAttribute("id") + \'" width="100%"><div align="right" class="smalltext"><a href="#top" onclick="return insertQuoteFast(\\\'\' + newPosts[i].getAttribute("id") + \'\\\');">', $txt[260], '</a></div><div class="post">\' + newPosts[i].getElementsByTagName("message")[0].firstChild.nodeValue + \'</div></td></tr>\';
newTable += \'</table>\';
setOuterHTML(document.getElementById("new_replies"), newTable);
}

if (typeof(smf_codeFix) != "undefined")
smf_codeFix();
}'
;

// A function needed to discern HTML entities from non-western characters.
echo '
function saveEntities()
{
var textFields = ["subject", "message", "guestname", "evtitle", "question"];
for (i in textFields)
if (document.forms.postmodify.elements[textFields[i]])
document.forms.postmodify[textFields[i]].value = document.forms.postmodify[textFields[i]].value.replace(/&#38;#/g, "&#38;#38;#");
for (var i = document.forms.postmodify.elements.length - 1; i >= 0; i--)
if (document.forms.postmodify.elements[i].name.indexOf("options") == 0)
document.forms.postmodify.elements[i].value = document.forms.postmodify.elements[i].value.replace(/&#38;#/g, "&#38;#38;#");
}'
;


// Code for showing and hiding additional options.
if (!empty($settings['additional_options_collapsable']))
echo '
var currentSwap = true;
function swapOptions()
{
document.getElementById("postMoreExpand").src = smf_images_url + "/" + (currentSwap ? "collapse.gif" : "expand.gif");
document.getElementById("postMoreExpand").alt = currentSwap ? "-" : "+";

document.getElementById("postMoreOptions").style.display = currentSwap ? "" : "none";

if (document.getElementById("postAttachment"))
document.getElementById("postAttachment").style.display = currentSwap ? "" : "none";
if (document.getElementById("postAttachment2"))
document.getElementById("postAttachment2").style.display = currentSwap ? "" : "none";

if (typeof(document.forms.postmodify) != "undefined")
document.forms.postmodify.additional_options.value = currentSwap ? "1" : "0";

currentSwap = !currentSwap;
}'
;

// If this is a poll - use some javascript to ensure the user doesn't create a poll with illegal option combinations.
if ($context['make_poll'])
echo '
function pollOptions()
{
var expireTime = document.getElementById("poll_expire");

if (isEmptyText(expireTime) || expireTime.value == 0)
{
document.forms.postmodify.poll_hide[2].disabled = true;
if (document.forms.postmodify.poll_hide[2].checked)
document.forms.postmodify.poll_hide[1].checked = true;
}
else
document.forms.postmodify.poll_hide[2].disabled = false;
}

var pollOptionNum = 0, pollTabIndex;
function addPollOption()
{
if (pollOptionNum == 0)
{
for (var i = 0; i < document.forms.postmodify.elements.length; i++)
if (document.forms.postmodify.elements[i].id.substr(0, 8) == "options-")
{
pollOptionNum++;
pollTabIndex = document.forms.postmodify.elements[i].tabIndex;
}
}
pollOptionNum++

setOuterHTML(document.getElementById("pollMoreOptions"), \'<br /><label for="options-\' + pollOptionNum + \'">'
, $txt['smf22'], ' \' + pollOptionNum + \'</label>: <input type="text" name="options[\' + pollOptionNum + \']" id="options-\' + pollOptionNum + \'" value="" size="25" tabindex="\' + pollTabIndex + \'" /><span id="pollMoreOptions"></span>\');
}'
;

// If we are making a calendar event we want to ensure we show the current days in a month etc... this is done here.
if ($context['make_event'])
echo '
var monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function generateDays()
{
var dayElement = document.getElementById("day"), yearElement = document.getElementById("year"), monthElement = document.getElementById("month");
var days, selected = dayElement.selectedIndex;

monthLength[1] = yearElement.options[yearElement.selectedIndex].value % 4 == 0 ? 29 : 28;
days = monthLength[monthElement.value - 1];

while (dayElement.options.length)
dayElement.options[0] = null;

for (i = 1; i <= days; i++)
dayElement.options[dayElement.length] = new Option(i, i);

if (selected < days)
dayElement.selectedIndex = selected;
}'
;

// End of the javascript, start the form and display the link tree.
echo '
// ]]></script>

<form action="'
, $scripturl, '?action=', $context['destination'], ';', empty($context['current_board']) ? '' : 'board=' . $context['current_board'], '" method="post" accept-charset="', $context['character_set'], '" name="postmodify" id="postmodify" onsubmit="submitonce(this);saveEntities();" enctype="multipart/form-data" style="margin: 0;">
<table width="100%" align="center" cellpadding="0" cellspacing="3">
<tr>
<td valign="bottom" colspan="2">
'
, theme_linktree(), '
</td>
</tr>
</table>'
;

// If the user wants to see how their message looks - the preview table is where it's at!
echo '
<div id="preview_section"'
, isset($context['preview_message']) ? '' : ' style="display: none;"', '>
<table border="0" width="100%" cellspacing="1" cellpadding="3" class="bordercolor" align="center" style="table-layout: fixed;">
<tr class="titlebg">
<td id="preview_subject">'
, empty($context['preview_subject']) ? '' : $context['preview_subject'], '</td>
</tr>
<tr>
<td class="post" width="100%" id="preview_body">
'
, empty($context['preview_message']) ? str_repeat('<br />', 5) : $context['preview_message'], '
</td>
</tr>
</table><br />
</div>'
;

if ($context['make_event'] && (!$context['event']['new'] || !empty($context['current_board'])))
echo '
<input type="hidden" name="eventid" value="'
, $context['event']['id'], '" />';

// Start the main table.
echo '
<table border="0" width="100%" align="center" cellspacing="1" cellpadding="3" class="bordercolor">
<tr class="titlebg">
<td>'
, $context['page_title'], '</td>
</tr>
<tr>
<td class="windowbg">'
, isset($context['current_topic']) ? '
<input type="hidden" name="topic" value="'
. $context['current_topic'] . '" />' : '', '
<table border="0" cellpadding="3" width="100%">'
;

// If an error occurred, explain what happened.
echo '
<tr'
, empty($context['post_error']['messages']) ? ' style="display: none"' : '', ' id="errors">
<td></td>
<td align="left">
<div style="padding: 0px; font-weight: bold;'
, empty($context['error_type']) || $context['error_type'] != 'serious' ? ' display: none;' : '', '" id="error_serious">
'
, $txt['error_while_submitting'], '
</div>
<div style="color: red; margin: 1ex 0 2ex 3ex;" id="error_list">
'
, empty($context['post_error']['messages']) ? '' : implode('<br />', $context['post_error']['messages']), '
</div>
</td>
</tr>'
;

// If it's locked, show a message to warn the replyer.
echo '
<tr'
, $context['locked'] ? '' : ' style="display: none"', ' id="lock_warning">
<td></td>
<td align="left">
'
, $txt['smf287'], '
</td>
</tr>'
;

// Guests have to put in their name and email...
if (isset($context['name']) && isset($context['email']))
{
echo '
<tr>
<td align="right" style="font-weight: bold;'
, isset($context['post_error']['long_name']) || isset($context['post_error']['no_name']) || isset($context['post_error']['bad_name']) ? 'color: red;' : '', '" id="caption_guestname">
'
, $txt[68], ':
</td>
<td>
<input type="text" name="guestname" size="25" value="'
, $context['name'], '" tabindex="', $context['tabindex']++, '" />
</td>
</tr>'
;

if (empty($modSettings['guest_post_no_email']))
echo '
<tr>
<td align="right" style="font-weight: bold;'
, isset($context['post_error']['no_email']) || isset($context['post_error']['bad_email']) ? 'color: red;' : '', '" id="caption_email">
'
, $txt[69], ':
</td>
<td>
<input type="text" name="email" size="25" value="'
, $context['email'], '" tabindex="', $context['tabindex']++, '" />
</td>
</tr>'
;
}

// Are you posting a calendar event?
if ($context['make_event'])
{
echo '
<tr>
<td align="right" style="font-weight: bold;'
, isset($context['post_error']['no_event']) ? 'color: red;' : '', '" id="caption_evtitle">
'
, $txt['calendar12'], '
</td>
<td class="smalltext">
<input type="text" name="evtitle" maxlength="30" size="30" value="'
, $context['event']['title'], '" tabindex="', $context['tabindex']++, '" />
</td>
</tr><tr>
<td></td>
<td class="smalltext">
<input type="hidden" name="calendar" value="1" />'
, $txt['calendar10'], '&nbsp;
<select name="year" id="year" tabindex="'
, $context['tabindex']++, '" onchange="generateDays();">';

// Show a list of all the years we allow...
for ($year = $modSettings['cal_minyear']; $year <= $modSettings['cal_maxyear']; $year++)
echo '
<option value="'
, $year, '"', $year == $context['event']['year'] ? ' selected="selected"' : '', '>', $year, '</option>';

echo '
</select>&nbsp;
'
, $txt['calendar9'], '&nbsp;
<select name="month" id="month" onchange="generateDays();">'
;

// There are 12 months per year - ensure that they all get listed.
for ($month = 1; $month <= 12; $month++)
echo '
<option value="'
, $month, '"', $month == $context['event']['month'] ? ' selected="selected"' : '', '>', $txt['months'][$month], '</option>';

echo '
</select>&nbsp;
'
, $txt['calendar11'], '&nbsp;
<select name="day" id="day">'
;

// This prints out all the days in the current month - this changes dynamically as we switch months.
for ($day = 1; $day <= $context['event']['last_day']; $day++)
echo '
<option value="'
, $day, '"', $day == $context['event']['day'] ? ' selected="selected"' : '', '>', $day, '</option>';

echo '
</select>
</td>
</tr>'
;

// If events can span more than one day then allow the user to select how long it should last.
if (!empty($modSettings['cal_allowspan']))
{
echo '
<tr>
<td align="right"><b>'
, $txt['calendar54'], '</b></td>
<td class="smalltext">
<select name="span">'
;

for ($days = 1; $days <= $modSettings['cal_maxspan']; $days++)
echo '
<option value="'
, $days, '"', $days == $context['event']['span'] ? ' selected="selected"' : '', '>', $days, '</option>';

echo '
</select>
</td>
</tr>'
;
}

// If this is a new event let the user specify which board they want the linked post to be put into.
if ($context['event']['new'] && $context['is_new_post'])
{
echo '
<tr>
<td align="right"><b>'
, $txt['calendar13'], '</b></td>
<td class="smalltext">
<select name="board">'
;

foreach ($context['event']['boards'] as $board)
echo '
<option value="'
, $board['id'], '"', $board['id'] == $context['event']['board'] ? ' selected="selected"' : '', '>', $board['cat']['name'], ' - ', $board['prefix'], $board['name'], '</option>';

echo '
</select>
</td>
</tr>'
;
}
}

// Now show the subject box for this post.
echo '
<tr>
<td align="right" style="font-weight: bold;'
, isset($context['post_error']['no_subject']) ? 'color: red;' : '', '" id="caption_subject">
'
, $txt[70], ':
</td>
<td>
<input type="text" name="subject"'
, $context['subject'] == '' ? '' : ' value="' . $context['subject'] . '"', ' tabindex="', $context['tabindex']++, '" size="80" maxlength="80" />
</td>
</tr>
<tr>
<td align="right">
<b>'
, $txt[71], ':</b>
</td>
<td>
<select name="icon" id="icon" onchange="showimage()">'
;

// Loop through each message icon allowed, adding it to the drop down list.
foreach ($context['icons'] as $icon)
echo '
<option value="'
, $icon['value'], '"', $icon['value'] == $context['icon'] ? ' selected="selected"' : '', '>', $icon['name'], '</option>';

echo '
</select>
<img src="'
, $context['icon_url'], '" name="icons" hspace="15" alt="" />
</td>
</tr>'
;

// If this is a poll then display all the poll options!
if ($context['make_poll'])
{
echo '
<tr>
<td align="right" style="font-weight: bold;'
, isset($context['post_error']['no_question']) ? 'color: red;' : '', '" id="caption_question">
'
, $txt['smf21'], ':
</td>
<td align="left">
<input type="text" name="question" value="'
, isset($context['question']) ? $context['question'] : '', '" tabindex="', $context['tabindex']++, '" size="80" />
</td>
</tr>
<tr>
<td align="right"></td>
<td>'
;

// Loop through all the choices and print them out.
foreach ($context['choices'] as $choice)
{
echo '
<label for="options-'
, $choice['id'], '">', $txt['smf22'], ' ', $choice['number'], '</label>: <input type="text" name="options[', $choice['id'], ']" id="options-', $choice['id'], '" value="', $choice['label'], '" tabindex="', $context['tabindex']++, '" size="25" />';

if (!$choice['is_last'])
echo '<br />';
}

echo '
<span id="pollMoreOptions"></span> <a href="javascript:addPollOption(); void(0);">('
, $txt['poll_add_option'], ')</a>
</td>
</tr>
<tr>
<td align="right"><b>'
, $txt['poll_options'], ':</b></td>
<td class="smalltext"><input type="text" name="poll_max_votes" size="2" value="'
, $context['poll_options']['max_votes'], '" /> ', $txt['poll_options5'], '</td>
</tr>
<tr>
<td align="right"></td>
<td class="smalltext">'
, $txt['poll_options1a'], ' <input type="text" id="poll_expire" name="poll_expire" size="2" value="', $context['poll_options']['expire'], '" onchange="pollOptions();" /> ', $txt['poll_options1b'], '</td>
</tr>
<tr>
<td align="right"></td>
<td class="smalltext"><label for="poll_change_vote"><input type="checkbox" id="poll_change_vote" name="poll_change_vote"'
, !empty($context['poll_options']['change_vote']) ? ' checked="checked"' : '', ' class="check" /> ', $txt['poll_options7'], '</label></td>
</tr>
<tr>
<td align="right"></td>
<td class="smalltext">
<input type="radio" id="poll_hide" name="poll_hide" value="0"'
, $context['poll_options']['hide'] == 0 ? ' checked="checked"' : '', ' class="check" /> ', $txt['poll_options2'], '<br />
<input type="radio" id="poll_hide" name="poll_hide" value="1"'
, $context['poll_options']['hide'] == 1 ? ' checked="checked"' : '', ' class="check" /> ', $txt['poll_options3'], '<br />
<input type="radio" id="poll_hide" name="poll_hide" value="2"'
, $context['poll_options']['hide'] == 2 ? ' checked="checked"' : '', empty($context['poll_options']['expire']) ? ' disabled="disabled"' : '', ' class="check" /> ', $txt['poll_options4'], '<br />
<br />
</td>
</tr>'
;
}

// The below function prints the BBC, smileys and the message itself out.
theme_postbox($context['message']);

// If this message has been edited in the past - display when it was.
if (isset($context['last_modified']))
echo '
<tr>
<td valign="top" align="right">
<b>'
, $txt[211], ':</b>
</td>
<td>
'
, $context['last_modified'], '
</td>
</tr>'
;

// If the admin has enabled the hiding of the additional options - show a link and image for it.
if (!empty($settings['additional_options_collapsable']))
echo '
<tr>
<td colspan="2" style="padding-left: 5ex;">
<a href="javascript:swapOptions();"><img src="'
, $settings['images_url'], '/expand.gif" alt="+" id="postMoreExpand" /></a> <a href="javascript:swapOptions();"><b>', $txt['post_additionalopt'], '</b></a>
</td>
</tr>'
;

// Display the check boxes for all the standard options - if they are available to the user!
echo '
<tr>
<td></td>
<td>
<div id="postMoreOptions">
<table width="80%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="smalltext">'
, $context['can_notify'] ? '<input type="hidden" name="notify" value="0" /><label for="check_notify"><input type="checkbox" name="notify" id="check_notify"' . ($context['notify'] || !empty($options['auto_notify']) ? ' checked="checked"' : '') . ' value="1" class="check" /> ' . $txt['smf14'] . '</label>' : '', '</td>
<td class="smalltext">'
, $context['can_lock'] ? '<input type="hidden" name="lock" value="0" /><label for="check_lock"><input type="checkbox" name="lock" id="check_lock"' . ($context['locked'] ? ' checked="checked"' : '') . ' value="1" class="check" /> ' . $txt['smf15'] . '</label>' : '', '</td>
</tr>
<tr>
<td class="smalltext"><label for="check_back"><input type="checkbox" name="goback" id="check_back"'
. ($context['back_to_topic'] || !empty($options['return_to_post']) ? ' checked="checked"' : '') . ' value="1" class="check" /> ' . $txt['back_to_topic'] . '</label></td>
<td class="smalltext">'
, $context['can_sticky'] ? '<input type="hidden" name="sticky" value="0" /><label for="check_sticky"><input type="checkbox" name="sticky" id="check_sticky"' . ($context['sticky'] ? ' checked="checked"' : '') . ' value="1" class="check" /> ' . $txt['sticky_after2'] . '</label>' : '', '</td>
</tr>
<tr>
<td class="smalltext"><label for="check_smileys"><input type="checkbox" name="ns" id="check_smileys"'
, $context['use_smileys'] ? '' : ' checked="checked"', ' value="NS" class="check" /> ', $txt[277], '</label></td>', '
<td class="smalltext">'
, $context['can_move'] ? '<input type="hidden" name="move" value="0" /><label for="check_move"><input type="checkbox" name="move" id="check_move" value="1" class="check" /> ' . $txt['move_after2'] . '</label>' : '', '</td>
</tr>'
, $context['can_announce'] && $context['is_first_post'] ? '
<tr>
<td class="smalltext"><label for="check_announce"><input type="checkbox" name="announce_topic" id="check_announce" value="1" class="check" /> '
. $txt['announce_topic'] . '</label></td>
<td class="smalltext"></td>
</tr>'
: '', '
</table>
</div>
</td>
</tr>'
;

// If this post already has attachments on it - give information about them.
if (!empty($context['current_attachments']))
{
echo '
<tr id="postAttachment">
<td align="right" valign="top">
<b>'
, $txt['smf119b'], ':</b>
</td>
<td class="smalltext">
<input type="hidden" name="attach_del[]" value="0" />
'
, $txt['smf130'], ':<br />';
foreach ($context['current_attachments'] as $attachment)
echo '
<input type="checkbox" name="attach_del[]" value="'
, $attachment['id'], '"', empty($attachment['unchecked']) ? ' checked="checked"' : '', ' class="check" /> ', $attachment['name'], '<br />';
echo '
<br />
</td>
</tr>'
;
}

// Is the user allowed to post any additional ones? If so give them the boxes to do it!
if ($context['can_post_attachment'])
{
echo '
<tr id="postAttachment2">
<td align="right" valign="top">
<b>'
, $txt['smf119'], ':</b>
</td>
<td class="smalltext">
<input type="file" size="48" name="attachment[]" />'
;

// Show more boxes only if they aren't approaching their limit.
if ($context['num_allowed_attachments'] > 1)
echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var allowed_attachments = '
, $context['num_allowed_attachments'], ' - 1;

function addAttachment()
{
if (allowed_attachments <= 0)
return alert("'
, $txt['more_attachments_error'], '");

setOuterHTML(document.getElementById("moreAttachments"), \'<br /><input type="file" size="48" name="attachment[]" /><span id="moreAttachments"></span>\');
allowed_attachments = allowed_attachments - 1;

return true;
}
// ]]></script>
<span id="moreAttachments"></span> <a href="javascript:addAttachment(); void(0);">('
, $txt['more_attachments'], ')</a><br />
<noscript><input type="file" size="48" name="attachment[]" /><br /></noscript>'
;
else
echo '
<br />'
;

// Show some useful information such as allowed extensions, maximum size and amount of attachments allowed.
if (!empty($modSettings['attachmentCheckExtensions']))
echo '
'
, $txt['smf120'], ': ', $context['allowed_extensions'], '<br />';
echo '
'
, $txt['smf121'], ': ', $modSettings['attachmentSizeLimit'], ' ' . $txt['smf211'], !empty($modSettings['attachmentNumPerPostLimit']) ? ', ' . $txt['maxAttachPerPost'] . ': ' . $modSettings['attachmentNumPerPostLimit'] : '', '
</td>
</tr>'
;
}

// Finally, the submit buttons.
echo '
<tr>
<td align="center" colspan="2">
<span class="smalltext"><br />'
, $txt['smf16'], '</span><br />
<input type="submit" name="post" value="'
, $context['submit_label'], '" tabindex="', $context['tabindex']++, '" onclick="return submitThisOnce(this);" accesskey="s" />
<input type="submit" name="preview" value="'
, $txt[507], '" tabindex="', $context['tabindex']++, '" onclick="return event.ctrlKey || previewPost();" accesskey="p" />';

// Option to delete an event if user is editing one.
if ($context['make_event'] && !$context['event']['new'])
echo '
<input type="submit" name="deleteevent" value="'
, $txt['calendar22'], '" onclick="return confirm(\'', $txt['calendar21'], '\');" />';

// Spell check button if the option is enabled.
if ($context['show_spellchecking'])
echo '
<input type="button" value="'
, $txt['spell_check'], '" tabindex="', $context['tabindex']++, '" onclick="spellCheck(\'postmodify\', \'message\');" />';

echo '
</td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>'
;

// Assuming this isn't a new topic pass across the number of replies when the topic was created.
if (isset($context['num_replies']))
echo '
<input type="hidden" name="num_replies" value="'
, $context['num_replies'], '" />';

echo '
<input type="hidden" name="additional_options" value="'
, $context['show_additional_options'] ? 1 : 0, '" />
<input type="hidden" name="sc" value="'
, $context['session_id'], '" />
<input type="hidden" name="seqnum" value="'
, $context['form_sequence_number'], '" />
</form>'
;

// Now some javascript to hide the additional options on load...
if (!empty($settings['additional_options_collapsable']) && !$context['show_additional_options'])
echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
swapOptions();
// ]]></script>'
;

// A hidden form to post data to the spell checking window.
if ($context['show_spellchecking'])
echo '
<form action="'
, $scripturl, '?action=spellcheck" method="post" accept-charset="', $context['character_set'], '" name="spell_form" id="spell_form" target="spellWindow">
<input type="hidden" name="spellstring" value="" />
</form>'
;

// If the user is replying to a topic show the previous posts.
if (isset($context['previous_posts']) && count($context['previous_posts']) > 0)
{
echo '
<br />
<br />

<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
function insertQuoteFast(messageid)
{
if (window.XMLHttpRequest)
getXMLDocument("'
, $scripturl, '?action=quotefast;quote=" + messageid + ";sesc=', $context['session_id'], ';xml", onDocReceived);
else
reqWin("'
, $scripturl, '?action=quotefast;quote=" + messageid + ";sesc=', $context['session_id'], '", 240, 90);

return true;
}
function onDocReceived(XMLDoc)
{
var text = "";
for (var i = 0; i < XMLDoc.getElementsByTagName("quote")[0].childNodes.length; i++)
text += XMLDoc.getElementsByTagName("quote")[0].childNodes[i].nodeValue;

replaceText(text, document.forms.postmodify.message);
}
// ]]></script>

<table cellspacing="1" cellpadding="0" width="92%" align="center" class="bordercolor">
<tr>
<td>
<table width="100%" class="windowbg" cellspacing="0" cellpadding="2" align="center">
<tr class="titlebg">
<td colspan="2">'
, $txt[468], '</td>
</tr>
</table>
<span id="new_replies"></span>
<table width="100%" class="windowbg" cellspacing="0" cellpadding="2" align="center" style="table-layout: fixed;">'
;
foreach ($context['previous_posts'] as $post)
echo '
<tr class="catbg">
<td colspan="2" align="left" class="smalltext">
<div style="float: right;">'
, $txt[280], ': ', $post['time'], $post['is_new'] ? ' <img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt['preview_new'] . '" />' : '', '</div>
'
, $txt[279], ': ', $post['poster'], '
</td>
</tr><tr class="windowbg2">
<td colspan="2" class="smalltext" id="msg'
, $post['id'], '" width="100%">
<div align="right" class="smalltext"><a href="#top" onclick="return insertQuoteFast('
, $post['id'], ');">', $txt[260], '</a></div>
<div class="post">'
, $post['message'], '</div>
</td>
</tr>'
;
echo '
</table>
</td>
</tr>
</table>'
;
}
}

// This function displays all the stuff you'd expect to see with a message box, the box, BBC buttons and of course smileys.
function template_postbox(&$message)
{
global $context, $settings, $options, $txt, $modSettings;

// Assuming BBC code is enabled then print the buttons and some javascript to handle it.
if ($context['show_bbc'])
{
echo '
<tr>
<td align="right"></td>
<td valign="middle">
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
function bbc_highlight(something, mode)
{
something.style.backgroundImage = "url(" + smf_images_url + (mode ? "/bbc/bbc_hoverbg.gif)" : "/bbc/bbc_bg.gif)");
}
// ]]></script>'
;

// The below array makes it dead easy to add images to this page. Add it to the array and everything else is done for you!
$context['bbc_tags'] = array();
$context['bbc_tags'][] = array(
'bold' => array('code' => 'b', 'before' => '[b]', 'after' => '[/b]', 'description' => $txt[253]),
'italicize' => array('code' => 'i', 'before' => '[i]', 'after' => '[/i]', 'description' => $txt[254]),
'underline' => array('code' => 'u', 'before' => '[u]', 'after' => '[/u]', 'description' => $txt[255]),
'strike' => array('code' => 's', 'before' => '[s]', 'after' => '[/s]', 'description' => $txt[441]),
array(),
'glow' => array('code' => 'glow', 'before' => '[glow=red,2,300]', 'after' => '[/glow]', 'description' => $txt[442]),
'shadow' => array('code' => 'shadow', 'before' => '[shadow=red,left]', 'after' => '[/shadow]', 'description' => $txt[443]),
'move' => array('code' => 'move', 'before' => '[move]', 'after' => '[/move]', 'description' => $txt[439]),
array(),
'pre' => array('code' => 'pre', 'before' => '[pre]', 'after' => '[/pre]', 'description' => $txt[444]),
'left' => array('code' => 'left', 'before' => '[left]', 'after' => '[/left]', 'description' => $txt[445]),
'center' => array('code' => 'center', 'before' => '[center]', 'after' => '[/center]', 'description' => $txt[256]),
'right' => array('code' => 'right', 'before' => '[right]', 'after' => '[/right]', 'description' => $txt[446]),
array(),
'hr' => array('code' => 'hr', 'before' => '[hr]', 'description' => $txt[531]),
array(),
'size' => array('code' => 'size', 'before' => '[size=10pt]', 'after' => '[/size]', 'description' => $txt[532]),
'face' => array('code' => 'font', 'before' => '[font=Verdana]', 'after' => '[/font]', 'description' => $txt[533]),
);
$context['bbc_tags'][] = array(
'flash' => array('code' => 'flash', 'before' => '[flash=200,200]', 'after' => '[/flash]', 'description' => $txt[433]),
'img' => array('code' => 'img', 'before' => '[img]', 'after' => '[/img]', 'description' => $txt[435]),
'url' => array('code' => 'url', 'before' => '[url]', 'after' => '[/url]', 'description' => $txt[257]),
'email' => array('code' => 'email', 'before' => '[email]', 'after' => '[/email]', 'description' => $txt[258]),
'ftp' => array('code' => 'ftp', 'before' => '[ftp]', 'after' => '[/ftp]', 'description' => $txt[434]),
array(),
'table' => array('code' => 'table', 'before' => '[table]', 'after' => '[/table]', 'description' => $txt[436]),
'tr' => array('code' => 'td', 'before' => '[tr]', 'after' => '[/tr]', 'description' => $txt[449]),
'td' => array('code' => 'td', 'before' => '[td]', 'after' => '[/td]', 'description' => $txt[437]),
array(),
'sup' => array('code' => 'sup', 'before' => '[sup]', 'after' => '[/sup]', 'description' => $txt[447]),
'sub' => array('code' => 'sub', 'before' => '[sub]', 'after' => '[/sub]', 'description' => $txt[448]),
'tele' => array('code' => 'tt', 'before' => '[tt]', 'after' => '[/tt]', 'description' => $txt[440]),
array(),
'code' => array('code' => 'code', 'before' => '[code]', 'after' => '
', 'description' => $txt[259]),
         'quote' => array('code' => 'quote', 'before' => '
Quote', 'after' => '
', 'description' => $txt[260]),
         array(),
         'list' => array('code' => 'list', 'before' => '
    \n
  • ', 'after' => '
  • \n
  • \n
', 'description' => $txt[261]),
      );

      $found_button = false;
      // Here loop through the array, printing the images/rows/separators!
      foreach ($context['bbc_tags'][0] as $image => $tag)
      {
         // Is there a "before" part for this bbc button? If not, it can't be a button!!
         if (isset($tag['before']))
         {
            // Is this tag disabled?
            if (!empty($context['disabled_tags'][$tag['code']]))
               continue;

            $found_button = true;

            // If there's no after, we're just replacing the entire selection in the post box.
            if (!isset($tag['after']))
               echo '<a href="javascript:void(0);" onclick="replaceText(\'', $tag['before'], '\', document.forms.', $context['post_form'], '.', $context['post_box_name'], '); return false;">';
            // On the other hand, if there is one we are surrounding the selection ;).
            else
               echo '<a href="javascript:void(0);" onclick="surroundText(\'', $tag['before'], '\', \'', $tag['after'], '\', document.forms.', $context['post_form'], '.', $context['post_box_name'], '); return false;">';

            // Okay... we have the link. Now for the image and the closing </a>!
            echo '<img onmouseover="bbc_highlight(this, true);" onmouseout="if (window.bbc_highlight) bbc_highlight(this, false);" src="', $settings['images_url'], '/bbc/', $image, '.gif" align="bottom" width="23" height="22" alt="', $tag['description'], '" title="', $tag['description'], '" style="background-image: url(', $settings['images_url'], '/bbc/bbc_bg.gif); margin: 1px 2px 1px 1px;" /></a>';
         }
         // I guess it's a divider...
         elseif ($found_button)
         {
            echo '<img src="', $settings['images_url'], '/bbc/divider.gif" alt="|" style="margin: 0 3px 0 3px;" />';
            $found_button = false;
         }
      }

      // Print a drop down list for all the colors we allow!
      if (!isset($context['disabled_tags']['color']))
         echo ' <select onchange="surroundText(\'[color=\' + this.options[this.selectedIndex].value.toLowerCase() + \']\', \'[/color]\', document.forms.', $context['post_form'], '.', $context['post_box_name'], '); this.selectedIndex = 0; document.forms.', $context['post_form'], '.', $context['post_box_name'], '.focus(document.forms.', $context['post_form'], '.', $context['post_box_name'], '.caretPos);" style="margin-bottom: 1ex;">
                     <option value="" selected="selected">', $txt['change_color'], '</option>
                     <option value="Black">', $txt[262], '</option>
                     <option value="Red">', $txt[263], '</option>
                     <option value="Yellow">', $txt[264], '</option>
                     <option value="Pink">', $txt[265], '</option>
                     <option value="Green">', $txt[266], '</option>
                     <option value="Orange">', $txt[267], '</option>
                     <option value="Purple">', $txt[268], '</option>
                     <option value="Blue">', $txt[269], '</option>
                     <option value="Beige">', $txt[270], '</option>
                     <option value="Brown">', $txt[271], '</option>
                     <option value="Teal">', $txt[272], '</option>
                     <option value="Navy">', $txt[273], '</option>
                     <option value="Maroon">', $txt[274], '</option>
                     <option value="LimeGreen">', $txt[275], '</option>
                  </select>';
      echo '<br />';

      $found_button = false;
      // Print the buttom row of buttons!
      foreach ($context['bbc_tags'][1] as $image => $tag)
      {
         if (isset($tag['before']))
         {
            // Is this tag disabled?
            if (!empty($context['disabled_tags'][$tag['code']]))
               continue;

            $found_button = true;

            // If there's no after, we're just replacing the entire selection in the post box.&l

Aportadordelmix


simplemachin

Gracias, ABM.
Pues supongo que me puede servir, tendré que probarlo aunque deberia de poderse modificar algo en el codigo del
post.template.php  para que poder hacerlo.
Saludos.

Aportadordelmix

Quote from: simplemachin on May 05, 2010, 06:21:42 AM
Gracias, ABM.
Pues supongo que me puede servir, tendré que probarlo aunque deberia de poderse modificar algo en el codigo del
post.template.php  para que poder hacerlo.
Saludos.

Gracias a vos.

P/d: Lo podes marcar como resuelto, si lo es?

Saludos.

simplemachin

Hola, acabo de probarlo y no funciona del todo:
-1º solo funciona con las imagenes subidas a servidores a externos como imageshack, no funciona con las imagenes subidas como adjuntas.
Y 2º no me funciona lo de pasar el raton por encima de la imagen y que se expanda a tamaño original, y ademas cuando pinchas sobre la imagen para expandirla se te abre la imagen en una ventana nueva del navegador, con lo que despues tienes que darle click "atras" en el navegador para volver al mensaje.Digamos que estoy igual que antes.
Gracias de todos modos.

Aportadordelmix


simplemachin

Gracias, ABM.
Al final lo he solucionado instalando el mod Highslide image , y funciona fantastico.

Aportadordelmix

De nada, me alegro que haya podido haber participado en la solucion de tu problema.

P/d: Al final del post lo podes marcar como solucionado a tu consulta.

Saludos.

Advertisement: