Backup database and code changes - 2025-06-09 05:33:32
This commit is contained in:
@@ -32,7 +32,8 @@
|
||||
"Bash(npm install:*)",
|
||||
"Bash(terser:*)",
|
||||
"Bash(curl:*)",
|
||||
"Bash(cp:*)"
|
||||
"Bash(cp:*)",
|
||||
"WebFetch(domain:ukdataservices.co.uk)"
|
||||
],
|
||||
"deny": []
|
||||
}
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
<?php
|
||||
// Add inline CSS fix for buttons
|
||||
|
||||
$articles_dir = '/var/www/html/blog/articles/';
|
||||
$files = glob($articles_dir . '*.php');
|
||||
|
||||
$inline_css = '
|
||||
// This file adds inline CSS for button fixes
|
||||
// It should only output CSS, not modify files
|
||||
?>
|
||||
<style>
|
||||
.btn {
|
||||
background: #179e83 !important;
|
||||
@@ -27,23 +24,4 @@ $inline_css = '
|
||||
background: #11725e !important;
|
||||
color: white !important;
|
||||
}
|
||||
</style>';
|
||||
|
||||
foreach ($files as $file) {
|
||||
$content = file_get_contents($file);
|
||||
|
||||
if ($content === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add inline CSS right before </head>
|
||||
if (strpos($content, '</head>') !== false && strpos($content, 'btn-fix-inline') === false) {
|
||||
$content = str_replace('</head>', $inline_css . "\n<!-- btn-fix-inline -->\n</head>", $content);
|
||||
|
||||
file_put_contents($file, $content);
|
||||
echo "Added inline CSS to: " . basename($file) . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
// echo "Inline CSS fix complete!\n";
|
||||
?>
|
||||
</style>
|
||||
@@ -1252,7 +1252,7 @@ img {
|
||||
|
||||
/* Blog article styles */
|
||||
.blog-article {
|
||||
padding: 40px 0 80px;
|
||||
padding: 110px 0 80px;
|
||||
background: white;
|
||||
position: relative;
|
||||
clear: both;
|
||||
@@ -2965,6 +2965,33 @@ aside.related-articles {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Category links section */
|
||||
.category-links {
|
||||
display: flex;
|
||||
gap: 1rem;
|
||||
justify-content: center;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 2rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.category-links .btn {
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
/* Mobile responsive for category links */
|
||||
@media (max-width: 768px) {
|
||||
.category-links {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.category-links .btn {
|
||||
width: 100%;
|
||||
max-width: 300px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Button text visibility fix */
|
||||
.btn * {
|
||||
color: inherit;
|
||||
|
||||
@@ -142,16 +142,14 @@ $read_time = 12;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Dashboard Design</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Dashboard Design</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
@@ -1351,12 +1349,12 @@ $read_time = 12;
|
||||
progressBar.className = 'reading-progress';
|
||||
progressBar.style.cssText = `
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 0%;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, #179e83, #144784);
|
||||
z-index: 999;
|
||||
z-index: 1000;
|
||||
transition: width 0.3s ease;
|
||||
`;
|
||||
document.body.appendChild(progressBar);
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 11;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/technology.php">Technology</a></li>
|
||||
<li aria-current="page"><span>Cloud-Native Scraping Architecture</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/technology.php">Technology</a></li>
|
||||
<li aria-current="page"><span>Cloud-Native Scraping Architecture</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -142,16 +142,14 @@ $read_time = 8;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/data-analytics.php">Data Analytics</a></li>
|
||||
<li aria-current="page"><span>ROI Metrics</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/data-analytics.php">Data Analytics</a></li>
|
||||
<li aria-current="page"><span>ROI Metrics</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -122,16 +122,14 @@ $og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Data Automation Strategies</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Data Automation Strategies</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<div class="article-meta">
|
||||
<span class="category-tag">Business Intelligence</span>
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 9;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/data-analytics.php">Data Analytics</a></li>
|
||||
<li aria-current="page"><span>Data Quality Validation Pipelines</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/data-analytics.php">Data Analytics</a></li>
|
||||
<li aria-current="page"><span>Data Quality Validation Pipelines</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -117,7 +117,7 @@ $breadcrumbs = [
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<article class="blog-article" style="margin-top: 80px;">
|
||||
<article class="blog-article">
|
||||
<div class="container">
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 7;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/case-studies.php">Case Studies</a></li>
|
||||
<li aria-current="page"><span>Financial Services Data Transformation</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/case-studies.php">Case Studies</a></li>
|
||||
<li aria-current="page"><span>Financial Services Data Transformation</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -58,7 +58,6 @@ $breadcrumbs = [
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||
|
||||
<?php include($_SERVER['DOCUMENT_ROOT'] . '/add_inline_css.php'); ?>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 6;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/compliance.php">Legal & Compliance</a></li>
|
||||
<li aria-current="page"><span>GDPR Data Minimisation</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/compliance.php">Legal & Compliance</a></li>
|
||||
<li aria-current="page"><span>GDPR Data Minimisation</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 8;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>Handling CAPTCHAs</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>Handling CAPTCHAs</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -139,16 +139,14 @@ $read_time = 8;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>JavaScript Scraping</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>JavaScript Scraping</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
@@ -592,12 +590,12 @@ await page.goto(url);
|
||||
progressBar.className = 'reading-progress';
|
||||
progressBar.style.cssText = `
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 0%;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, #179e83, #144784);
|
||||
z-index: 999;
|
||||
z-index: 1000;
|
||||
transition: width 0.3s ease;
|
||||
`;
|
||||
document.body.appendChild(progressBar);
|
||||
|
||||
@@ -142,16 +142,14 @@ $read_time = 14;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Customer Churn Analytics</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Customer Churn Analytics</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -197,16 +197,14 @@ $read_time = 12;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>Python Scrapy Enterprise Guide</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>Python Scrapy Enterprise Guide</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -71,6 +71,18 @@ $read_time = 11;
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<div class="container">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/blog/categories/data-analytics.php">Data Analytics</a></li>
|
||||
<li class="active" aria-current="page">Real-Time Analytics with Streaming Data</li>
|
||||
</ol>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main class="article-main">
|
||||
<div class="container">
|
||||
<article class="article-content">
|
||||
|
||||
@@ -71,6 +71,18 @@ $read_time = 9;
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<div class="container">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/blog/categories/case-studies.php">Case Studies</a></li>
|
||||
<li class="active" aria-current="page">Retail Competitor Monitoring Case Study</li>
|
||||
</ol>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main class="article-main">
|
||||
<div class="container">
|
||||
<article class="article-content">
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 10;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/industry-insights.php">Industry Insights</a></li>
|
||||
<li aria-current="page"><span>Price Monitoring Strategies</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/industry-insights.php">Industry Insights</a></li>
|
||||
<li aria-current="page"><span>Price Monitoring Strategies</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 9;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/technology.php">Technology</a></li>
|
||||
<li aria-current="page"><span>Selenium vs Playwright</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/technology.php">Technology</a></li>
|
||||
<li aria-current="page"><span>Selenium vs Playwright</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -142,16 +142,14 @@ $read_time = 16;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Advanced SQL Analytics</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/business-intelligence.php">Business Intelligence</a></li>
|
||||
<li aria-current="page"><span>Advanced SQL Analytics</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
@@ -1590,12 +1588,12 @@ ORDER BY predicted_clv DESC;</code></pre>
|
||||
progressBar.className = 'reading-progress';
|
||||
progressBar.style.cssText = `
|
||||
position: fixed;
|
||||
top: 70px;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 0%;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, #179e83, #144784);
|
||||
z-index: 999;
|
||||
z-index: 1000;
|
||||
transition: width 0.3s ease;
|
||||
`;
|
||||
document.body.appendChild(progressBar);
|
||||
|
||||
@@ -74,6 +74,18 @@ $read_time = 8;
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<div class="container">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog">Blog</a></li>
|
||||
<li><a href="/blog/categories/compliance.php">Compliance</a></li>
|
||||
<li class="active" aria-current="page">UK Cookie Law Compliance Guide</li>
|
||||
</ol>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main class="article-main">
|
||||
<div class="container">
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 8;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/industry-insights.php">Industry Insights</a></li>
|
||||
<li aria-current="page"><span>UK Property Market Data Trends</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/industry-insights.php">Industry Insights</a></li>
|
||||
<li aria-current="page"><span>UK Property Market Data Trends</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -329,16 +329,14 @@ $read_time = 12;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/compliance.php">Legal & Compliance</a></li>
|
||||
<li aria-current="page"><span>Web Scraping Compliance Guide</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/compliance.php">Legal & Compliance</a></li>
|
||||
<li aria-current="page"><span>Web Scraping Compliance Guide</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -124,16 +124,14 @@ $read_time = 9;
|
||||
</nav>
|
||||
|
||||
<!-- Breadcrumb Navigation -->
|
||||
<div class="breadcrumb">
|
||||
<nav aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>Rate Limiting</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="breadcrumb" aria-label="Breadcrumb">
|
||||
<ol>
|
||||
<li><a href="/">Home</a></li>
|
||||
<li><a href="/blog/">Blog</a></li>
|
||||
<li><a href="../categories/web-scraping.php">Web Scraping</a></li>
|
||||
<li aria-current="page"><span>Rate Limiting</span></li>
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
<!-- Article Content -->
|
||||
<main id="main-content">
|
||||
|
||||
@@ -697,4 +697,4 @@ UNLOCK TABLES;
|
||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2025-06-08 20:51:14
|
||||
-- Dump completed on 2025-06-09 5:33:32
|
||||
115
includes/article-footer.php
Normal file
115
includes/article-footer.php
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
// Get related articles from the same category
|
||||
$current_category = isset($article_category) ? $article_category : 'Industry Insights';
|
||||
$current_slug = isset($article_slug) ? $article_slug : '';
|
||||
|
||||
// Define related articles for different categories
|
||||
$related_articles = [
|
||||
'Industry Insights' => [
|
||||
[
|
||||
'title' => 'UK Property Market Data Trends 2024',
|
||||
'slug' => 'uk-property-market-data-trends',
|
||||
'category' => 'Industry Insights',
|
||||
'read_time' => '8 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'E-commerce Trends UK 2025',
|
||||
'slug' => 'ecommerce-trends-uk-2025',
|
||||
'category' => 'Industry Insights',
|
||||
'read_time' => '6 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'Manufacturing Supply Chain Optimization',
|
||||
'slug' => 'manufacturing-supply-chain-optimization',
|
||||
'category' => 'Industry Insights',
|
||||
'read_time' => '10 min read'
|
||||
]
|
||||
],
|
||||
'Technology' => [
|
||||
[
|
||||
'title' => 'Python Data Pipeline Tools 2025',
|
||||
'slug' => 'python-data-pipeline-tools-2025',
|
||||
'category' => 'Technology',
|
||||
'read_time' => '12 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'Selenium vs Playwright Comparison',
|
||||
'slug' => 'selenium-vs-playwright-comparison',
|
||||
'category' => 'Technology',
|
||||
'read_time' => '8 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'Python Scrapy Enterprise Guide',
|
||||
'slug' => 'python-scrapy-enterprise-guide',
|
||||
'category' => 'Technology',
|
||||
'read_time' => '15 min read'
|
||||
]
|
||||
],
|
||||
'Web Scraping' => [
|
||||
[
|
||||
'title' => 'Web Scraping Compliance UK Guide',
|
||||
'slug' => 'web-scraping-compliance-uk-guide',
|
||||
'category' => 'Web Scraping',
|
||||
'read_time' => '10 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'Handling CAPTCHAs in Web Scraping',
|
||||
'slug' => 'handling-captchas-scraping',
|
||||
'category' => 'Web Scraping',
|
||||
'read_time' => '7 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'JavaScript Heavy Sites Scraping',
|
||||
'slug' => 'javascript-heavy-sites-scraping',
|
||||
'category' => 'Web Scraping',
|
||||
'read_time' => '9 min read'
|
||||
]
|
||||
],
|
||||
'Data Analytics' => [
|
||||
[
|
||||
'title' => 'Real-time Analytics with Streaming Data',
|
||||
'slug' => 'real-time-analytics-streaming-data',
|
||||
'category' => 'Data Analytics',
|
||||
'read_time' => '11 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'SQL Analytics Advanced Techniques',
|
||||
'slug' => 'sql-analytics-advanced-techniques',
|
||||
'category' => 'Data Analytics',
|
||||
'read_time' => '13 min read'
|
||||
],
|
||||
[
|
||||
'title' => 'Predictive Analytics for Customer Churn',
|
||||
'slug' => 'predictive-analytics-customer-churn',
|
||||
'category' => 'Data Analytics',
|
||||
'read_time' => '9 min read'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
// Get articles for current category, exclude current article
|
||||
$category_articles = isset($related_articles[$current_category]) ? $related_articles[$current_category] : $related_articles['Industry Insights'];
|
||||
$filtered_articles = array_filter($category_articles, function($article) use ($current_slug) {
|
||||
return $article['slug'] !== $current_slug;
|
||||
});
|
||||
|
||||
// Limit to 3 articles
|
||||
$display_articles = array_slice($filtered_articles, 0, 3);
|
||||
?>
|
||||
|
||||
<section class="related-articles">
|
||||
<h2>Related Articles</h2>
|
||||
<div class="related-grid">
|
||||
<?php foreach ($display_articles as $article): ?>
|
||||
<article class="related-card">
|
||||
<span class="category"><?php echo htmlspecialchars($article['category']); ?></span>
|
||||
<h4><a href="/blog/articles/<?php echo htmlspecialchars($article['slug']); ?>.php"><?php echo htmlspecialchars($article['title']); ?></a></h4>
|
||||
<span class="read-time"><?php echo htmlspecialchars($article['read_time']); ?></span>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="category-links">
|
||||
<a href="/blog/categories/<?php echo strtolower(str_replace(' ', '-', $current_category)); ?>.php" class="btn">More <?php echo htmlspecialchars($current_category); ?> Articles</a>
|
||||
<a href="/blog/" class="btn btn-secondary">All Blog Articles</a>
|
||||
</div>
|
||||
</section>
|
||||
54
includes/footer.php
Normal file
54
includes/footer.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<!-- Footer -->
|
||||
<footer class="footer">
|
||||
<div class="container">
|
||||
<div class="footer-content">
|
||||
<div class="footer-section">
|
||||
<div class="footer-logo">
|
||||
<img src="/assets/images/logo-white.svg" alt="UK Data Services" loading="lazy">
|
||||
</div>
|
||||
<p>Enterprise data intelligence solutions for modern British business. Transform your operations with accurate, actionable insights and regulatory-compliant data services.</p>
|
||||
</div>
|
||||
|
||||
<div class="footer-section">
|
||||
<h3>Enterprise Services</h3>
|
||||
<ul>
|
||||
<li><a href="/#services">Web Intelligence & Monitoring</a></li>
|
||||
<li><a href="/#services">Technology Platform Solutions</a></li>
|
||||
<li><a href="/#services">Data Management Services</a></li>
|
||||
<li><a href="/#services">Process Automation & APIs</a></li>
|
||||
<li><a href="/#services">Custom Development</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer-section">
|
||||
<h3>Resources & Insights</h3>
|
||||
<ul>
|
||||
<li><a href="/blog/">Data Intelligence Blog</a></li>
|
||||
<li><a href="/case-studies/">Case Studies</a></li>
|
||||
<li><a href="/about">About UK Data Services</a></li>
|
||||
<li><a href="/project-types">Project Types</a></li>
|
||||
<li><a href="/faq">FAQ</a></li>
|
||||
<li><a href="/quote">Request Consultation</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="footer-section">
|
||||
<h3>Legal</h3>
|
||||
<ul>
|
||||
<li><a href="/privacy-policy">Privacy Policy</a></li>
|
||||
<li><a href="/terms-of-service">Terms of Service</a></li>
|
||||
<li><a href="/cookie-policy">Cookie Policy</a></li>
|
||||
<li><a href="/gdpr-compliance">GDPR Compliance</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footer-bottom">
|
||||
<p>© <?php echo date('Y'); ?> UK Data Services. All rights reserved.</p>
|
||||
<div class="social-links">
|
||||
<a href="#" aria-label="LinkedIn"><img src="/assets/images/icon-linkedin.svg" alt="LinkedIn" loading="lazy"></a>
|
||||
<a href="#" aria-label="Twitter"><img src="/assets/images/icon-twitter.svg" alt="Twitter" loading="lazy"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
27
includes/header.php
Normal file
27
includes/header.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<!-- Navigation -->
|
||||
<nav class="navbar" id="navbar">
|
||||
<div class="nav-container">
|
||||
<div class="nav-logo">
|
||||
<a href="/">
|
||||
<picture>
|
||||
<source srcset="/assets/images/ukds-main-logo.webp" type="image/webp">
|
||||
<img src="/assets/images/ukds-main-logo.png" alt="UK Data Services" class="logo">
|
||||
</picture>
|
||||
</a>
|
||||
</div>
|
||||
<div class="nav-menu" id="nav-menu">
|
||||
<a href="/" class="nav-link">Home</a>
|
||||
<a href="/#services" class="nav-link">Capabilities</a>
|
||||
<a href="/project-types" class="nav-link">Project Types</a>
|
||||
<a href="/about" class="nav-link">About</a>
|
||||
<a href="/blog/" class="nav-link">Blog</a>
|
||||
<a href="/#contact" class="nav-link">Contact</a>
|
||||
<a href="/quote" class="nav-link cta-button">Request Consultation</a>
|
||||
</div>
|
||||
<div class="nav-toggle" id="nav-toggle">
|
||||
<span class="bar"></span>
|
||||
<span class="bar"></span>
|
||||
<span class="bar"></span>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
Reference in New Issue
Block a user