PHP функции для отображения разделов вокруг сайта? - PullRequest
1 голос
/ 05 января 2012

Мне нужна помощь.Я работаю над серверной частью веб-сайта и хочу создать функции, в которых я мог бы повторно использовать один и тот же код вместо его дублирования.

Поэтому у меня будут определенные «разделы», содержащие информацию, например:

getQuickInfo

function getQuickInfo() {

echo '
<div class="portlet">
        <div class="portlet-header">
            <h4>Quick Info</h4>
        </div>

        <div class="portlet-content">
            <table cellspacing="0" class="info_table">
                <tbody>
                    <tr>
                        <td class="value">'.getCount("total_users").'</td>
                        <td class="full">Total Users</td>
                    </tr>
                    <tr>
                        <td class="value">'.getCount("count_open_requests").'</td>
                        <td class="full">Open Support Requests</td>
                    </tr>
                </tbody>
            </table>
        </div>      
    </div>
';
}

Теперь я знаю, что подхожу к этому неправильно, поэтому я задаю этот вопрос.Но это всего лишь пример раздела «Информация о Quck», который я хотел бы повторно использовать на других страницах, поэтому я могу разместить его в любом месте и просто выполнить команду getQuickInfo()

. В этом примере эта функция работает нормально.,Я хотел бы получить предложения о лучшем способе сделать это, а также для некоторых других разделов будет не так просто, у него будут некоторые запросы Mysql и получение информации из базы данных, которую я не могу сохранить в эхо.

Как все остальные добиваются таких вещей?

Моя главная цель - иметь возможность выводить разделы, где бы я ни хотел:

  • getQuickInfo ()
  • getAdminNotes ()
  • getSupportRequests ()

и т. Д.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 05 января 2012

Как бы мне не хотелось смешивать необработанный HTML с PHP-кодом в шаблонах, я знаю, что другие не согласны со мной, и это единственное место, где это может быть допустимым.

Итак, вы бы создали файл, который выглядит следующим образом:

quickinfo.php

<div class="portlet">
    <div class="portlet-header">
        <h4>Quick Info</h4>
    </div>

    <div class="portlet-content">
        <table cellspacing="0" class="info_table">
            <tbody>
                <tr>
                    <td class="value"><?php echo getCount("total_users"); ?></td>
                    <td class="full">Total Users</td>
                </tr>
                <tr>
                    <td class="value"><?php echo getCount("count_open_requests"); ?></td>
                    <td class="full">Open Support Requests</td>
                </tr>
            </tbody>
        </table>
    </div>      
</div>

... и на главной странице вы можете просто:

include('quickinfo.php');

Вы можете легко адаптировать это, чтобы использовать результат запросов. Вы просто выполняете запрос на главной странице и присваиваете результаты именованной переменной. Затем на странице шаблона вы используете данные в именованной переменной для генерации страницы. Это означает, что вы можете использовать один и тот же код для генерации разных результатов на основе разных запросов - при условии, что результат хранится в одной и той же именованной переменной.

1 голос
/ 05 января 2012

Если вы используете php 5, вам следует подумать об использовании поддержки объектной ориентации в PHP.

http://php.net/manual/en/language.oop5.php

Таким образом, вы можете создать класс, который имеет методы, которые распечатывают вещи и хранят значения, а затем создают экземпляр этого класса и вызывают его методы по мере необходимости.

0 голосов
/ 05 января 2012

Я не гуру php, но, возможно, вам следует создать отдельные файлы .php для каждого из этих разделов (что-то вроде quickinfo.php, adminnotes.php и т. Д.), Чтобы поместить свой HTML-макет внутрь, и, возможно, даже функции php,нужно (или вы можете поместить их в отдельный файл, это зависит от того, является ли необходимая логика слишком сложной, если это довольно просто, вы можете поместить все в один файл)

Тогда вы сделаете что-то вроде include('quickinfo.php') везде, где вы хотите использовать эти разделы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...