Как создать внутреннюю таблицу стилей CSS в CakePHP - PullRequest
2 голосов
/ 02 сентября 2011

Я давно пользуюсь CakePHP, и недавно мне нужно было отправлять электронные письма из приложения.К сожалению, я не могу найти способ сказать CakePHP о включении CSS непосредственно в документ в виде внутренней таблицы стилей вместо ссылки.Я знаю, что люди думают, что это плохая идея, но мое приложение только отправляет электронные письма в нашу компанию, поэтому я не слишком беспокоюсь, что чей-то почтовый клиент испортит его.Если я просто добавлю ссылку, она не будет работать, поскольку ссылка неверна, хотя, если бы я мог сделать ссылку абсолютной ссылкой (http://myserver/css/myfile.css вместо /css/myfile.css), это было бы 2-й лучшей альтернативой, поскольку онииметь доступ к моему серверу.

Если в Cake нет способа сделать это, есть ли быстрый способ просто использовать PHP, чтобы прочитать содержимое файла и вывести его в представление?Я думаю, что я мог бы сделать это с контроллера, звучит как плохой взлом, хотя.

Любые идеи будут оценены, спасибо

Ответы [ 6 ]

1 голос
/ 02 сентября 2011

Вы можете использовать readfile() для печати содержимого файла непосредственно в вашем представлении.

Или вы можете $this->Html->url('css/yourcss.css', true), чтобы получить полный путь к файлу и передать его тоже методом css.

1 голос
/ 02 сентября 2011

вы можете поместить CSS в макет электронной почты, как обычный HTML (используйте HTML-макет электронной почты)

<style type="text/css"></style>
1 голос
/ 02 сентября 2011

Я хотел бы предложить вам использовать переменную php в качестве класса стилей и использовать ее непосредственно как класс css. Например.

$class1 = "border : 1px solid #eeeeee; font-family : font1, font2, font3; color : #785634;"

И используйте его в своем шаблоне электронной почты как

<div id='my-div' style=<?php echo $class1; ?>>Your div content </div>

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

Так вот, как я использую CSS в своих проектах.

0 голосов
/ 14 августа 2014

Вы можете написать css inline:

 <h2 style="color:#818381">Here are the latest stories everyone's talking about...</h2>
0 голосов
/ 08 мая 2013

Я использовал функцию включения PHP, заключенную в тег скрипта, и она отлично работала!В представлении электронной почты по умолчанию:

<script>
    include('css/your_css_doc.css');`
</script>
0 голосов
/ 02 сентября 2011

Просмотр кода htmlHelper показывает, что это невозможно сделать.

Однако вы можете изменить или перегрузить помощника; чтобы сделать это самым простым способом, просто добавьте новую опцию между строками 371 и 378.

...