��<?php /* Plugin Name: Tenderslink Display Description: Displays tenders from Tenderfile.csv with search and pagination. Version: 1.0 Author: Custom */ function tenderslink_display_shortcode() { $csv_file = WP_CONTENT_DIR . '/Tenderfile.csv'; ob_start(); ?> <div class="tenderslink-search-wrapper"> <form class="tenderslink-search-form" role="search" method="get"> <input type="search" class="tenderslink-search-input" placeholder="Search tenders..." value="" /> <button type="submit" class="tenderslink-search-button">Search</button> </form> </div> <div class="tenderslink-tender-list" id="tenderslink-tender-list"> <?php if (file_exists($csv_file) && ($handle = fopen($csv_file, 'r')) !== false) { $header = fgetcsv($handle); $count = 0; while (($data = fgetcsv($handle)) !== false && $count < 10000) { // Changed from 500 to 10000 $tln = esc_attr($data[0]); $authority = esc_html($data[1]); $title = esc_html($data[2] === '#NAME?' ? $data[6] : $data[2]); $tender_id = esc_html($data[3]); $tender_value = esc_html($data[4]); $due_date = esc_html($data[5]); $work_brief = esc_html($data[6]); $status_link = 'https://tenderslink.com/subscribe-0/'; ?> <div class="tenderslink-tender-container" data-tln="<?php echo $tln; ?>"> <div class="tenderslink-tender-header"> <h3><?php echo $authority; ?></h3> <a class="tenderslink-tender-button" href="<?php echo $status_link; ?>">View Status</a> </div> <hr class="tenderslink-tender-divider"/> <p class="tenderslink-tender-title"><strong>Title:</strong> <?php echo $title; ?></p> <div class="tenderslink-tender-details"> <span><strong>TLN:</strong> <?php echo $tln; ?></span> <span><strong>Tender ID:</strong> <span class="tenderslink-blurred"><?php echo $tender_id; ?></span></span> <span><strong>Due Date:</strong> <?php echo $due_date; ?></span> </div> <p class="tenderslink-tender-value"><strong>Tender Value:</strong> <span class="tenderslink-blurred"><?php echo $tender_value; ?></span></p> <p class="tenderslink-tender-brief admin-only"><strong>Work Brief:</strong> <?php echo $work_brief; ?></p> </div> <?php $count++; } fclose($handle); } else { echo '<p>Error: Unable to load tenders. Please check Tenderfile.csv.</p>'; } ?> <div class="tenderslink-pagination"> <button id="tenderslink-prev-page" disabled>Previous</button> <span id="tenderslink-page-info">Page 1 of 1000</span> <!-- Updated to reflect potential max pages --> <button id="tenderslink-next-page">Next</button> </div> </div> <?php return ob_get_clean(); } add_shortcode('tenderslink_list', 'tenderslink_display_shortcode'); function tenderslink_enqueue_assets() { if (has_shortcode(get_post()->post_content, 'tenderslink_list')) { wp_enqueue_style('tenderslink-styles', plugin_dir_url(__FILE__) . 'tenderslink-styles.css', [], '1.0'); wp_enqueue_script('tenderslink-script', plugin_dir_url(__FILE__) . 'tenderslink-script.js', [], '1.0', true); } } add_action('wp_enqueue_scripts', 'tenderslink_enqueue_assets'); function tenderslink_body_class($classes) { if (current_user_can('manage_options')) { $classes[] = 'admin-logged-in'; } return $classes; } add_filter('body_class', 'tenderslink_body_class'); function tenderslink_admin_menu() { add_menu_page('Tenderslink Generator', 'Tenderslink', 'manage_options', 'tenderslink-generator', 'tenderslink_generate_html_page'); } add_action('admin_menu', 'tenderslink_admin_menu'); function tenderslink_generate_html_page() { if (!current_user_can('manage_options')) { wp_die('Unauthorized.'); } $csv_file = WP_CONTENT_DIR . '/Tenderfile.csv'; $output_file = WP_CONTENT_DIR . '/tenders.html'; if (isset($_POST['generate_tenders']) && file_exists($csv_file)) { $html = '<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Tender List</title>'; $html .= '<link rel="stylesheet" href="' . plugin_dir_url(__FILE__) . 'tenderslink-styles.css">'; $html .= '</head><body>'; $html .= '<div class="tenderslink-search-wrapper"><form class="tenderslink-search-form" role="search" method="get"><input type="search" class="tenderslink-search-input" placeholder="Search tenders..." value="" /><button type="submit" class="tenderslink-search-button">Search</button></form></div>'; $html .= '<div class="tenderslink-tender-list" id="tenderslink-tender-list">'; if (($handle = fopen($csv_file, 'r')) !== false) { $header = fgetcsv($handle); $count = 0; while (($data = fgetcsv($handle)) !== false && $count < 10000) { // Changed from 500 to 10000 $tln = htmlspecialchars($data[0]); $authority = htmlspecialchars($data[1]); $title = htmlspecialchars($data[2] === '#NAME?' ? $data[6] : $data[2]); $tender_id = htmlspecialchars($data[3]); $tender_value = htmlspecialchars($data[4]); $due_date = htmlspecialchars($data[5]); $work_brief = htmlspecialchars($data[6]); $status_link = 'https://tenderslink.com/subscribe-0/'; $html .= "<div class=\"tenderslink-tender-container\" data-tln=\"{$tln}\"><div class=\"tenderslink-tender-header\"><h3>{$authority}</h3><a class=\"tenderslink-tender-button\" href=\"{$status_link}\">View Status</a></div><hr class=\"tenderslink-tender-divider\"/><p class=\"tenderslink-tender-title\"><strong>Title:</strong> {$title}</p><div class=\"tenderslink-tender-details\"><span><strong>TLN:</strong> {$tln}</span><span><strong>Tender ID:</strong> <span class=\"tenderslink-blurred\">{$tender_id}</ >B25BAB25=: <span><strong>Due Date:</strong> {$due_date}</span></div><p class=\"tenderslink-tender-value\"><strong>Tender Value:</strong> <span class=\"tenderslink-blurred\">{$tender_value}</span></p><p class=\"tenderslink-tender-brief admin-only\"><strong>Work Brief:</strong> {$work_brief}</p></div>"; $count++; } fclose($handle); } $html .= '<div class="tenderslink-pagination"><button id="tenderslink-prev-page" disabled>Previous</button><span id="tenderslink-page-info">Page 1 of 1000</span><button id="tenderslink-next-page">Next</button></div></div>'; $html .= '<script src="' . plugin_dir_url(__FILE__) . 'tenderslink-script.js"></script>'; $html .= '</body></html>'; if (file_put_contents($output_file, $html)) { echo '<div class="notice notice-success"><p>tenders.html generated at: ' . $output_file . '</p></div>'; } else { echo '<div class="notice notice-error"><p>Failed to generate tenders.html.</p></div>'; } } ?> <div class="wrap"> <h1>Tenderslink HTML Generator</h1> <form method="post"> <p><input type="submit" name="generate_tenders" class="button button-primary" value="Generate tenders.html"></p> </form> </div> <?php } ?>
Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896

Warning: Cannot modify header information - headers already sent by (output started at /home/kqvlwfgc/public_html/wp-content/plugins/Tenderdisplay/tenderslink-display.php:1) in /home/kqvlwfgc/public_html/wp-includes/rest-api/class-wp-rest-server.php on line 1896
{"id":18,"date":"2025-06-06T05:17:58","date_gmt":"2025-06-06T05:17:58","guid":{"rendered":"https:\/\/tenderslink.com\/?page_id=18"},"modified":"2025-06-06T05:18:21","modified_gmt":"2025-06-06T05:18:21","slug":"heating-cooling-exhaust-systems","status":"publish","type":"page","link":"https:\/\/tenderslink.com\/?page_id=18","title":{"rendered":"Heating, Cooling & Exhaust Systems"},"content":{"rendered":"\n
\n

Your vehicle\u2019s heating, cooling, and exhaust systems play critical roles in both your comfort and the performance of your car. A well-maintained heating and cooling system ensures you stay comfortable in all weather conditions, while a properly functioning exhaust system protects the environment and improves engine efficiency. At Auto Center, we provide comprehensive services to keep these vital systems in top shape. From AC and heater repairs to exhaust maintenance, our expert technicians have you covered.<\/p>\n\n\n\n

<\/div>\n<\/div>\n\n\n\n
\n

Heating, cooling and exhaust services we offer<\/h2>\n\n\n\n
\n
\n
\"\"<\/figure>\n\n\n\n

1. Heating & Cooling System Services<\/h3>\n\n\n\n
\n\n\n\n

The heating and cooling systems in your vehicle are essential for your comfort, whether you’re facing extreme summer heat or winter chills. A malfunctioning air conditioning or heating system can not only make driving uncomfortable but can also indicate other issues within your vehicle’s cooling system that could affect the engine. At Auto Center, we offer a full range of heating and cooling services to keep your vehicle running efficiently and your cabin comfortable year-round.<\/p>\n\n\n\n

Air Conditioning Repair & Recharge<\/h4>\n\n\n\n

When your vehicle’s air conditioning isn\u2019t cooling properly, it may need a recharge or repair. Our certified technicians can diagnose the issue, whether it’s low refrigerant, a faulty compressor, or a leak in the system. We\u2019ll get your AC blowing cold again with fast and effective repairs.<\/p>\n\n\n\n