Simple Machines Community Forum

Customizing SMF => Graphics and Templates => Topic started by: Mynamehere on March 28, 2015, 02:44:59 PM

Title: Calender events at the top?
Post by: Mynamehere on March 28, 2015, 02:44:59 PM
How can I move the events which are in the calender to the top of the page, instead of the bottom?

(Non coder here).
Title: Re: Calender events at the top?
Post by: shadow82x on March 28, 2015, 05:02:10 PM
Anything is possible. Where would you want it displayed exactly? What theme are you using?
Title: Re: Calender events at the top?
Post by: Mynamehere on March 29, 2015, 04:20:07 PM
Huh? I just typed? Anyway...
Back n Black by, Crip <-- theme

And I want the calender events visible between the newsflashes and the first board/category.

Title: Re: Calender events at the top?
Post by: margarett on March 30, 2015, 06:58:55 AM
Quote from: Mynamehere on March 29, 2015, 04:20:07 PM
And I want the calender events visible between the newsflashes and the first board/category.
Much better description than just "top of page" ;)

In BoardIndex.template.php (for the default theme, not sure how it looks on the theme you're using) the following code exists
// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="', $scripturl, '?action=calendar' . '"><img class="icon" src="', $settings['images_url'], '/icons/calendar.gif', '" alt="', $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '" /></a>
', $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '
</span>
</h4>
</div>
<p class="smalltext">';

// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span class="holiday">', $txt['calendar_prompt'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';

// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span class="birthday">', $context['calendar_only_today'] ? $txt['birthdays'] : $txt['birthdays_upcoming'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="', $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<strong>' : '', $member['name'], $member['is_today'] ? '</strong>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span class="event">', $context['calendar_only_today'] ? $txt['events'] : $txt['events_upcoming'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
', $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" title="' . $txt['calendar_edit'] . '"><img src="' . $settings['images_url'] . '/icons/modify_small.gif" alt="*" /></a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<strong>' . $event['title'] . '</strong>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';
}
echo '
</p>';
}

This shows everything calendar-related.

For you to have it before the first category, you need to move that code to before:
echo '
<div id="boardindex_table">
<table class="table_list">';
Title: Re: Calender events at the top?
Post by: Mynamehere on March 30, 2015, 01:42:39 PM
The file you name does not contain the code, another does. This is what I find in it.

Beginning on line 12, I see this:


function template_main()
{
   global $context, $settings, $options, $txt, $scripturl, $modSettings;

   // Show some statistics if stat info is off.
   if (!$settings['show_stats_index'])
      echo '
   <p id="stats">
      ', $txt['members'], ': ', $context['common_stats']['total_members'], ' &nbsp;&#8226;&nbsp; ', $txt['posts_made'], ': ', $context['common_stats']['total_posts'], ' &nbsp;&#8226;&nbsp; ', $txt['topics'], ': ', $context['common_stats']['total_topics'], '
      ', ($settings['show_latest_member'] ? '<br />' . $txt['welcome_member'] . ' <strong>' . $context['common_stats']['latest_member']['link'] . '</strong>' . $txt['newest_member'] : '') , '
   </p>';

   // Show the news fader?  (assuming there are things to show...)
   if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
   {
      echo '
   <div class="tborder marginbottom">
      <h3 id="newsfader" class="catbg">
         <img id="newsupshrink" src="', $settings['images_url'], '/collapse.gif" alt="*" title="', $txt['upshrink_description'], '" align="bottom" style="display: none;" />
         ', $txt['news'], '
      </h3>
      <div class="windowbg2" id="smfNewsFader">
         <div id="smfFadeScroller"><span>', $context['news_lines'][0], '</span></div>
      </div>
   </div>
   <script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/fader.js"></script>
   <script type="text/javascript"><!-- // --><![CDATA[

      // Create a news fader object.
      var oNewsFader = new smf_NewsFader({
         sSelf: \'oNewsFader\',
         sFaderControlId: \'smfFadeScroller\',
         aFaderItems: [
            "',
            implode('",
            "', $context['fader_news_lines']), '"],
         sItemTemplate: ', JavaScriptEscape('<strong>%1$s</strong>'), ',
         iFadeDelay: ', empty($settings['newsfader_time']) ? 5000 : $settings['newsfader_time'], '
      });

      // Create the news fader toggle.
      var smfNewsFadeToggle = new smc_Toggle({
         bToggleEnabled: true,
         bCurrentlyCollapsed: ', empty($options['collapse_news_fader']) ? 'false' : 'true', ',
         aSwappableContainers: [
            \'smfNewsFader\'
         ],
         aSwapImages: [
            {
               sId: \'newsupshrink\',
               srcExpanded: smf_images_url + \'/collapse.gif\',
               altExpanded: ', JavaScriptEscape($txt['upshrink_description']), ',
               srcCollapsed: smf_images_url + \'/expand.gif\',
               altCollapsed: ', JavaScriptEscape($txt['upshrink_description']), '
            }
         ],
         oThemeOptions: {
            bUseThemeSettings: ', $context['user']['is_guest'] ? 'false' : 'true', ',
            sOptionName: \'collapse_news_fader\',
            sSessionVar: ', JavaScriptEscape($context['session_var']), ',
            sSessionId: ', JavaScriptEscape($context['session_id']), '
         },
         oCookieOptions: {
            bUseCookie: ', $context['user']['is_guest'] ? 'true' : 'false', ',
            sCookieName: \'newsupshrink\'
         }
      });
   // ]]></script>';
   }

AM I RIGHT TO SAY THAT THIS IS WHERE IT SHOULD GO?


   /* Each category in categories is made up of:
   id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
   new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down image),
   and boards. (see below.) */
   foreach ($context['categories'] as $category)
   {
      // If theres no parent boards we can see, avoid showing an empty category (unless its collapsed)
      if (empty($category['boards']) && !$category['is_collapsed'])
         continue;

      echo '
   <div class="categoryframe tborder clearfix">
      <h3 class="catbg', $category['new'] ? '2' : '', '">';

      if (!$context['user']['is_guest'] && !empty($category['show_unread']))
         echo '
         <a class="floatright" href="', $scripturl, '?action=unread;c=', $category['id'], '">', $txt['view_unread_category'], '</a>';

      // If this category even can collapse, show a link to collapse it.
      if ($category['can_collapse'])
         echo '
         <a href="', $category['collapse_href'], '">', $category['collapse_image'], '</a>&nbsp;';

      echo $category['link'];

      echo '
      </h3>';

      // Assuming the category hasn't been collapsed...
      if (!$category['is_collapsed'])
      {
         echo '
      <table cellspacing="1" class="bordercolor boardsframe">';

         /* Each board in each category's boards has:
         new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
         children (see below.), link_children (easier to use.), children_new (are they new?),
         topics (# of), posts (# of), link, href, and last_post. (see below.) */
         foreach ($category['boards'] as $board)
         {
            echo '
         <tr>
            <td', !empty($board['children']) ? ' rowspan="2"' : '', ' class="windowbg icon">
               <a href="', ($board['is_redirect'] || $context['user']['is_guest'] ? $board['href'] : $scripturl . '?action=unread;board=' . $board['id'] . '.0;children'), '">';

            // If the board or children is new, show an indicator.
            if ($board['new'] || $board['children_new'])
               echo '
                  <img src="', $settings['images_url'], '/on', $board['new'] ? '' : '2', '.gif" alt="', $txt['new_posts'], '" title="', $txt['new_posts'], '" border="0" />';
            // Is it a redirection board?
            elseif ($board['is_redirect'])
               echo '
                  <img src="', $settings['images_url'], '/redirect.gif" alt="*" title="*" border="0" />';
            // No new posts at all! The agony!!
            else
               echo '
                  <img src="', $settings['images_url'], '/off.gif" alt="', $txt['old_posts'], '" title="', $txt['old_posts'], '" />';

            echo '
               </a>
            </td>
            <td class="windowbg2 info">
               <h4><a href="', $board['href'], '" name="b', $board['id'], '">', $board['name'], '</a>';

            // Has it outstanding posts for approval?
            if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
               echo '
                  <a href="', $scripturl, '?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > 0 ? 'topics' : 'posts'), ';brd=', $board['id'], ';', $context['session_var'], '=', $context['session_id'], '" title="', sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link">(!)</a>';

            echo '
               </h4>
               <p>', $board['description'] , '</p>';

            // Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
            if (!empty($board['moderators']))
               echo '
               <p class="moderators">', count($board['moderators']) == 1 ? $txt['moderator'] : $txt['moderators'], ': ', implode(', ', $board['link_moderators']), '</p>';

            // Show some basic information about the number of posts, etc.
               echo '
            </td>
            <td', !empty($board['children']) ? ' rowspan="2"' : '', ' class="windowbg stats smalltext">
               ', comma_format($board['posts']), ' ', $board['is_redirect'] ? $txt['redirects'] : $txt['posts'], ' <br />
               ', $board['is_redirect'] ? '' : comma_format($board['topics']) . ' ' . $txt['board_topics'], '
            </td>
            <td', !empty($board['children']) ? ' rowspan="2"' : '', ' class="windowbg2 smalltext lastpost">';

            /* The board's and children's 'last_post's have:
            time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
            link, href, subject, start (where they should go for the first unread post.),
            and member. (which has id, name, link, href, username in it.) */
            if (!empty($board['last_post']['id']))
               echo '
               <strong>', $txt['last_post'], '</strong>  ', $txt['by'], ' ', $board['last_post']['member']['link'] , '<br />
               ', $txt['in'], ' ', $board['last_post']['link'], '<br />
               ', $txt['on'], ' ', $board['last_post']['time'];
            echo '
            </td>
         </tr>';

            // Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
            if (!empty($board['children']))
            {
               // Sort the links into an array with new boards bold so it can be imploded.
               $children = array();
               /* Each child in each board's children has:
                     id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
               foreach ($board['children'] as $child)
               {
                  if (!$child['is_redirect'])
                     $child['link'] = '<a href="' . $child['href'] . '" title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' . $txt['board_topics'] . ': ' . comma_format($child['topics']) . ', ' . $txt['posts'] . ': ' . comma_format($child['posts']) . ')">' . $child['name'] . '</a>';
                  else
                     $child['link'] = '<a href="' . $child['href'] . '" title="' . comma_format($child['posts']) . ' ' . $txt['redirects'] . '">' . $child['name'] . '</a>';

                  // Has it posts awaiting approval?
                  if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
                     $child['link'] .= ' <a href="' . $scripturl . '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > 0 ? 'topics' : 'posts') . ';brd=' . $child['id'] . ';' . $context['session_var'] . '=' . $context['session_id'] . '" title="' . sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

                  $children[] = $child['new'] ? '<strong>' . $child['link'] . '</strong>' : $child['link'];
               }
               echo '
         <tr>
            <td class="windowbg3 smalltext largepadding"><strong>', $txt['parent_boards'], '</strong>: ', implode(', ', $children), '</td>
         </tr>';
            }
         }
         echo '
      </table>';
      }
      echo '
   </div>';
   }

   if ($context['user']['is_logged'])
   {
      echo '
   <div id="modbuttons_bottom" class="modbuttons clearfix">
      <div id="posticons" class="clearfix marginbottom" style="margin-left: 1em;">
         <div class="smalltext floatleft">
            <img src="', $settings['images_url'], '/new_some.gif" alt="" align="middle" /> ', $txt['new_posts'], '
            <img src="', $settings['images_url'], '/new_none.gif" alt="" align="middle" style="margin-left: 4ex;" /> ', $txt['old_posts'], '
         </div>';

         // Mark read button.
         $mark_read_button = array(
            'markread' => array('text' => 'mark_as_read', 'image' => 'markread.gif', 'lang' => true, 'url' => $scripturl . '?action=markasread;sa=all;' . $context['session_var'] . '=' . $context['session_id']),
         );

         // Show the mark all as read button?
         if ($settings['show_mark_read'] && !empty($context['categories']))
            template_button_strip($mark_read_button, 'top');

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

   template_info_center();
[code]
Title: Re: Calender events at the top?
Post by: Mynamehere on March 30, 2015, 01:48:58 PM
updated
Title: Re: Calender events at the top?
Post by: margarett on March 30, 2015, 01:52:23 PM
Please, no big red words, it hurts my eyes :P

Yes, I assume it should go between the 2 pieces of code you put.
Title: Re: Calender events at the top?
Post by: Mynamehere on March 30, 2015, 02:41:05 PM
Woot! It works. Thanks for helping me out :)

I now actually have it at both the top and the bottom. Now nobody can say they didn't see it (yet, I am sure they WILL) LOL
Title: Re: Calender events at the top?
Post by: Mynamehere on March 30, 2015, 02:43:47 PM
Only glitch, the red icons before the names don't appear (the edit thingies)
Title: Re: Calender events at the top?
Post by: Mynamehere on March 30, 2015, 02:56:00 PM
And even that, I found :)
Woot
Title: Re: Calender events at the top?
Post by: margarett on March 30, 2015, 03:30:00 PM
Great :)

I'm marking this as solved, let us know if you need further help ;)
Title: Re: Calender events at the top?
Post by: Mynamehere on September 12, 2015, 11:36:54 AM
Sadly, I have been forced to rebuild this thing, and am trying to get this working again. But I am failing. I am posting the code  from Margaret in the same position (the big red words), but nothing is changing..

I am using file BoardIndex.template.php


<?php
/**
* Simple Machines Forum (SMF)
*
* @package SMF
* @author Simple Machines
* @copyright 2011 Simple Machines
* @license http://www.simplemachines.org/about/smf/license.php BSD
*
* @version 2.0
*/

function template_main()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;

// Show some statistics if stat info is off.
if (!$settings['show_stats_index'])
echo '
<p id="stats">
'
, $txt['members'], ': ', $context['common_stats']['total_members'], ' &nbsp;&#38;#8226;&nbsp; ', $txt['posts_made'], ': ', $context['common_stats']['total_posts'], ' &nbsp;&#38;#8226;&nbsp; ', $txt['topics'], ': ', $context['common_stats']['total_topics'], '
'
, ($settings['show_latest_member'] ? '<br />' . $txt['welcome_member'] . ' <strong>' . $context['common_stats']['latest_member']['link'] . '</strong>' . $txt['newest_member'] : '') , '
</p>'
;

// Show the news fader?  (assuming there are things to show...)
if ($settings['show_newsfader'] && !empty($context['fader_news_lines']))
{
echo '
<div class="tborder marginbottom">
<h3 id="newsfader" class="catbg">
<img id="newsupshrink" src="'
, $settings['images_url'], '/collapse.gif" alt="*" title="', $txt['upshrink_description'], '" align="bottom" style="display: none;" />
'
, $txt['news'], '
</h3>
<div class="windowbg2" id="smfNewsFader">
<div id="smfFadeScroller"><span>'
, $context['news_lines'][0], '</span></div>
</div>
</div>
<script type="text/javascript" src="'
, $settings['default_theme_url'], '/scripts/fader.js"></script>
<script type="text/javascript"><!-- // --><![CDATA[

// Create a news fader object.
var oNewsFader = new smf_NewsFader({
sSelf: \'oNewsFader\',
sFaderControlId: \'smfFadeScroller\',
aFaderItems: [
"'
,
implode('",
"'
, $context['fader_news_lines']), '"],
sItemTemplate: '
, JavaScriptEscape('<strong>%1$s</strong>'), ',
iFadeDelay: '
, empty($settings['newsfader_time']) ? 5000 : $settings['newsfader_time'], '
});

// Create the news fader toggle.
var smfNewsFadeToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_news_fader']) ? 'false' : 'true', ',
aSwappableContainers: [
\'smfNewsFader\'
],
aSwapImages: [
{
sId: \'newsupshrink\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
, JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
, JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
, $context['user']['is_guest'] ? 'false' : 'true', ',
sOptionName: \'collapse_news_fader\',
sSessionVar: '
, JavaScriptEscape($context['session_var']), ',
sSessionId: '
, JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
, $context['user']['is_guest'] ? 'true' : 'false', ',
sCookieName: \'newsupshrink\'
}
});
// ]]></script>'
;
}

/*poging tot calendar */

// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="'
, $scripturl, '?action=calendar' . '"><img class="icon" src="', $settings['images_url'], '/icons/calendar.gif', '" alt="', $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '" /></a>
'
, $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '
</span>
</h4>
</div>
<p class="smalltext">'
;

// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span class="holiday">'
, $txt['calendar_prompt'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';

// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span class="birthday">'
, $context['calendar_only_today'] ? $txt['birthdays'] : $txt['birthdays_upcoming'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="'
, $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<strong>' : '', $member['name'], $member['is_today'] ? '</strong>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span class="event">'
, $context['calendar_only_today'] ? $txt['events'] : $txt['events_upcoming'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
'
, $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" title="' . $txt['calendar_edit'] . '"><img src="' . $settings['images_url'] . '/icons/modify_small.gif" alt="*" /></a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<strong>' . $event['title'] . '</strong>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';
}
echo '
</p>'
;
}

/*einde calendar*/



/* Each category in categories is made up of:
id, href, link, name, is_collapsed (is it collapsed?), can_collapse (is it okay if it is?),
new (is it new?), collapse_href (href to collapse/expand), collapse_image (up/down image),
and boards. (see below.) */
foreach ($context['categories'] as $category)
{
// If theres no parent boards we can see, avoid showing an empty category (unless its collapsed)
if (empty($category['boards']) && !$category['is_collapsed'])
continue;

echo '
<div class="categoryframe tborder clearfix">
<h3 class="catbg'
, $category['new'] ? '2' : '', '">';

if (!$context['user']['is_guest'] && !empty($category['show_unread']))
echo '
<a class="floatright" href="'
, $scripturl, '?action=unread;c=', $category['id'], '">', $txt['view_unread_category'], '</a>';

// If this category even can collapse, show a link to collapse it.
if ($category['can_collapse'])
echo '
<a href="'
, $category['collapse_href'], '">', $category['collapse_image'], '</a>&nbsp;';

echo $category['link'];

echo '
</h3>'
;

// Assuming the category hasn't been collapsed...
if (!$category['is_collapsed'])
{
echo '
<table cellspacing="1" class="bordercolor boardsframe">'
;

/* Each board in each category's boards has:
new (is it new?), id, name, description, moderators (see below), link_moderators (just a list.),
children (see below.), link_children (easier to use.), children_new (are they new?),
topics (# of), posts (# of), link, href, and last_post. (see below.) */
foreach ($category['boards'] as $board)
{
echo '
<tr>
<td'
, !empty($board['children']) ? ' rowspan="2"' : '', ' class="windowbg icon">
<a href="'
, ($board['is_redirect'] || $context['user']['is_guest'] ? $board['href'] : $scripturl . '?action=unread;board=' . $board['id'] . '.0;children'), '">';

// If the board or children is new, show an indicator.
if ($board['new'] || $board['children_new'])
echo '
<img src="'
, $settings['images_url'], '/on', $board['new'] ? '' : '2', '.gif" alt="', $txt['new_posts'], '" title="', $txt['new_posts'], '" border="0" />';
// Is it a redirection board?
elseif ($board['is_redirect'])
echo '
<img src="'
, $settings['images_url'], '/redirect.gif" alt="*" title="*" border="0" />';
// No new posts at all! The agony!!
else
echo '
<img src="'
, $settings['images_url'], '/off.gif" alt="', $txt['old_posts'], '" title="', $txt['old_posts'], '" />';

echo '
</a>
</td>
<td class="windowbg2 info">
<h4><a href="'
, $board['href'], '" name="b', $board['id'], '">', $board['name'], '</a>';

// Has it outstanding posts for approval?
if ($board['can_approve_posts'] && ($board['unapproved_posts'] || $board['unapproved_topics']))
echo '
<a href="'
, $scripturl, '?action=moderate;area=postmod;sa=', ($board['unapproved_topics'] > 0 ? 'topics' : 'posts'), ';brd=', $board['id'], ';', $context['session_var'], '=', $context['session_id'], '" title="', sprintf($txt['unapproved_posts'], $board['unapproved_topics'], $board['unapproved_posts']), '" class="moderation_link">(!)</a>';

echo '
</h4>
<p>'
, $board['description'] , '</p>';

// Show the "Moderators: ". Each has name, href, link, and id. (but we're gonna use link_moderators.)
if (!empty($board['moderators']))
echo '
<p class="moderators">'
, count($board['moderators']) == 1 ? $txt['moderator'] : $txt['moderators'], ': ', implode(', ', $board['link_moderators']), '</p>';

// Show some basic information about the number of posts, etc.
echo '
</td>
<td'
, !empty($board['children']) ? ' rowspan="2"' : '', ' class="windowbg stats smalltext">
'
, comma_format($board['posts']), ' ', $board['is_redirect'] ? $txt['redirects'] : $txt['posts'], ' <br />
'
, $board['is_redirect'] ? '' : comma_format($board['topics']) . ' ' . $txt['board_topics'], '
</td>
<td'
, !empty($board['children']) ? ' rowspan="2"' : '', ' class="windowbg2 smalltext lastpost">';

/* The board's and children's 'last_post's have:
time, timestamp (a number that represents the time.), id (of the post), topic (topic id.),
link, href, subject, start (where they should go for the first unread post.),
and member. (which has id, name, link, href, username in it.) */
if (!empty($board['last_post']['id']))
echo '
<strong>'
, $txt['last_post'], '</strong>  ', $txt['by'], ' ', $board['last_post']['member']['link'] , '<br />
'
, $txt['in'], ' ', $board['last_post']['link'], '<br />
'
, $txt['on'], ' ', $board['last_post']['time'];
echo '
</td>
</tr>'
;

// Show the "Child Boards: ". (there's a link_children but we're going to bold the new ones...)
if (!empty($board['children']))
{
// Sort the links into an array with new boards bold so it can be imploded.
$children = array();
/* Each child in each board's children has:
id, name, description, new (is it new?), topics (#), posts (#), href, link, and last_post. */
foreach ($board['children'] as $child)
{
if (!$child['is_redirect'])
$child['link'] = '<a href="' . $child['href'] . '" title="' . ($child['new'] ? $txt['new_posts'] : $txt['old_posts']) . ' (' . $txt['board_topics'] . ': ' . comma_format($child['topics']) . ', ' . $txt['posts'] . ': ' . comma_format($child['posts']) . ')">' . $child['name'] . '</a>';
else
$child['link'] = '<a href="' . $child['href'] . '" title="' . comma_format($child['posts']) . ' ' . $txt['redirects'] . '">' . $child['name'] . '</a>';

// Has it posts awaiting approval?
if ($child['can_approve_posts'] && ($child['unapproved_posts'] || $child['unapproved_topics']))
$child['link'] .= ' <a href="' . $scripturl . '?action=moderate;area=postmod;sa=' . ($child['unapproved_topics'] > 0 ? 'topics' : 'posts') . ';brd=' . $child['id'] . ';' . $context['session_var'] . '=' . $context['session_id'] . '" title="' . sprintf($txt['unapproved_posts'], $child['unapproved_topics'], $child['unapproved_posts']) . '" class="moderation_link">(!)</a>';

$children[] = $child['new'] ? '<strong>' . $child['link'] . '</strong>' : $child['link'];
}
echo '
<tr>
<td class="windowbg3 smalltext largepadding"><strong>'
, $txt['parent_boards'], '</strong>: ', implode(', ', $children), '</td>
</tr>'
;
}
}
echo '
</table>'
;
}
echo '
</div>'
;
}

if ($context['user']['is_logged'])
{
echo '
<div id="modbuttons_bottom" class="modbuttons clearfix">
<div id="posticons" class="clearfix marginbottom" style="margin-left: 1em;">
<div class="smalltext floatleft">
<img src="'
, $settings['images_url'], '/new_some.gif" alt="" align="middle" /> ', $txt['new_posts'], '
<img src="'
, $settings['images_url'], '/new_none.gif" alt="" align="middle" style="margin-left: 4ex;" /> ', $txt['old_posts'], '
</div>'
;

// Mark read button.
$mark_read_button = array(
'markread' => array('text' => 'mark_as_read', 'image' => 'markread.gif', 'lang' => true, 'url' => $scripturl . '?action=markasread;sa=all;' . $context['session_var'] . '=' . $context['session_id']),
);

// Show the mark all as read button?
if ($settings['show_mark_read'] && !empty($context['categories']))
template_button_strip($mark_read_button, 'top');

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

template_info_center();
}
function
template_info_center()
{
global $context, $settings, $options, $txt, $scripturl, $modSettings;

// Here's where the "Info Center" starts...
echo '
<div class="tborder clearfix" id="infocenterframe">
<h3 class="catbg">
<img id="upshrink_ic" src="'
, $settings['images_url'], '/collapse.gif" alt="*" title="', $txt['upshrink_description'], '" style="display: none;" />
'
, sprintf($txt['info_center_title'], $context['forum_name_html_safe']), '
</h3>
<div id="upshrinkHeaderIC"'
, empty($options['collapse_header_ic']) ? '' : ' style="display: none;"', '>';

// This is the "Recent Posts" bar.
if (!empty($settings['number_recent_posts']) && (!empty($context['latest_posts']) || !empty($context['latest_post'])))
{
echo '
<div class="infocenter_section">
<h4 class="titlebg">'
, $txt['recent_posts'], '</h4>
<div class="windowbg">
<p class="section">
<a href="'
, $scripturl, '?action=recent"><img src="', $settings['images_url'], '/post/xx.gif" alt="', $txt['recent_posts'], '" /></a>
</p>
<div class="windowbg2 sectionbody hslice clearfix" id="recent_posts_content"><div class="entry-title" style="display: none;">'
, $context['forum_name_html_safe'], ' - ', $txt['recent_posts'], '</div><div class="entry-content" style="display: none;"><a rel="feedurl" href="', $scripturl, '?action=.xml;type=webslice">', $txt['subscribe_webslice'], '</a></div>';

// Only show one post.
if ($settings['number_recent_posts'] == 1)
{
// latest_post has link, href, time, subject, short_subject (shortened with...), and topic. (its id.)
echo '
<strong><a href="'
, $scripturl, '?action=recent">', $txt['recent_posts'], '</a></strong>
<p id="infocenter_onepost" class="smalltext">
'
, $txt['recent_view'], ' &quot;', $context['latest_post']['link'], '&quot; ', $txt['recent_updated'], ' (', $context['latest_post']['time'], ')<br />
</p>'
;
}
// Show lots of posts.
elseif (!empty($context['latest_posts']))
{
echo '
<dl id="infocenter_recentposts" class="middletext">'
;

/* Each post in latest_posts has:
board (with an id, name, and link.), topic (the topic's id.), poster (with id, name, and link.),
subject, short_subject (shortened with...), time, link, and href. */
foreach ($context['latest_posts'] as $post)
echo '
<dt><strong>'
, $post['link'], '</strong> ', $txt['by'], ' ', $post['poster']['link'], ' (', $post['board']['link'], ')</dt>
<dd>'
, $post['time'], '</dd>';
echo '
</dl>'
;
}
echo '
</div>
</div>
</div>'
;
}

// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<div class="infocenter_section">
<h4 class="titlebg">'
, $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '</h4>
<div class="windowbg">
<p class="section">
<a href="'
, $scripturl, '?action=calendar' . '"><img src="', $settings['images_url'], '/icons/calendar.gif', '" alt="', $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '" /></a>
</p>
<div class="sectionbody windowbg2 smalltext">'
;

// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span class="holiday">'
, $txt['calendar_prompt'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';

// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span class="birthday">'
, $context['calendar_only_today'] ? $txt['birthdays'] : $txt['birthdays_upcoming'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="'
, $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<strong>' : '', $member['name'], $member['is_today'] ? '</strong>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span class="event">'
, $context['calendar_only_today'] ? $txt['events'] : $txt['events_upcoming'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
'
, $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" style="color: #ff0000;">*</a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<strong>' . $event['title'] . '</strong>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';

// Show a little help text to help them along ;).
if ($context['calendar_can_edit'])
echo '
(<a href="'
, $scripturl, '?action=helpadmin;help=calendar_how_edit" onclick="return reqWin(this.href);">', $txt['calendar_how_edit'], '</a>)';
}
echo '
</div>
</div>
</div>'
;
}

// Show statistical style information...
if ($settings['show_stats_index'])
{
echo '
<div class="infocenter_section">
<h4 class="titlebg">'
, $txt['forum_stats'], '</h4>
<div class="windowbg">
<p class="section">
<a href="'
, $scripturl, '?action=stats"><img src="', $settings['images_url'], '/icons/info.gif" alt="', $txt['forum_stats'], '" /></a>
</p>
<div class="windowbg2 sectionbody middletext">
'
, $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>' : '', '
</div>
</div>
</div>'
;
}

// "Users online" - in order of activity.
echo '
<div class="infocenter_section">
<h4 class="titlebg">'
, $txt['online_users'], '</h4>
<div class="windowbg">
<p class="section">
'
, $context['show_who'] ? '<a href="' . $scripturl . '?action=who' . '">' : '', '<img src="', $settings['images_url'], '/icons/online.gif', '" alt="', $txt['online_users'], '" />', $context['show_who'] ? '</a>' : '', '
</p>
<div class="windowbg2 sectionbody">
'
, $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>' : '', '
<div class="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 '
</div>
<hr class="hrcolor" />
<div class="smalltext">
'
, $txt['most_online_today'], ': <strong>', comma_format($modSettings['mostOnlineToday']), '</strong>.
'
, $txt['most_online_ever'], ': ', comma_format($modSettings['mostOnline']), ' (', timeformat($modSettings['mostDate']), ')
</div>
</div>
</div>
</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="infocenter_section">
<h4 class="titlebg">'
, $txt['personal_message'], '</h4>
<div class="windowbg">
<p class="section">
'
, $context['allow_pm'] ? '<a href="' . $scripturl . '?action=pm">' : '', '<img src="', $settings['images_url'], '/message_sm.gif" alt="', $txt['personal_message'], '" />', $context['allow_pm'] ? '</a>' : '', '
</p>
<div class="windowbg2 sectionbody">
<strong><a href="'
, $scripturl, '?action=pm">', $txt['personal_message'], '</a></strong>
<div 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'], '
</div>
</div>
</div>
</div>'
;
}

// Show the login bar. (it's only true if they are logged out anyway.)
if ($context['show_login_bar'])
{
echo '
<div class="infocenter_section">
<h4 class="titlebg">'
, $txt['login'], ' <a href="', $scripturl, '?action=reminder" class="smalltext">', $txt['forgot_your_password'], '</a></h4>
<div class="windowbg">
<p class="section">
<a href="'
, $scripturl, '?action=login"><img src="', $settings['images_url'], '/icons/login.gif', '" alt="', $txt['login'], '" /></a>
</p>
<div class="windowbg2 sectionbody">
<form id="infocenter_login" action="'
, $scripturl, '?action=login2" method="post" accept-charset="', $context['character_set'], '">
<ul class="reset horizlist clearfix">
<li>
<label for="user">'
, $txt['username'], ':<br />
<input type="text" name="user" id="user" size="15" class="input_text" /></label>
</li>
<li>
<label for="passwrd">'
, $txt['password'], ':<br />
<input type="password" name="passwrd" id="passwrd" size="15" class="input_password" /></label>
</li>
<li>
<label for="cookielength">'
, $txt['mins_logged_in'], ':<br />
<input type="text" name="cookielength" id="cookielength" size="4" maxlength="4" value="'
, $modSettings['cookieTime'], '" class="input_text" /></label>
</li>
<li>
<label for="cookieneverexp">'
, $txt['always_logged_in'], ':<br />
<input type="checkbox" name="cookieneverexp" id="cookieneverexp" checked="checked" class="input_check" /></label>
</li>
<li>
<input type="submit" value="'
, $txt['login'], '" class="button_submit" />
</li>
</ul>
</form>
</div>
</div>
</div>'
;
}

// Info center collapse object.
echo '
<script type="text/javascript"><!-- // --><![CDATA[
var oInfoCenterToggle = new smc_Toggle({
bToggleEnabled: true,
bCurrentlyCollapsed: '
, empty($options['collapse_header_ic']) ? 'false' : 'true', ',
aSwappableContainers: [
\'upshrinkHeaderIC\'
],
aSwapImages: [
{
sId: \'upshrink_ic\',
srcExpanded: smf_images_url + \'/collapse.gif\',
altExpanded: '
, JavaScriptEscape($txt['upshrink_description']), ',
srcCollapsed: smf_images_url + \'/expand.gif\',
altCollapsed: '
, JavaScriptEscape($txt['upshrink_description']), '
}
],
oThemeOptions: {
bUseThemeSettings: '
, $context['user']['is_guest'] ? 'false' : 'true', ',
sOptionName: \'collapse_header_ic\',
sSessionVar: '
, JavaScriptEscape($context['session_var']), ',
sSessionId: '
, JavaScriptEscape($context['session_id']), '
},
oCookieOptions: {
bUseCookie: '
, $context['user']['is_guest'] ? 'true' : 'false', ',
sCookieName: \'upshrinkIC\'
}
});
// ]]></script>'
;

echo '
</div>
</div>'
;
}
?>

Title: Re: Calender events at the top?
Post by: Mynamehere on September 12, 2015, 02:51:12 PM
update: due to reasons, I have had to switch to another theme. Still want this feature, but cannot find where. The theme is called "Blackened" http://custom.simplemachines.org/themes/index.php?lemma=2665
Title: Re: Calender events at the top?
Post by: Antechinus on September 12, 2015, 04:43:58 PM
Should be easy enough. Do you want a separate template for that theme, or do you want to edit the default theme template so the events are at the top on all themes?

Reason I'm asking is that theme doesn't include a copy of the template (it falls back to the default theme copy).
Title: Re: Calender events at the top?
Post by: Antechinus on September 12, 2015, 05:25:34 PM
Sorted. File attached.

If you want it to affect all themes, use this file to overwrite the default theme's template.

If you only want the customised layout on the Blackened theme, upload this file to the blackened folder.
Title: Re: Calender events at the top?
Post by: Mynamehere on September 13, 2015, 04:36:55 AM
Sigh...

got complaints. Had to switch to BlackJack (sorry)
http://custom.simplemachines.org/themes/index.php?lemma=2360

How exactly do you manage to find the solution this easily?

I tried uploading the file BoardIndex.template.php, but am not seeing anything happening. Is there, perhaps, a setting somewhere I might be forgetting?

Title: Re: Calender events at the top?
Post by: Antechinus on September 13, 2015, 04:52:15 AM
I've been hacking templates for years. I know that file backwards. Are they sure they like BlackJack? :D

I'm about to trundle off and have dinner so I'll point you at the right bits and you can have a go at it if you like.

Code (BoardIndex.template.php - Lines 339 to 382 inclusive) Select
// Show information about events, birthdays, and holidays on the calendar.
if ($context['show_calendar'])
{
echo '
<div class="title_barIC">
<h4 class="titlebg">
<span class="ie6_header floatleft">
<a href="', $scripturl, '?action=calendar' . '"><img class="icon" src="', $settings['images_url'], '/icons/calendar.gif', '" alt="', $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '" /></a>
', $context['calendar_only_today'] ? $txt['calendar_today'] : $txt['calendar_upcoming'], '
</span>
</h4>
</div>
<p class="smalltext">';

// Holidays like "Christmas", "Chanukah", and "We Love [Unknown] Day" :P.
if (!empty($context['calendar_holidays']))
echo '
<span class="holiday">', $txt['calendar_prompt'], ' ', implode(', ', $context['calendar_holidays']), '</span><br />';

// People's birthdays. Like mine. And yours, I guess. Kidding.
if (!empty($context['calendar_birthdays']))
{
echo '
<span class="birthday">', $context['calendar_only_today'] ? $txt['birthdays'] : $txt['birthdays_upcoming'], '</span> ';
/* Each member in calendar_birthdays has:
id, name (person), age (if they have one set?), is_last. (last in list?), and is_today (birthday is today?) */
foreach ($context['calendar_birthdays'] as $member)
echo '
<a href="', $scripturl, '?action=profile;u=', $member['id'], '">', $member['is_today'] ? '<strong>' : '', $member['name'], $member['is_today'] ? '</strong>' : '', isset($member['age']) ? ' (' . $member['age'] . ')' : '', '</a>', $member['is_last'] ? '<br />' : ', ';
}
// Events like community get-togethers.
if (!empty($context['calendar_events']))
{
echo '
<span class="event">', $context['calendar_only_today'] ? $txt['events'] : $txt['events_upcoming'], '</span> ';
/* Each event in calendar_events should have:
title, href, is_last, can_edit (are they allowed?), modify_href, and is_today. */
foreach ($context['calendar_events'] as $event)
echo '
', $event['can_edit'] ? '<a href="' . $event['modify_href'] . '" title="' . $txt['calendar_edit'] . '"><img src="' . $settings['images_url'] . '/icons/modify_small.gif" alt="*" /></a> ' : '', $event['href'] == '' ? '' : '<a href="' . $event['href'] . '">', $event['is_today'] ? '<strong>' . $event['title'] . '</strong>' : $event['title'], $event['href'] == '' ? '' : '</a>', $event['is_last'] ? '<br />' : ', ';
}
echo '
</p>';
}


That code is the calendar section of the template. The line numbers are taken from a brand new, unedited, default theme file. You can check one of those out to see the code in its natural habitat.

What you basically do is copy/paste that section wherever you want it to show up, then delete the original block of code. If you look near the top of the file I gave you earlier you should be able to see where I moved the code to. Come to think of it, you could even leave the original and have the events top and bottom if you really wanted to. Wouldn't break anything.

You can just use that file you already have for Blackjack too. It's only calling standard SMF classes anyway. Should be fine. Give it a go. :)
Title: Re: Calender events at the top?
Post by: Mynamehere on September 13, 2015, 02:42:32 PM
I actually did upload that template to both the BlackJack and the default, but I am not noticing a difference...
Title: Re: Calender events at the top?
Post by: Antechinus on September 13, 2015, 04:48:23 PM
Then check your admin theme settings for where calendar stuff displays. You need to allow it to display on the board index.
Title: Re: Calender events at the top?
Post by: Mynamehere on September 14, 2015, 02:03:45 AM
uh...where?
Title: Re: Calender events at the top?
Post by: Antechinus on September 14, 2015, 03:17:27 AM
Admin> Forum > Calendar > Calendar settings > Show > On board index and calendar
Title: Re: Calender events at the top?
Post by: Mynamehere on September 15, 2015, 03:57:00 AM
I feel so dumb right now :D
Thanks