What are the best practices for structuring templates in PHP with Smarty to efficiently include search functionality on specific pages without duplicating code?

To efficiently include search functionality on specific pages without duplicating code in PHP with Smarty, one can create a reusable template file for the search form and include it on the necessary pages using Smarty's {include} function. This allows for easy maintenance and updates to the search functionality across multiple pages without duplicating code.

// search_form.tpl - template file for search form
<form action="search.php" method="get">
    <input type="text" name="query" placeholder="Search...">
    <button type="submit">Search</button>
</form>

// page.tpl - template file for specific page
{include file="search_form.tpl"}

// search.php - PHP file for handling search functionality
<?php
if(isset($_GET['query'])){
    $search_query = $_GET['query'];
    // Perform search query here
}
?>