collapse collapse

* User Info

 
 
Welcome, Guest. Please login or register.
Did you miss your activation email?

* Who's Online

  • Dot Guests: 129
  • Dot Hidden: 0
  • Dot Users: 0

There aren't any users online.

* Shoutbox

Refresh History
  • Shoutbox is not for support!
  • {OCS}MasterSeal: STILL love SP :)
    November 24, 2018, 05:05:50 AM
  • ♦ Ninja ZX-10RR ♦: <3 aegersz
    September 13, 2018, 03:36:09 PM
  • aegersz: I STILL <3 LOVE SimplePortal
    September 13, 2018, 07:11:39 AM
  • aegersz: o LOVE you guys - Simple Portal rocks !
    May 09, 2018, 05:18:59 AM
  • Chen Zhen: our apologies for the site being down.. please read server issues topic
    March 22, 2018, 05:32:38 AM
  • {OCS}MasterSeal: LOL PLEASE forget I just posted that. I found the answer in my own dang post back in 2015. lol sorry!
    July 04, 2017, 10:47:55 PM
  • {OCS}MasterSeal: I know this SB isnt' for support, but I just have a general question. Who would I contact to find out where SP stores its block info? Is it DB driven or files? I searched the site but came up with nothing. probably my fault any insight is appreciated.
    July 04, 2017, 10:43:36 PM
  • ♦ Ninja ZX-10RR ♦: Excuse me but what does Simpleportal have to deal with that?
    February 05, 2017, 08:21:14 PM
  • WhiteEagle: of course IMHO that site appears to be dead :(
    February 04, 2017, 01:08:05 PM
  • WhiteEagle: If I can get that, then I'll use it for that site...
    February 04, 2017, 01:07:35 PM
  • WhiteEagle: decided to not use SMF for any projects, unless I can get a copy of the premium version of the fanfiction archive plugin
    February 04, 2017, 01:06:54 PM
  • expertdecisions: cloudflare
    January 28, 2017, 08:01:47 AM
  • aegersz: SM release 2.0.13 !
    January 12, 2017, 06:00:13 AM
  • raffo: Tks Emanuele, even if I didn't understand the fix :D
    November 07, 2016, 02:01:20 AM
  • emanuele: [link]
    November 01, 2016, 12:43:50 PM
  • emanuele: raffo: the English support board is a good place. ;)
    November 01, 2016, 12:43:38 PM
  • raffo: Where can I find the fix for the shoutbox?
    November 01, 2016, 05:06:09 AM
  • {OCS}MasterSeal: To the SP team, I make a point to come here and thank you as much as possible for your work.  so again, THANK YOU!
    October 28, 2016, 10:38:05 AM
  • emanuele: That's indeed funny, the limit is present only in the patch and not the full install.
    October 22, 2016, 06:14:58 PM
  • phantomm: and from what I see only patch is broken, full install package is fine
    October 21, 2016, 03:44:44 PM

* Recent Posts

Re: v 2.3.3 to v2.3.7 by ♦ Ninja ZX-10RR ♦
[December 11, 2018, 04:14:48 PM]


v 2.3.3 to v2.3.7 by rollingrock
[December 11, 2018, 09:36:20 AM]


[Block] Help with editing few lines on Simpleportal by Wallen
[December 09, 2018, 05:10:34 AM]


Re: LinkTree by Chen Zhen
[November 15, 2018, 02:24:51 PM]


Re: blocks showing user avatars by hulapyk
[November 15, 2018, 01:47:11 PM]

Welcome to SimplePortal.net! You can download SimplePortal from the Downloads Area!

Author Topic: Blocks In Blocks  (Read 88115 times)

0 Members and 2 Guests are viewing this topic.

Offline glennk

  • Semi Newbie
  • *
  • Posts: 5
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Blocks In Blocks
« Reply #80 on: December 15, 2012, 07:52:20 PM »
Just what I was looking for, thankyou

Offline J Dub

  • Newbie
  • Posts: 4
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Blocks In Blocks
« Reply #81 on: January 18, 2013, 05:31:06 PM »
I just want to confirm something with this one, the 'outta block' that you set other blocks in, this decides who can see them all? you cant set so differant member groups can see for example one block inside and another member group could see 2?

Offline kaustubh

  • Just Registered
  • Posts: 1
  • SMF Version: 2.0.4
  • SP Version: 2.3.5
Re: Blocks In Blocks
« Reply #82 on: July 20, 2013, 01:20:31 PM »
i want to add php custom block to block in block...

But not getting a way to do it.

My PHP code is (Planning to add smf info center in block in block)

Code: [Select]
global $context, $txt, $settings, $modSettings, $sourcedir, $user_info;

   // Get the user online list.
   require_once($sourcedir . '/Subs-MembersOnline.php');
   $membersOnlineOptions = array(
      'show_hidden' => allowedTo('moderate_forum'),
      'sort' => 'log_time',
      'reverse_sort' => true,
   );
   $context += getMembersOnlineStats($membersOnlineOptions);

   $context['show_buddies'] = !empty($user_info['buddies']);

   // Are we showing all membergroups on the board index?
   if (!empty($settings['show_group_key']))
      $context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array());

   // Track most online statistics? (Subs-MembersOnline.php)
   if (!empty($modSettings['trackStats']))
      trackStatsUsersOnline($context['num_guests'] + $context['num_spiders'] + $context['num_users_online']);

   // Retrieve the latests posts if the theme settings require it.
   if (isset($settings['number_recent_posts']) && $settings['number_recent_posts'] > 1)
   {
      $latestPostOptions = array(
         'number_posts' => $settings['number_recent_posts'],
      );
      $context['latest_posts'] = cache_quick_get('boardindex-latest_posts:' . md5($user_info['query_wanna_see_board'] . $user_info['language']), 'Subs-Recent.php', 'cache_getLastPosts', array($latestPostOptions));
   }

   $settings['display_recent_bar'] = !empty($settings['number_recent_posts']) ? $settings['number_recent_posts'] : 0;
   $settings['show_member_bar'] &= allowedTo('view_mlist');
   $context['show_stats'] = allowedTo('view_stats') && !empty($modSettings['trackStats']);
   $context['show_member_list'] = allowedTo('view_mlist');
   $context['show_who'] = allowedTo('who_view') && !empty($modSettings['who_enabled']);

   // Show statistical style information...
   if ($settings['show_stats_index'])
   {
      echo '
         <div class="title_barIC">
            <h4 class="titlebg">
               <span class="ie6_header floatleft">
                  <a href="', $scripturl, '?action=stats"><img class="icon" src="', $settings['images_url'], '/icons/info.gif" alt="', $txt['forum_stats'], '" /></a>
                  ', $txt['forum_stats'], '
               </span>
            </h4>
         </div>
         <p class="infobg2">
            ', $context['common_stats']['total_posts'], ' ', $txt['posts_made'], ' ', $txt['in'], ' ', $context['common_stats']['total_topics'], ' ', $txt['topics'], ' ', $txt['by'], ' ', $context['common_stats']['total_members'], ' ', $txt['members'], '. ', !empty($settings['show_latest_member']) ? $txt['latest_member'] . ': <strong> ' . $context['common_stats']['latest_member']['link'] . '</strong>' : '', '<br />
            ', (!empty($context['latest_post']) ? $txt['latest_post'] . ': <strong>&quot;' . $context['latest_post']['link'] . '&quot;</strong>  ( ' . $context['latest_post']['time'] . ' )<br />' : ''), '
            <a href="', $scripturl, '?action=recent">', $txt['recent_view'], '</a>', $context['show_stats'] ? '<br />
            <a href="' . $scripturl . '?action=stats">' . $txt['more_stats'] . '</a>' : '', '
         </p>';
   }
   // "Users online" - in order of activity.
   echo '
         <div class="title_barIC">
            <h4 class="titlebg">
               <span class="ie6_header floatleft">
                  ', $context['show_who'] ? '<a href="' . $scripturl . '?action=who' . '">' : '', '<img class="icon" src="', $settings['images_url'], '/icons/online.gif', '" alt="', $txt['online_users'], '" />', $context['show_who'] ? '</a>' : '', '
                  ', $txt['online_users'], '
               </span>
            </h4>
         </div>
         <div class="infobg2">
         <p class="inline stats">
            ', $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', comma_format($context['num_guests']), ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . comma_format($context['num_users_online']), ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];

   // Handle hidden users and buddies.
   $bracketList = array();
   if ($context['show_buddies'])
      $bracketList[] = comma_format($context['num_buddies']) . ' ' . ($context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies']);
   if (!empty($context['num_spiders']))
      $bracketList[] = comma_format($context['num_spiders']) . ' ' . ($context['num_spiders'] == 1 ? $txt['spider'] : $txt['spiders']);
   if (!empty($context['num_users_hidden']))
      $bracketList[] = comma_format($context['num_users_hidden']) . ' ' . $txt['hidden'];

   if (!empty($bracketList))
      echo ' (' . implode(', ', $bracketList) . ')';

   echo $context['show_who'] ? '</a>' : '', '
         </p>
         <p class="inline smalltext">';

   // Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
   if (!empty($context['users_online']))
   {
      echo '
            ', sprintf($txt['users_active'], $modSettings['lastActive']), ':<br />', implode(', ', $context['list_users_online']);

      // Showing membergroups?
      if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
         echo '
            <br />[' . implode(']&nbsp;&nbsp;[', $context['membergroups']) . ']';
   }

   echo '
         </p>
         <p class="last smalltext">
            ', $txt['most_online_today'], ': <strong>', comma_format($modSettings['mostOnlineToday']), '</strong>.
            ', $txt['most_online_ever'], ': ', comma_format($modSettings['mostOnline']), ' (', timeformat($modSettings['mostDate']), ')
         </p>
         </div>';

   // If they are logged in, but statistical information is off... show a personal message bar.
   if ($context['user']['is_logged'] && !$settings['show_stats_index'])
   {
      echo '
         <div class="title_barIC">
            <h4 class="titlebg">
               <span class="ie6_header floatleft">
                  ', $context['allow_pm'] ? '<a href="' . $scripturl . '?action=pm">' : '', '<img class="icon" src="', $settings['images_url'], '/message_sm.gif" alt="', $txt['personal_message'], '" />', $context['allow_pm'] ? '</a>' : '', '
                  <span>', $txt['personal_message'], '</span>
               </span>
            </h4>
         </div>
         <p class="pminfo">
            <strong><a href="', $scripturl, '?action=pm">', $txt['personal_message'], '</a></strong>
            <span class="smalltext">
               ', $txt['you_have'], ' ', comma_format($context['user']['messages']), ' ', $context['user']['messages'] == 1 ? $txt['message_lowercase'] : $txt['msg_alert_messages'], '.... ', $txt['click'], ' <a href="', $scripturl, '?action=pm">', $txt['here'], '</a> ', $txt['to_view'], '
            </span>
         </p>';
   }

   echo '
      </div>
   </div></div>';

How to add above php code in block in block???

Offline AngelinaBelle

  • Comrade
  • *
  • Posts: 4870
  • Gender: Female
  • SMF Version: 2 RC3
  • SP Version: 2.3.2
Re: Blocks In Blocks
« Reply #83 on: August 02, 2013, 12:28:37 PM »
I would suggest putting that custom php code into a custom php block.
 
when you are satisfied with that, then explore using it inside another block.
Please to keep this website running, if you like SimplePortal, make a
one-time subscription. Thank you for your support.

Have you tried the SimplePortal documentation?

Offline [SiNaN]

  • Mr. SimplePortal
  • Developer
  • *
  • Posts: 6782
  • SMF Version: 2.0.15
  • SP Version: 2.3.7
Re: Blocks In Blocks
« Reply #84 on: August 14, 2013, 11:35:38 AM »
If you are using the method explained in this post, then you'll have to pass that whole code as the "content" parameter for sp_php block. However, it should be easier to do using the method explained at the very first post of this topic.
And slowly, you come to realize... It's all as it should be...

Offline Divecall

  • Full Member
  • ***
  • Posts: 201
  • SMF Version: 2.0.2
  • SP Version: 2.3.5
Re: Blocks In Blocks
« Reply #85 on: September 26, 2013, 05:18:25 AM »
This here:

http://simpleportal.net/index.php?topic=5332.msg37856#msg37856

is no longer working with SP 2.3.5

 :dead:

Offline [SiNaN]

  • Mr. SimplePortal
  • Developer
  • *
  • Posts: 6782
  • SMF Version: 2.0.15
  • SP Version: 2.3.7
Re: Blocks In Blocks
« Reply #86 on: January 24, 2014, 04:23:17 PM »
I'm very sorry for the extremely delayed response. Do you still require assistance with that?
And slowly, you come to realize... It's all as it should be...

Offline FireDitto

  • Jr. Member
  • **
  • Posts: 91
  • Gender: Female
    • Second Pass Weyr
  • SMF Version: 2.0.11
  • SP Version: 2.3.5
  • Elkarte Version: None
Re: Blocks In Blocks
« Reply #87 on: February 10, 2014, 11:16:14 PM »
You can even call the block functions, without the block template, using the proper parameters. And with some JavaScript, you can have pretty blocks like this:

http://simpleportal.net/index.php?page=blocks_in_block_sample#sp_collapse_54

Code: [Select]
global $txt;

$txt['recent_topics'] = 'Recent Topics';
$txt['recent_posts'] = 'Recent Posts';

$buttons = array(
   'recent_topics' => array(
      'text' => 'recent_topics',
      'image' => '',
      'lang' => true,
      'url' => '#recent_topics" id="b_rt" onclick="change_display(\'rp\'); return false;',
      'active' => true,
   ),
   'recent_posts' => array(
      'text' => 'recent_posts',
      'image' => '',
      'lang' => true,
      'url' => '#recent_posts" id="b_rp" onclick="change_display(\'rt\'); return false;',
   ),
);

echo '
<div style="overflow: auto;">
   ', template_button_strip($buttons), '
</div>
<div id="recent_topics">
   ', sp_recent(array('type' => 1, 'display' => 1), 0), '
</div>
<div id="recent_posts" style="display: none;">
   ', sp_recent(array('display' => 1), 0), '
</div>
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
   function change_display(block)
   {
      var current = block == \'rt\' ? 1 : 0;

      document.getElementById(\'recent_topics\').style.display = current ? \'none\' : \'\';
      document.getElementById(\'recent_posts\').style.display = current ? \'\' : \'none\';
      document.getElementById(\'b_rt\').className = current ? \'button_strip_recent_topics\' : \'button_strip_recent_topics active\';
      document.getElementById(\'b_rp\').className = current ? \'button_strip_recent_posts active\' : \'button_strip_recent_posts\';
   }
// ]]></script>';

So this is what I call "power of simplicity". I hope this gave a brief idea about how flexible and powerful SimplePortal is. If you have any questions, feel free to ask. ;)



There is also an alternative easier way explained here:

http://simpleportal.net/index.php?topic=5332.msg37841#msg37841

Edit: Fixed a minor issue with last block code.
Edit: disabled link to **** site

This is amazing; however, I can't seem to figure out how ot link to custom php blocks, as opposed to pre-made SP blocks?

This is the current code I'm using for my blocks, which also includes a piece to make sure the parent block only displays the inner blocks to the correct membergroups. I'd like to keep that aspect to it, as well, so that I can tab them all but not have X, Y or Z showing to the wrong membergroup.

This is just a regular block in block - how do I turn it into tabs?:
Code: [Select]
$block_ids = array(34, 15, 20, 26, 106, 92, 102, 79, 83, 85);

$block_data = array();
foreach ($block_ids as $block)
{
   $data = current(getBlockInfo(false, $block, false, false, true));
   if (empty($data))
      continue;
   $block_data[$block] = $data;
   $block_data[$block]['style'] = sportal_parse_style('explode', $block_data[$block]['style'], true);
}

foreach ($block_data as $data)
echo '<div>', template_block($data), '</div>';

Thank you for your time! :)

Offline 420connect

  • Jr. Member
  • **
  • Posts: 94
Re: Blocks In Blocks
« Reply #88 on: March 16, 2015, 12:12:59 PM »
Carrying off where others got stuck..

What is the correct code to call custom php blocks into the javascript version to work in tabs?

I've got this far but stuck calling the other block..

Code: [Select]
$block['style'] = sportal_parse_style('explode', $block['style'], true);  //Parse block style parameters.
template_block($block); // Output the block.
$blocks = array(
                   array(
'label' => 'Chat',
'type' => 'sp_shoutbox',
'parameters' => array('display' => 1, 'shoutbox' => 2),
),
array(
'label' => 'Who`s Online',
'type' => 'sp_whosonline',
'parameters' => array('display' => 1),
),
array(
'label' => 'Recent Posts',
'type' => 'sp_php',
'parameters' => array( 'display' => 67),
),
array(
'label' => 'Unread Posts',
'type' => 'sp_recent',
'parameters' => array(),
),

);

global $txt;

$button_list = array();
foreach ($blocks as $id => $block)
{
$txt['sp_bib_label_' . $id] = $block['label'];

$button_list[] = array(
'text' => 'sp_bib_label_' . $id,
'image' => '',
'lang' => true,
'url' => '#sp_bib_' . $id . '" id="sp_bib_button_' . $id . '" onclick="sp_bib_change(' . $id . '); return false;',
);
}

$button_list[0]['active'] = true;

echo '
<div style="overflow: auto;">
', template_button_strip($button_list), '
</div>';

foreach ($blocks as $id => $block)
{
echo '
<div id="sp_bib_', $id, '"', $id != 0 ? ' style="display: none;"' : '', '>';

$block['type']($block['parameters'], 0);

echo '
</div>';
}

echo '
<script language="JavaScript" type="text/javascript"><!-- // --><![CDATA[
function sp_bib_change(id)
{
for (var i = 0; i < ', count($blocks), '; i++)
{
document.getElementById(\'sp_bib_\' + i).style.display = i == id ? \'\' : \'none\';
document.getElementById(\'sp_bib_button_\' + i).className = \'button_strip_\' + i + (i == id ? \' active\' : \'\');
}
}
// ]]></script>';

But the Recent Posts isn't grabbing my custom block I'd like to use.. :(
« Last Edit: March 16, 2015, 12:15:21 PM by 420connect »

Offline ataru

  • Jr. Member
  • **
  • Posts: 63
  • Gender: Male
    • Biancocelesti.org - Sempre Forza Lazio
  • SMF Version: 2.0.10
  • SP Version: 2.3.6
Re: Blocks In Blocks
« Reply #89 on: April 20, 2015, 10:11:15 AM »
wow. great.

someone can tell me if it is possible to alter from container block some parameter of nested block(s)?

e.g. I have a custom php block where i open a shoutbox block named "Event #1 Chat".

I want to change that #1 with #n from custom block. where can i get the title of the block and change it before the output command?

Thanks


ok. found:

Code: [Select]
$block['label']
« Last Edit: April 27, 2015, 08:32:58 AM by ataru »