Решено с помощью медиа-запросов print css!
ChromeVox добавляет разметку и стили в body
страницы, которая выглядит следующим образом:
<div aria-hidden="true" class="cvox_indicator_container ...more classes...">
...more html markup...
</div>
Поэтому я обновил свой Глобальная таблица стилей CSS включает в себя следующее:
@media print {
.cvox_indicator_container {
display: none;
}
}
, который работал отлично.
Затем я подумал, что хочу убедиться, что это никогда не изменится, даже если ChromeVox изменил свой CSS для большей специфичности.
Затем я обновил CSS:
@media print {
html body div.cvox_indicator_container {
display: none !important;
}
}
Примечание: Это может быть излишним, но, безусловно, имеет больше специфичности.
В идеале команда ChomeVox добавит что-то вроде этого решения в свой код. Я пытался найти их репозиторий с открытым исходным кодом… подошел близко, но не смог. Halp?
Использование шаблонизатора может быть полезным, если у вас есть не программист, выполняющий шаблоны. Во многих случаях упрощенный язык шаблонов может быть проще для непрограммиста, чем сам PHP.
Тем не менее, я ухожу от использования шаблонов, когда это только я (или я и другие разработчики).
Ну, это только мое мнение, но движки шаблонов отстой. Сначала вы должны понять, как реализован механизм шаблонов, а затем научиться его использовать. Кажется, это просто потраченное время, потому что только PHP делает это лучше и предлагает гораздо больше гибкости.
Я обнаружил, что когда я представил Smarty, было довольно просто заставить веб-дизайнеров создавать HTML с переменными smarty. Люди из команды программистов теперь сосредоточены на дополнительной серверной работе, то есть на создании содержимого переменных Smarty.
Это сократило жизненный цикл разработки, поскольку работу можно было распределить между большим количеством людей, и в конечном итоге привело к улучшению дизайна.
Для шаблонизаторов:
Для plain-php:
Я предпочитаю сам PHP, если вообще возможный. И большинство людей не хотят взламывать ваше программное обеспечение, создавая собственную тему, поэтому легко прочитать и исследовать ее безопасность. Тем не менее, я "между парнем", который занимается шаблонизацией и программированием, и даже некоторыми графическими искусствами; Мой набор навыков отличается от строгого программиста и строгого художника / дизайнера.
такие как художники-графики или веб-дизайнеры.Для plain-php:
Я предпочитаю сам PHP, если это вообще возможно. И большинство людей не хотят взламывать ваше программное обеспечение, создавая собственную тему, поэтому легко прочитать и исследовать ее безопасность. Тем не менее, я "между парнем", который занимается шаблонизацией и программированием, и даже некоторыми графическими искусствами; Мой набор навыков отличается от строгого программиста и строгого художника / дизайнера.
такие как художники-графики или веб-дизайнеры.Для plain-php:
Я предпочитаю сам PHP, если это вообще возможно. И большинство людей не хотят взламывать ваше программное обеспечение, создавая собственную тему, поэтому легко прочитать и исследовать ее безопасность. Тем не менее, я "между парнем", который занимается шаблонизацией и программированием, и даже некоторыми графическими искусствами; Мой набор навыков отличается от строгого программиста и строгого художника / дизайнера.
а не просто интерпретируемая или отфильтрованная часть.Я предпочитаю сам PHP, если это вообще возможно. И большинство людей не хотят взламывать ваше программное обеспечение, создавая собственную тему, поэтому легко прочитать и исследовать ее безопасность. Тем не менее, я "между парнем", который занимается шаблонизацией и программированием, и даже некоторыми графическими искусствами; Мой набор навыков отличается от строгого программиста и строгого художника / дизайнера.
а не просто интерпретируемая или отфильтрованная часть.Я предпочитаю сам PHP, если это вообще возможно. И большинство людей не хотят взламывать ваше программное обеспечение, создавая собственную тему, поэтому легко прочитать и исследовать ее безопасность. Тем не менее, я "между парнем", который занимается шаблонизацией и программированием, и даже некоторыми графическими искусствами; Мой набор навыков отличается от строгого программиста и строгого художника / дизайнера.
Если бы мне пришлось потратить время на изучение автономного шаблонизатора, я бы вместо этого потратил бы время на изучение Framework. Я выбрал Zend Framework, который, будучи реализованным с использованием подхода MVC, предоставляет вам всю мощь инфраструктуры вместе с собственными возможностями шаблонов самого PHP.
Я нашел, что создание облегченного движка шаблонов на PHP работает лучше всего для нас. Позволяет хорошо разделить код, и наш графический дизайнер может выучить несколько простых правил, которым нужно следовать, но большинство пишет HTML / CSS, а не PHP. Я могу написать тяжелый код, не задумываясь об интерфейсе.
PHP идеально подходит для большинства задач, но шаблонизатор может помочь проекту легче масштабироваться.
С полок такие, как Smarty или PHPTAL , хороши, если у вас нет времени накатывать свои собственные (и не требуется больше, чем они предлагают). Кроме того, вы можете довольно легко заменить / изменить их в своей собственной реализации позже, если вы обнаружите, что вам нужно что-то более специализированное.
У меня лично был хороший опыт работы с PHPTAL, в первую очередь потому, что он не мешает вам и прост .
Применяются следующие причины:
PHP как шаблонизатор не будет жаловаться, если вы перепутаете синтаксис HTML . Это позволит вам забыть закрыть теги, неправильно их вложить и т. Д.
Вывод PHP не экранируется по умолчанию, поэтому, если вы не забыли строго добавить везде htmlspecialchars ()
, на вашем сайте будет HTML инъекции (XSS) уязвимости.
<p>Hello <?= $name ?></b>
<!-- Simple template full of errors -->
Эти проблемы намного усугубляются, когда вы пытаетесь правильно сгенерировать XHTML . Дело не в том, что ты можешь ' Это можно сделать с помощью простого PHP - конечно, вы можете - но это требует больше усилий и усердия.
PHP - это не механизм создания шаблонов, а язык сценариев.
Я не знаю, связано ли это с VirtueMart, Joomla или концепцией шаблонов в PHP, но настройка VirtueMart для вашей собственной графической темы - это ЧИСТЫЙ АД. (Я не говорю о простом CSS-стиле.)
Мой выбор для любого нового проекта, вероятно, состоял бы в том, чтобы просто использовать возможности PHP по созданию шаблонов, возможно, в сочетании со средой MVC, вместо использования другого механизма шаблонов. В конце концов, для простоты кода или чистоты разделения не имеет значения, есть ли в вашем коде {$ myVar}
или = $ MyVar?>
. Более сложные функции шаблонов, такие как условия, циклы или бэкэнд-технологии, такие как кеширование, могут обрабатываться так же (или лучше) PHP или фреймворком MVC.
Я использовал оба подхода (с механизмом создания шаблонов и без него),
PHP - это не механизм шаблонов, а язык, который можно использовать для написания шаблонов или механизмов шаблонов. Механизм шаблонов - это не только язык, но и программный API, который позволяет сценариям находить, организовывать шаблоны или назначать им данные из сценария. Чистый PHP ничего не предлагает вам - это просто язык. Вместо этого вам следует взять для сравнения такие библиотеки, как Zend_View в Zend Framework (в основном, он работает точно так же, как Smarty, за исключением того, что использует PHP для написания шаблонов). Вы должны спросить, следует ли вам использовать механизм шаблонов с PHP или что-то еще в качестве языка шаблонов.
Когда дело доходит до самих языков шаблонов, то что ж ... обычных циклов и условий достаточно для написания шаблонов, но этого "достаточно " не означает, что это просто, удобно, эффективно или гибко. PHP не предлагает ничего особенного для разработчиков шаблонов, но многие «языки шаблонов» (например, Smarty) предоставляют только ограниченное подмножество PHP, поэтому я не удивлен, что программисты выбирают PHP. По крайней мере, они могут писать функции и использовать ООП, что для этого слишком массивно (на мой взгляд), но действительно работает и действительно помогает.
Дело в том, что пользовательские языки шаблонов не ограничены недостатками PHP, но их разработчики делают это неправильно. не вижу этого, утверждая, что «достаточно отображения переменных и цикла». Возможные области, в которых языки шаблонов могли бы быть более эффективными:
Savant - это то, что вы ищете. Это хороший класс-оболочка, который позволяет вам использовать операторы PHP в ваших шаблонах вместо интерпретации нового языка шаблонов поверх PHP.
Плюсы:
Имеет смысл не добавлять в систему лишней работы.
Не нужно учиться разработчикам
Если вы все дисциплинированы, то это правильный путь. (Savant)
Минусы:
Хотя Savant поощряет вас правильно разделять, он не заставляет разработчика отделять бизнес-логику от кода разработки. У меня есть правило, которое нельзя нарушать. Вы можете только выводить переменные, использовать условия и циклы в своих шаблонах. Вы никогда не должны позволять разработчику создавать переменные в шаблоне. К сожалению, разработчики никогда этого не делают, сколько бы раз вы им ни говорили. Таким образом, использование такого движка, как Smarty, окупается, потому что разработчики вынуждены полностью разделять бизнес и дизайн.
Если я делаю проект для себя или проект, у которого мало разработчиков, я обычно использую Savant . Если это проект, который намного больше меня, тогда в архитектуре я выберу что-нибудь вроде Smarty.
В любом случае, разделение в коде важно при использовании Savant или Smarty. Я уверен, что есть и другие хорошие варианты.