Как я могу применить классы к изображениям на основе их соотношения сторон с PHP? - PullRequest
2 голосов
/ 23 сентября 2011

Я работаю на сайте drupal6, и у меня есть страница, на которой отображаются миниатюрные изображения (связанные с полным содержимым узла).

В настоящее время изображения могут иметь динамическую ширину в зависимости от родителя.div, и они вертикальные и горизонтальные.

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

Мне нужнолибо поместить это в мой template.php в качестве предварительного процесса, либо в мой page.tlp.php.Я не могу использовать Jquery / Javascript, потому что я не могу рисковать FOUC.Я также разрабатываю этот сайт как многопользовательскую установку drupal в соответствии с инструкциями, и мне не разрешено иметь что-либо вне папки моего собственного каталога сайта.

Я смотрел на getimagesize () и getElementsByTagName ()но я просто не уверен, как это собрать, так как мой PHP довольно ограничен.Я надеюсь, что кто-то здесь может направить меня в правильном направлении В.С., давая мой ответ.

Спасибо Стефани

Ответы [ 2 ]

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

В основном используйте getimagesize, чтобы извлечь ширину и высоту изображения.Тогда сравните два.Если ширина больше высоты, выведите image-horizontal, иначе выведите image-vertical.Вот пример кода, который сделает эту работу.Он использует list, чтобы получить только первые два элемента возвращаемого массива getimagesize, которые являются widht и высотойЗатем внутри оператора echo мы выполняем проверку и выводим соответствующий класс:

list($width, $height) = getimagesize($your_full_path_to_image);
echo '<img src="'.$your_url_to_image.'" class="'.(($width > $height) ? 'image-horizontal' : 'image-vertical').'" />';
0 голосов
/ 03 января 2013

Как продолжение, мне жаль говорить, что я никогда не получал это так, как я изложил в своем первоначальном вопросе.Я не уверен, было ли это невозможно, не возможно в моем конкретном случае, или я просто не мог понять это.

В итоге я использовал прямую CSS для масштабирования и фальсифицировал константуширина путем добавления фона

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