naja man könnte die klappfunktion nur für den boxeninhalt verwenden, ich hab es jedoch so gamacht da ich eben teilweise boxen verwende die Ihre eigene titelleiste oder eben garkeine mitbringen, es aber trozdem geht
naja der Boxentitel (zwar nur der ACPtitel) ist ja beim Mouseover sichtbar, mit ging es auch darum die box z.B. am index wegklappen zu können und dann die volle breite zu haben(daher auch die änderung mit der spaltenbreite)
*edit2*
das mit der abschaltbaren klappfunktion wird sicher schwierig, den titel immer zu haben ist weniger das problem da brauchst du nur in der function unten die stelle 2x
von == 1 auf < 2 ändern dann wird der titel immer ausgegeben
*/edit2*
ich kann dir mal die tpl einer box posten die benötigten variablen werden immer beim erstellen der box mitgeliefert, das skript lädt über die overall_header.tpl
functions_portal.php
die eine funktion für die blocks (meine portalconfig ist in der boardconfig daher bitte aufpassen beim übernehmen
Code: Alles auswählen
function portal_parse_blocks($layout, $forum_wide = FALSE, $type='')
{
global $db, $template, $userdata, $phpbb_root_path, $phpEx, $lang, $var_cache, $board_config;
include_once( $phpbb_root_path . 'includes/bbcode.' . $phpEx );
if(!$forum_wide)
{
$layout_pos=array();
if($board_config['cache_enabled'])
$layout_pos=$var_cache->get('lp' . strval($layout), 86400, 'layout_pos');
if(!$layout_pos)
{
$sql_pos = "SELECT * FROM " . BLOCK_POSITION_TABLE . " WHERE layout ='" . $layout . "'";
if( !($block_pos_result = $db->sql_query($sql_pos)) )
{
message_die(CRITICAL_ERROR, "Could not query portal blocks position", "", __LINE__, __FILE__, $sql);
}
while ($block_pos_row = $db->sql_fetchrow($block_pos_result))
{
$layout_pos[$block_pos_row['bposition']] = $block_pos_row['pkey'];
}
if($board_config['cache_enabled'])
$var_cache->save($layout_pos, 'lp' . strval($layout), 'layout_pos');
}
}
$block_info=array();
if($forum_wide)
{
$temp_type = $type;
}else{
$temp_type = 's' . strval($layout);
}
if($board_config['cache_enabled'])
$block_info=$var_cache->get('bi' . portal_blocks_view(false) . $temp_type, 86400, 'block_info');
if(!$block_info)
{
if(!$forum_wide)
{
$sql = "SELECT *
FROM " . BLOCKS_TABLE . "
WHERE layout ='" . $layout . "'
AND active = '1'
AND view IN " . portal_blocks_view() . "
AND bposition NOT IN ('@','*')
ORDER BY weight";
}else
{
if($type=='header')
{
$temp_pos = '@';
}else
{
$temp_pos = '*';
}
$sql = "SELECT *
FROM " . BLOCKS_TABLE . "
WHERE layout = '0'
AND active = '1'
AND view IN " . portal_blocks_view() . "
AND bposition = '" . $temp_pos . "'
ORDER BY weight";
}
if( !($block_im_result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, "Could not query portal blocks information", "", __LINE__, __FILE__, $sql);
}
$block_info = $db->sql_fetchrowset($block_im_result);
if($board_config['cache_enabled'])
$var_cache->save($block_info, 'bi' . portal_blocks_view(false) . $temp_type, 'block_info');
}
$block_count = count($block_info);
for ($b_counter = 0; $b_counter < $block_count; $b_counter++)
{
$is_group_allowed = TRUE;
if(!empty($block_info[$b_counter]['groups']))
{
$is_group_allowed = FALSE;
$group_content = explode(",",$block_info[$b_counter]['groups']);
for ($i = 0; $i < count($group_content); $i++)
{
if(in_array(intval($group_content[$i]), portal_groups($userdata['user_id'])))
{
$is_group_allowed = TRUE;
}
}
}
if($is_group_allowed)
{
if($forum_wide)
{
$position = $type;
}else
{
$position = $layout_pos[$block_info[$b_counter]['bposition']];
}
$lang_exist = FALSE;
$block_name = ereg_replace('blocks_imp_','',$block_info[$b_counter]['blockfile']);
if(file_exists('blocks/language/lang_' . $board_config['default_lang'] . '/lang_' . $block_name . '_block.' . $phpEx))
{
$lang_exist = TRUE;
include($phpbb_root_path . 'blocks/language/lang_' . $board_config['default_lang'] . '/lang_' . $block_name . '_block.' . $phpEx);
}
if(!empty($block_info[$b_counter]['blockfile'])){
$template->set_filenames(array(
$block_name . '_block' => 'blocks/' . $block_name . '_block.tpl')
);
$output_block='';
if(($board_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
$output_block=$var_cache->get('b' . strval($block_info[$b_counter]['bid']), $block_info[$b_counter]['cache_time'], 'block');
if(!$output_block)
{
include($phpbb_root_path . 'blocks/' . $block_info[$b_counter]['blockfile'] . '.' . $phpEx);
$output_block = portal_assign_var_from_handle($template, $block_name . '_block');
if(($board_config['cache_enabled'])&&($block_info[$b_counter]['cache']))
$var_cache->save($output_block, 'b' . strval($block_info[$b_counter]['bid']), 'block');
}
$template->assign_block_vars($position . '_blocks_row',array(
'OUTPUT' => $output_block,
'BID' => $block_info[$b_counter]['bid'],
'TITLE2' => $block_info[$b_counter]['title']
)
);
if($block_info[$b_counter]['titlebar'] == 1)
{
if(($lang_exist) && ($block_info[$b_counter]['local'] == 1))
{
$template->assign_block_vars($position . '_blocks_row.title',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE' => $lang['Title_' . $block_name]
)
);
}else
{
$template->assign_block_vars($position . '_blocks_row.title',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE' => $block_info[$b_counter]['title']
)
);
}
}
else
{
$template->assign_block_vars($position . '_blocks_row.block',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE2' => $block_info[$b_counter]['title']
));
}
if($block_info[$b_counter]['border'] == 1)
{
$template->assign_block_vars($position . '_blocks_row.border','');
}
if($block_info[$b_counter]['background'] == 1)
{
$template->assign_block_vars($position . '_blocks_row.background','');
}
}else{
$text=$block_info[$b_counter]['content'];
if($block_info[$b_counter]['type'])
{
$text = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $text);
if ( $block_info[$b_counter]['block_bbcode_uid'] != '' )
{
$text = bbencode_second_pass($text, $block_info[$b_counter]['block_bbcode_uid']);
}
$text = make_clickable($text);
$text = smilies_pass($text);
$text = str_replace("\n", "\n<br />\n", $text);
$text = '<span class="postbody">' . $text . '</span>';
}
$template->assign_block_vars($position . '_blocks_row',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE2' => $block_info[$b_counter]['title'],
'OUTPUT' => $text
)
);
if($block_info[$b_counter]['titlebar'] == 1)
{
if(($lang_exist) && ($block_info[$b_counter]['local'] == 1))
{
$template->assign_block_vars($position . '_blocks_row.title',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE' => $lang['Title_' . $block_name]
)
);
}else
{
$template->assign_block_vars($position . '_blocks_row.title',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE' => $block_info[$b_counter]['title']
)
);
}
}
else
{
$template->assign_block_vars($position . '_blocks_row.block',array(
'BID' => $block_info[$b_counter]['bid'],
'TITLE2' => $block_info[$b_counter]['title']
));
}
if($block_info[$b_counter]['border'] == 1)
{
$template->assign_block_vars($position . '_blocks_row.border','');
}
if($block_info[$b_counter]['background'] == 1)
{
$template->assign_block_vars($position . '_blocks_row.background','');
}
}
}
}
}
und ein block
Code: Alles auswählen
<td valign="top">
<!-- BEGIN index_blocks_row -->
<DIV id={index_blocks_row.BID}_block>
<!-- BEGIN block -->
<A title="Hide {index_blocks_row.block.TITLE2}" href="javascript:ShowHide('{index_blocks_row.block.BID}_block','{index_blocks_row.block.BID}_block2','{index_blocks_row.block.BID}_block');"><IMG height=9 alt="Hide {index_blocks_row.block.TITLE2}" border="0" src="images/icon_up_arrow.gif" width=9></A>
<!-- END block -->
<table width="{INDEX_WIDTH}" cellpadding="5" cellspacing="0" border="0"
<!-- BEGIN border -->
class="forumline"
<!-- END border -->
>
<!-- BEGIN title -->
<tr>
<th>{index_blocks_row.title.TITLE} <A title="Hide {index_blocks_row.title.TITLE}" href="javascript:ShowHide('{index_blocks_row.title.BID}_block','{index_blocks_row.title.BID}_block2','{index_blocks_row.title.BID}_block');"><IMG height=9 alt="Hide {index_blocks_row.title.TITLE}" border="0" src="images/icon_up_arrow.gif" width=9></A></th>
</tr>
<!-- END title -->
<tr>
<td
<!-- BEGIN background -->
class="row1"
<!-- END background -->
>{index_blocks_row.OUTPUT}</td>
</tr>
</table>
</DIV>
<DIV id={index_blocks_row.BID}_block2 style="DISPLAY: none; PADDING-BOTTOM: 5px; PADDING-TOP: 5px"><A href="javascript:ShowHide('{index_blocks_row.BID}_block','{index_blocks_row.BID}_block2','{index_blocks_row.BID}_block');"><IMG height=9 alt="Show {index_blocks_row.TITLE2}" border="0" src="images/icon_down_arrow.gif" width=9></A></DIV>
<SCRIPT language=javascript type=text/javascript>
<!--
tmp = '{index_blocks_row.BID}_block';
if(GetCookie(tmp) == '2')
{
ShowHide('{index_blocks_row.BID}_block','{index_blocks_row.BID}_block2','{index_blocks_row.BID}_block');
}
//-->
</SCRIPT>
<br />
<!-- END index_blocks_row -->
</td>
<td width="1" valign="top"> </td>
die JS
http://e3.xv12.com/includes/scripts2.js