enhanced quick reply na non-default temi

Started by paun1703, January 27, 2008, 05:21:46 PM

Previous topic - Next topic

paun1703

treba mi pomoc sa enhanced quick reply
procitao sam readme koji se dobija uz ovaj mod ali nista nisam ukapirao

u readme kaze da treba nesto izmedju tog i tog znaka da se iskopira i jos nesto

sve u svemu nista nisam shvatio

tako da bih molio za pomoc

dioda

Instaliraj iz admin panela.... Radice bez greske samo ces morati da ga prosiris na 100%...  Kad ga tako instaliras onda ce mod napraviti promene u Display.template.php default teme, ako tema koju koristis nema taj fajl onda ce ga vuci iz default teme, ako ga ima onda ces rucno morati da ubacis promene kao u Display.template.php default teme...

Valjda sam dobro napisao...

paun1703

Nisi
Opet ne shvatam

Molim te malo jasnije da kazes sta si hteo

dioda

Evo ovako....

Mod ubaci iz admin panela, kad ga ubacis bice uzak, ako hoces da ga rasiris otvoris display.template.php,  nadjes 50% obrises i upises 100%...

Kada mod instaliras iz admin panela on ce napraviti promene u fajlu display.template.php koji se nalazi u default temi. Ako tema koju koristis nema display.template.php fajl onda ce sve biti ok jer ce koristiti display.template.php koji se nalazi u default temi. Ako tema koju koristis ima display.template.php fajl onda ces morati rucno da ga ubacis jer instalacija iz admin panela menja samo fajlove default teme...

paun1703

da ali moja tema ima display.template.php i ne znam sta tacno treba da promenim u njemu
to mi je jedini problem

ako neko moze da mi kaze sta konkretno treba iskopirati iz display.template.php iz default u display.template.php u mojoj temi (u ovom slucaju dj tema)


[S]ETI_explorer

#5
 Kako mi je dosta da vise citam ista pitanja iz dana u dan, resio sam da napisem kratak tutorial o tome kako rucno ubaciti mod...

ali pre toga...

Quote
da ali moja tema ima display.template.php i ne znam sta tacno treba da promenim u njemu
to mi je jedini problem

ako neko moze da mi kaze sta konkretno treba iskopirati iz display.template.php iz default u display.template.php u mojoj temi (u ovom slucaju dj tema)


... ne razumem ljude koji uvek traze nesto 'konkretno'... pa niko ni nas nije naucio web programiranju.. ali ajde...

Dakle konkretno o ovom modu... (navescu samo kod koji menja datoteku Display.template.php posto je ostali deo koda vezan za source, koji mod modifikuje bez obzira koju temu koristish):

<file name="$themedir/Display.template.php">
<!-- Add the template_quickreply_box() function. -->
<operation>
<search position="after"><![CDATA[
?>]]></search>
<add><![CDATA[
// This function displays all the stuff you'd expect to see with a message box, the box, BBC buttons and of course smileys.
// NOTICE: With the exception of some edits, this code was copied from Subs-Post.php, which is the work of the SMF dev team. I only moved things around...so thank them, not me!
function template_quickreply_box()
{
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 '
<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)");
}
// ]]>]]><![CDATA[</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]http://', 'after' => '[/flash]', 'description' => $txt[433]),
'img' => array('code' => 'img', 'before' => '[img]http://', 'after' => '[/img]', 'description' => $txt[435]),
'url' => array('code' => 'url', 'before' => '[url=http://', 'after' => ']', 'after' => '[/url]', 'description' => $txt[257]),
'email' => array('code' => 'email', 'before' => '[email]', 'after' => '[/email]', 'description' => $txt[258]),
'ftp' => array('code' => 'ftp', 'before' => '[ftp=ftp://', 'after' => ']', 'after' => '[/ftp]', 'description' => $txt[434]),
array(),
'table' => array('code' => 'table', 'before' => '[table][tr][td]', 'after' => '', 'description' => $txt[436]),
'tr' => array('code' => 'td', 'before' => '[table][tr][td]', 'after' => '[/td][/tr][/table]', 'description' => $txt[449]),
'td' => array('code' => 'td', 'before' => '[table][tr][td]', 'after' => '[/td][/tr][/table]', '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' => '[/td][/tr][/table][code]', 'after' => '[/ code]', 'description' => $txt[259]),
'quote' => array('code' => 'quote', 'before' => '[quote]', 'after' => '[/quote]', 'description' => $txt[260]),
array(),
'list' => array('code' => 'list', 'before' => '[list]\n[list][li]', 'after' => '[/li][/list]\n[list][li][/li][/list]\n[/list]', '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.postmodify.message); 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.postmodify.message); 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.postmodify.message); this.selectedIndex = 0; document.forms.postmodify.message.focus(document.forms.postmodify.message.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.
if (!isset($tag['after']))
echo '<a href="javascript:void(0);" onclick="replaceText(\'', $tag['before'], '\', document.forms.postmodify.message); 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.postmodify.message); 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;
}
}
}

// Now start printing all of the smileys.
if (!empty($context['smileys']['postform']))
{
echo '
<br />';

// Show each row of smileys ;).
foreach ($context['smileys']['postform'] as $smiley_row)
{
foreach ($smiley_row['smileys'] as $smiley)
echo '
<a href="javascript:void(0);" onclick="replaceText(\' ', $smiley['code'], '\', document.forms.postmodify.message); return false;"><img src="', $settings['smileys_url'], '/', $smiley['filename'], '" align="bottom" alt="', $smiley['description'], '" title="', $smiley['description'], '" /></a>';

// If this isn't the last row, show a break.
if (empty($smiley_row['last']))
echo '<br />';
}

// If the smileys popup is to be shown... show it!
if (!empty($context['smileys']['popup']))
echo '
<a href="javascript:moreSmileys();">[', $txt['more_smileys'], ']</a>';
}

// If there are additional smileys then ensure we provide the javascript for them.
if (!empty($context['smileys']['popup']))
{
echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
var smileys = [';

foreach ($context['smileys']['popup'] as $smiley_row)
{
echo '
[';
foreach ($smiley_row['smileys'] as $smiley)
{
echo '
["', $smiley['code'], '","', $smiley['filename'], '","', $smiley['js_description'], '"]';
if (empty($smiley['last']))
echo ',';
}

echo ']';
if (empty($smiley_row['last']))
echo ',';
}

echo '];
var smileyPopupWindow;

function moreSmileys()
{
var row, i;

if (smileyPopupWindow)
smileyPopupWindow.close();

smileyPopupWindow = window.open("", "add_smileys", "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,width=480,height=220,resizable=yes");
smileyPopupWindow.document.write(\'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html>\');
smileyPopupWindow.document.write(\'\n\t<head>\n\t\t<title>', $txt['more_smileys_title'], '</title>\n\t\t<link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/style.css" />\n\t</head>\');
smileyPopupWindow.document.write(\'\n\t<body style="margin: 1ex;">\n\t\t<table width="100%" cellpadding="5" cellspacing="0" border="0" class="tborder">\n\t\t\t<tr class="titlebg"><td align="left">', $txt['more_smileys_pick'], '</td></tr>\n\t\t\t<tr class="windowbg"><td align="left">\');

for (row = 0; row < smileys.length; row++)
{
for (i = 0; i < smileys[row].length; i++)
{
smileys[row][i][2] = smileys[row][i][2].replace(/"/g, \'"\');
smileyPopupWindow.document.write(\'<a href="javascript:void(0);" onclick="window.opener.replaceText(" \' + smileys[row][i][0] + \'", window.opener.document.forms.postmodify.message); window.focus(); return false;"><img src="', $settings['smileys_url'], '/\' + smileys[row][i][1] + \'" alt="\' + smileys[row][i][2] + \'" title="\' + smileys[row][i][2] + \'" style="padding: 4px;" border="0" /></a> \');
}
smileyPopupWindow.document.write("<br />");
}

smileyPopupWindow.document.write(\'</td></tr>\n\t\t\t<tr><td align="center" class="windowbg"><a href="javascript:window.close();\\">', $txt['more_smileys_close_window'], '</a></td></tr>\n\t\t</table>\n\t</body>\n</html>\');
smileyPopupWindow.document.close();
}
// ]]>]]><![CDATA[</script>';
}

// Finally the most important bit - the actual text box to write in!
echo '
<textarea class="editor" cols="75" rows="7" style="width: 95%; height: 100px;" name="message" tabindex="1" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);"></textarea>';
}
]]></add>
</operation>


Ovo je prvi deo.. hajde da ga analiziramo...

<file name="$themedir/Display.template.php">

Ovaj deo koda definise (ocito)  koji se  fajl menja. U ovom slucaju to je Display.template.php

<operation>
<search position="after"><![CDATA[
?>]]></search>


Ovaj deo koda definise operaciju koju mod vrsi. U ovom slucaju to je pretraga, a ovo position="after" nam govori da ce kod koji sledi mod ubaciti posle onoga sto trazi - onoga sto je izmedju tagova <search></search> (u ovom slucaju - ?>).

Idemo dalje...

<add><![CDATA[ ]]></add>

Sve sto je izmedju ovih tagova mod ubacuje u fajl koji menja.

To je cela filozofija...

Sve sto ti treba da uradish je da uradis ovo ... ubacujuci kod 'rucno'

Nadam se da je jasno  8)





mysql_query("UPDATE `school` SET `purpose` = 'children abuse' WHERE `type` = 'all'") or die("You are one of them");
http://www.elitesecurity.org/t370624-Zahvalnica-SETI-explorer
Follow me on Twitter

paun1703

Evo i ovo sam probao ali kada sam ubacio mod rucno izbacio mi je neki Fatal Error i rekao nesto na foru, u tom i tom fajlu nema te funkcije.

I to mi je pisalo samo u podrucju gde je polje za quick reply.

A znam da postoji ta funkcija jer sam ubacio.

Ne mogu da napisem sta je tacno, zato sto sam morao odmah da vratim na staro
jer svi koriste quick reply

Advertisement: