Add inline ads to all broadcast pages for consistent advertising

Integrate InlineAd component into FolxStadlPage, GeschichteLiedPage, and GipfelstammtischPage, replacing existing ad display logic and ensuring consistent ad placement across these pages.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 401e2ec0-e00d-4f10-9d0e-60f3d479f9a5
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/60d372ff-2c10-46c7-b01b-10c3435136b0/401e2ec0-e00d-4f10-9d0e-60f3d479f9a5/qbWMa3T
This commit is contained in:
sebastjanartic 2025-09-28 20:10:00 +00:00
parent 3485e7cae2
commit a62f04b5ca
4 changed files with 118 additions and 88 deletions

View File

@ -24,12 +24,12 @@ localPort = 34033
externalPort = 3001 externalPort = 3001
[[ports]] [[ports]]
localPort = 35637 localPort = 35473
externalPort = 3000 externalPort = 3003
[[ports]] [[ports]]
localPort = 39735 localPort = 35637
externalPort = 4200 externalPort = 3000
[env] [env]
PORT = "5000" PORT = "5000"

View File

@ -10,6 +10,7 @@ import { Input } from '@/components/ui/input';
import { Search } from 'lucide-react'; import { Search } from 'lucide-react';
import AdSenseAd from '@/components/adsense-ad'; import AdSenseAd from '@/components/adsense-ad';
import HeaderAd from '@/components/HeaderAd'; import HeaderAd from '@/components/HeaderAd';
import InlineAd from '@/components/InlineAd';
export default function FolxStadlPage() { export default function FolxStadlPage() {
const [selectedVideo, setSelectedVideo] = useState<Video | null>(null); const [selectedVideo, setSelectedVideo] = useState<Video | null>(null);
@ -247,7 +248,8 @@ export default function FolxStadlPage() {
{/* Video List with Descriptions */} {/* Video List with Descriptions */}
<div className="space-y-6"> <div className="space-y-6">
{currentVideos.map((video, index) => ( {currentVideos.map((video, index) => (
<div key={video.id} className="bg-black/20 backdrop-blur-sm rounded-lg p-4"> <div key={video.id}>
<div className="bg-black/20 backdrop-blur-sm rounded-lg p-4">
<div className="grid grid-cols-1 md:grid-cols-3 gap-4"> <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
{/* Video Card */} {/* Video Card */}
<div className="md:col-span-1"> <div className="md:col-span-1">
@ -279,6 +281,11 @@ export default function FolxStadlPage() {
</div> </div>
</div> </div>
</div> </div>
{/* Add inline ad after every second video (index 1, 3, 5...) */}
{index > 0 && (index + 1) % 2 === 0 && (
<InlineAd />
)}
</div>
))} ))}
{folxStadlVideos.length === 0 && ( {folxStadlVideos.length === 0 && (
@ -323,6 +330,9 @@ export default function FolxStadlPage() {
</div> </div>
{/* Final inline ad before footer */}
<InlineAd />
{/* Footer */} {/* Footer */}
<footer className="bg-bunny-dark/90 border-t border-white/10 py-8 mt-12"> <footer className="bg-bunny-dark/90 border-t border-white/10 py-8 mt-12">
<div className="container"> <div className="container">

View File

@ -10,6 +10,7 @@ import { Input } from '@/components/ui/input';
import { Search } from 'lucide-react'; import { Search } from 'lucide-react';
import AdSenseAd from '@/components/adsense-ad'; import AdSenseAd from '@/components/adsense-ad';
import HeaderAd from '@/components/HeaderAd'; import HeaderAd from '@/components/HeaderAd';
import InlineAd from '@/components/InlineAd';
export default function GeschichteLiedPage() { export default function GeschichteLiedPage() {
const [selectedVideo, setSelectedVideo] = useState<Video | null>(null); const [selectedVideo, setSelectedVideo] = useState<Video | null>(null);
@ -249,7 +250,8 @@ export default function GeschichteLiedPage() {
{/* Video List with Descriptions */} {/* Video List with Descriptions */}
<div className="space-y-6"> <div className="space-y-6">
{currentVideos.map((video, index) => ( {currentVideos.map((video, index) => (
<div key={video.id} className="bg-black/20 backdrop-blur-sm rounded-lg p-4"> <div key={video.id}>
<div className="bg-black/20 backdrop-blur-sm rounded-lg p-4">
<div className="grid grid-cols-1 md:grid-cols-3 gap-4"> <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
{/* Video Card */} {/* Video Card */}
<div className="md:col-span-1"> <div className="md:col-span-1">
@ -281,6 +283,11 @@ export default function GeschichteLiedPage() {
</div> </div>
</div> </div>
</div> </div>
{/* Add inline ad after every second video (index 1, 3, 5...) */}
{index > 0 && (index + 1) % 2 === 0 && (
<InlineAd />
)}
</div>
))} ))}
{geschichteVideos.length === 0 && ( {geschichteVideos.length === 0 && (
@ -324,6 +331,9 @@ export default function GeschichteLiedPage() {
)} )}
</div> </div>
{/* Final inline ad before footer */}
<InlineAd />
{/* Footer */} {/* Footer */}
<footer className="bg-bunny-dark/90 border-t border-white/10 py-8 mt-12"> <footer className="bg-bunny-dark/90 border-t border-white/10 py-8 mt-12">
<div className="container"> <div className="container">

View File

@ -10,6 +10,7 @@ import { Input } from '@/components/ui/input';
import { Search } from 'lucide-react'; import { Search } from 'lucide-react';
import AdSenseAd from '@/components/adsense-ad'; import AdSenseAd from '@/components/adsense-ad';
import HeaderAd from '@/components/HeaderAd'; import HeaderAd from '@/components/HeaderAd';
import InlineAd from '@/components/InlineAd';
export default function GipfelstammtischPage() { export default function GipfelstammtischPage() {
const [selectedVideo, setSelectedVideo] = useState<Video | null>(null); const [selectedVideo, setSelectedVideo] = useState<Video | null>(null);
@ -249,7 +250,8 @@ export default function GipfelstammtischPage() {
{/* Video List with Descriptions */} {/* Video List with Descriptions */}
<div className="space-y-6"> <div className="space-y-6">
{currentVideos.map((video, index) => ( {currentVideos.map((video, index) => (
<div key={video.id} className="bg-black/20 backdrop-blur-sm rounded-lg p-4"> <div key={video.id}>
<div className="bg-black/20 backdrop-blur-sm rounded-lg p-4">
<div className="grid grid-cols-1 md:grid-cols-3 gap-4"> <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
{/* Video Card */} {/* Video Card */}
<div className="md:col-span-1"> <div className="md:col-span-1">
@ -281,6 +283,11 @@ export default function GipfelstammtischPage() {
</div> </div>
</div> </div>
</div> </div>
{/* Add inline ad after every second video (index 1, 3, 5...) */}
{index > 0 && (index + 1) % 2 === 0 && (
<InlineAd />
)}
</div>
))} ))}
{gipfelVideos.length === 0 && ( {gipfelVideos.length === 0 && (
@ -324,6 +331,9 @@ export default function GipfelstammtischPage() {
)} )}
</div> </div>
{/* Final inline ad before footer */}
<InlineAd />
{/* Footer */} {/* Footer */}
<footer className="bg-bunny-dark/90 border-t border-white/10 py-8 mt-12"> <footer className="bg-bunny-dark/90 border-t border-white/10 py-8 mt-12">
<div className="container"> <div className="container">