TP-Docs
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome to TinyPortal. Please login or sign up.

Recent posts

#1
Latest block snippets / SouthBay Radio
Last post by Itchdog - July 01, 2026, 05:06:34 PM
Title: SouthBay Radio
Also a player for an Icecast radio station
SMF 2.1 | TP 3.0.3
Block type: HTML/Javascript
Author: Itchdog
No mods required. The player is made for a 200p wide block. There is no station selector but you can change the default radio url and logo to your broadcast information

See it in action here (left column).

<style>
#radioPlayer{
    width:194px;
    background:#1d1d1d;
    border-radius:16px;
    padding:15px;
    color:#fff;
    font-family:Arial,Helvetica,sans-serif;
    text-align:center;
    box-shadow:0 4px 20px rgba(0,0,0,.5);
}
.logo{
    width:90px;
    height:90px;
    border-radius:12px;
    object-fit:cover;
    display:block;
    margin:0 auto 10px;
}
.station{
    font-size:20px;
    font-weight:bold;
    margin-bottom:6px;
}
.live{
    display:inline-block;
    background:#d00000;
    color:#fff;
    font-size:11px;
    font-weight:bold;
    padding:4px 10px;
    border-radius:20px;
    animation:pulse 1.2s infinite;
}
@keyframes pulse{
    0%{opacity:1;}
    50%{opacity:.45;}
    100%{opacity:1;}
}
.songBox{
    margin:15px 0;
    background:#2a2a2a;
    border-radius:8px;
    padding:8px;
    overflow:hidden;
}
.songTitle{
    white-space:nowrap;
    display:inline-block;
    animation:scrollText 15s linear infinite;
}
@keyframes scrollText{
    0%{transform:translateX(100%);}
    100%{transform:translateX(-100%);}
}
/* BUTTON FIXED */
button{
    width:100%;
    background:#0084ff !important;
    color:#fff !important;
    border:none;
    border-radius:8px;
    padding:0px;
    font-size:15px;
    cursor:pointer;
    margin-bottom:10px;
    outline:none;
}
/* prevent white background after click */
button:focus,
button:active{
    background:#0084ff !important;
    color:#fff !important;
    outline:none;
    box-shadow:none;
}
/* hover state */
button:hover{
    background:#1694ff !important;
}
button::-moz-focus-inner{
    border:0;
}
.volumeLabel{
    font-size:12px;
    color:#ccc;
    margin-bottom:4px;
}
input[type=range]{
    width:100%;
}
.footer{
    margin-top:12px;
    font-size:11px;
    color:#888;
}
</style>
<div id="radioPlayer">
    <img src="http://acrossthemiles.net/pics/album_art.1726880335.jpg" class="logo">
    <div class="station">
        SouthBay Radio
    </div>
    <div class="live">
        ● LIVE
    </div>
    <div class="songBox">
        <div class="songTitle" id="songTitle">
            Loading current song...
        </div>
    </div>
    <button id="playButton">
        ▶ Play
    </button>
    <div class="volumeLabel">
        🔊 Volume
    </div>
    <input type="range"
           id="volume"
           min="0"
           max="1"
           step="0.01"
           value="0.25">
    <div class="footer">
        Streaming 24/7
    </div>
</div>
<audio id="radio">
    <source src="http://southbayradio.org:8115/live.mp3" type="audio/mpeg">
</audio>
<script>
const radio = document.getElementById("radio");
const playButton = document.getElementById("playButton");
const volume = document.getElementById("volume");
radio.volume = 0.25;
playButton.onclick = function(){
    if(radio.paused){
        radio.volume = 0.25;
        volume.value = 0.25;
        radio.play();
        playButton.innerHTML = "⏸ Pause";
    }else{
        radio.pause();
        playButton.innerHTML = "▶ Play";
    }
};
volume.oninput = function(){
    radio.volume = this.value;
};
async function loadSong(){
    try{
        const response = await fetch("nowplaying.php");
        const json = await response.json();
        let source = json.icestats.source;
        let title = Array.isArray(source)
            ? source[0].title
            : source.title;
        document.getElementById("songTitle").textContent =
            title || "Unknown Title";
    }catch(e){
        document.getElementById("songTitle").textContent =
        "Now Playing unavailable";
    }
}
loadSong();
setInterval(loadSong,15000);
</script>
#2
News Board / Downloads: 3.0.3 Dutch languag...
Last post by @rjen - June 12, 2026, 07:59:35 PM
Updated set of language Files in Dutch language for the newest release of TinyPortal: 3.0.3.



Just unzip and use FTP to copy all files to your forum folder Themes/default/languages...
Download:
https://www.tinyportal.net/index.php?action=tportal;sa=download;dl=item212
#3
Installation / Re: Installation Issues v2.3.1
Last post by Skhilled - June 04, 2026, 12:10:09 AM
Hi, sorry that I didn't respond sooner. I found that here are collation issues that I need to fix.

It should be fine after that. Thanks.
#4
Installation / Re: Installation Issues v2.3.1
Last post by tino - June 02, 2026, 11:50:45 AM
What is the collation on the table? Does it match the other database tables and the index?
#5
Installation / Installation Issues v2.3.1
Last post by Skhilled - May 31, 2026, 08:17:24 PM
Hi, I'm trying to help someone who is using SMF 2.0.19. Thy had TP 2.3.0 installed and it was removed. I tried to reinstall it as well as 2.3.1 and am getting the following error:

QuoteColumn 'body' cannot be part of FULLTEXT index
File: /home/mnoutdoo/public_html/forums/Packages/temp/install.php
Line: 871
#6
Support / Re: "Session verification fail...
Last post by @rjen - May 20, 2026, 09:46:42 AM
#7
Support / Re: "Session verification fail...
Last post by @rjen - April 17, 2026, 04:24:25 PM
Not yet, I confirmed the issue, but did not find a fix yet
#8
Support / Re: "Session verification fail...
Last post by joecool85 - April 17, 2026, 03:22:47 PM
Quote from: @rjen on March 30, 2026, 08:06:48 PMSeeing the same thing, must be something that changed in TP3.0.3, will check

Hi rjen, any update on this?
#9
Chit chat / Re: Hog roast sausage`s tonigh...
Last post by Itchdog - April 10, 2026, 02:00:25 PM
Some places you might get the side eye for putting ketchup on a hot dog. Especially a sausage, lol. Mustard goes on a weenie.  :idiot2:
#10
Block Codes / Re: Automated Blocks
Last post by Itchdog - April 10, 2026, 01:47:55 PM
Great script Kernal. Thanks!

This website is proudly hosted on Crocweb Cloud Website Hosting.