Есть ли стандартный способ обработки дизайна (CSS) отдельно от условных в PHP? - PullRequest
1 голос
/ 05 января 2010

Я работал с разработчиком над веб-приложением. У меня есть некоторый опыт работы с html и css в основном, и теперь, когда тяжелая работа выполнена, я хочу начать улучшать элементы дизайна программы (я знаю, что это НЕ идеальная ситуация, и в идеальном мире весь дизайн элементы были бы рассмотрены с самого начала, но те из вас, кто работает над проектами, знают, что это не всегда так :-D)

Мне любопытно, существует ли "стандартный" способ обработки CSS и общей структуры макета при работе с обширными условными выражениями PHP. Вот пример одной области нашей страницы:

$print_data .= '<p><b>My subscription:</b>&nbsp;&nbsp;';

if($period3=="1 M") {
  $print_data .= "$".$amount3." a month.<br />";
  $print_data .= "<b>Billing date:</b>&nbsp;&nbsp; Monthly on the " . date("jS", $subscr_effective_date_string) .".<br /><br /><b>Modification Options:</b><br />";
  $print_data .= '<input type="button" value="$75 every 6 months" onclick="#" /><br />
 <input type="button" value="$135 every 12 months" onclick="#" /><br /><br />';
}

elseif($period3=="6 M") {
  $print_data .= "$".$amount3." every 6 months.<br />";
  $print_data .= "<b>Billing date:</b>&nbsp;&nbsp; Every 6 months on " . date("m/d", $subscr_effective_date_string) ." and " . date("m/d",$subscr_effective_date_add_6mo_string) .".<br /><br /><b>Modification Options:</b><br />";
  $print_data .= '<input type="button" value="$14 a month" onclick="#" /><br /><input type="button" value="$135 every 12 months" onclick="#" /><br /><br />';
}

elseif($period3=="1 Y") {
  $print_data .= "$".$amount3." every year.<br />";
  $print_data .= "<b>Billing date:</b>&nbsp;&nbsp; Yearly on the " . date("m/d", $subscr_effective_date_string) .".<br /><br /><b>Modification Options:</b>";
  $print_data .= '<input type="button" value="$14 a month" onclick="#" /><br /><input type="button" value="$75 every 6 months" onclick="#" /><br /><br />';
}

$print_data .= '<input type="button" value="Unsubscribe" onclick="#" /></p>';

Короче говоря, я хочу включить вышеприведенное в <ul>, а затем сделать каждую условную группу отдельной <li>, которая будет заполнять <ul> в зависимости от условия.

Такого рода вещи обычно все обрабатываются в строке или как?

Спасибо! Joel

1 Ответ

4 голосов
/ 05 января 2010

Уф, это безобразно. Именно по этой причине веб-разработка в последние несколько лет переходит на подход Model-View-Controller (MVC). В идеале ваша разметка презентации (теги html в вашем супе выше) должна быть в одном файле, а логика, которая заполняет ее в другом файле. Один из наиболее распространенных способов сделать это в PHP - использовать шаблонизатор Smarty .

Тем временем, по крайней мере, приведенный выше код должен быть очищен: выясните значения для $ amount3 и текста, который идет на кнопку ввода биллинга, а затем просто выведите HTML в одном месте, а не повторяйте это для каждого случая (и было бы неплохо использовать sprintf вместо того, чтобы объединять строки для чистоты и дополнительной безопасности).

...