Ever wish you could have a block that only shows on specific days and turns itself off the day after? Well, this block code can do just that! This code was created by Chen Zhen/Underdog for me and I've tested it with TP and it works.
All you have to do is change 2 lines in the code:
The date in this line:
Quote$showBlock = array('month'=> 11, 'day' => 26);
And add your image in this line:
Quote<div align="center">(https://www.tinyportal.net/proxy.php?request=http%3A%2F%2Fmysite.com%2Fsome_image.jpg&hash=8142029672de9abbfc682d61f806c09e63b65cbf)</div>';
You should also set Frame Options to: Do not use title/frame styles - or when the block disappears you'll still see part of it.
And set the block to: Do not allow block to collapse - or you'll still see the upshrink.
// opt month & day to show block
$showBlock = array('month'=> 11, 'day' => 26);
global $user_info;
$time = time()+($user_info['time_offset'] * 3600);
$date = array('month' => (int)date('m', $time), 'day' => (int)date('d', $time));
if ($showBlock['day'] != $date['day'] || $showBlock['month'] != $date['month'])
return false;
// PHP code below this line
echo '
<div align="center"><img src="http://mysite.com/some_image.jpg"></div>';
Very nice!
Thank you Skhilled and thanks to Underdog for this handy little Block Code! O0
Question:
Can this block be set to show for more than one day in succession? Example; you have an event/holiday that you would like to highlight for three days.
Thanks. :)
Of course it could be used in three separate blocks, with them set to display one after the other, on each successive day, in order and having individual content for each day. O0
Quote from: Ken. on November 27, 2015, 03:11:21 PM
Question:
Can this block be set to show for more than one day in succession? Example; you have an event/holiday that you would like to highlight for three days.
Thanks. :)
As I was posting that I just realized that someone was going to ask about that! LOL
I assume you could modify the array for the day in some way to make it work.
Quote from: Ken. on November 27, 2015, 03:26:15 PM
Of course it could be used in three separate blocks, with them set to display one after the other, on each successive day, in order and having individual content for each day. O0
Yes, that could work too.
I think the 'different block for each day' idea may be better way to go in some cases because you could include a different image or message for each day.
Here, I made one that has multiple date support.
<?php
/*
@block Show Days
@author Rhode Fey (Sayaka Maizono)
*/
/*
Usage:
fill $dates array with arrays of the following:
array('month' => integer, 'day' => integer),
Example:
array('month' => 11, 'day' => 26),
array('month' => 11, 'day' => 26),
This will show only on November 26 and November 27
*/
$dates = array(
array('month'=> 11, 'day' => 26),
array('month'=> 11, 'day' => 27),
array('month'=> 11, 'day' => 28),
);
/*
*
*/
global $user_info;
$time = time() + ($user_info['time_offset'] * 3600);
$current_date = array('month' => (int) date('m', $time), 'day' => (int) date('d', $time));
$show = false;
foreach ($dates as $k => $date)
{
if (empty($date))
continue;
if ($date['month'] == $current_date['month'] && $date['day'] == $current_date['day'])
{
$show = true;
continue;
}
}
if ($show)
{
echo '
Some html if you want to show if it is the date.';
}
else
{
echo '
Some html that you want to show if it is not the date.';
}
?>
Quote from: Skhilled on November 27, 2015, 02:36:29 PM
Ever wish you could have a block that only shows on specific days and turns itself off the day after? Well, this block code can do just that! This code was created by Chen Zhen/Underdog for me and I've tested it with TP and it works.
Quote from: Sayaka Maizono on November 28, 2015, 03:25:26 AM
Here, I made one that has multiple date support.
@ Skhilled and Sayaka, thanks to both of you. Haven't tried these snippets yet, but I'm sure they will be useful. O0
Thanks, Sayaka! I knew the array needed to be set up that way but way not sure how to code the rest so it would work.
Thanks for the new block - a really good idea that one :)
I got tired of waking up and realizing that I had forgotten or need to add something for a holiday on my site which is how I came up with the idea...a "set it and forget" type of thing. I've created blocks for every holiday with an image and now I don't have to deal with it except for the ones that don't have a specific date like Thanksgiving which is the last Thursday of that month.
I can make you a block that will display things based on various dates if you want.
O0
<?php
/**
* @block Custom Dates
* @author Rhode Fey (Sayaka Maizono)
* @version 1.0.0
* @for TinyPortal
*/
global $user_info;
$time = time() + ($user_info['time_offset'] * 3600);
$current_date = date('m', $time) . '-' . date('d', $time);
if ($current_date == '12-25')
{
echo '
Merry Christmas!';
}
elseif ($current_date == '1-1' || $current_date = '12-31')
{
echo '
Happy New Year!';
}
elseif ($current_date == '7-4')
{
echo '
Happy Independence Day!';
}
// Default if current date is not specified.
else
{
echo '
Hello!';
}
?>
Very simple but works! :)