Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 01. Oktober 2015 06:54
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 876
Abfrage, ob Bild hoch- oder querformat
Hallo,
für ein paar Bilder, die im News-Modul hochgeladen werden, benötige ich eine Abfrage, die erkennt, ob ein Bild hoch- oder querformatig ist.
In der Vorstellung recht simpel, sowas in der Art vielleicht:
{if imagesize->width ≥ imagesize->height}
<img style="width: 100%; height: auto" src="bild-quer.jpg" tlitle="..." />
{else}
<img style="height: 100%; width: auto" src="bild-hoch.jpg" tlitle="..." />
{/if}
.. oder so ähnlich. Nur halt in valide.
Für ein wenig Hilfe wäre ich dankbar.
Beitrag geändert von antibart (01. Oktober 2015 07:26)
Offline
#2 01. Oktober 2015 07:28
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.927
- Webseite
Re: Abfrage, ob Bild hoch- oder querformat
Du kommst wie folgt an die Daten:
(im Beispiel heisst das Bildfeld in den News "Bild")
{$bildpfad = "`$entry->file_location`/`$entry->fields.Bild->value`"}
{$bildpfad = $bildpfad|replace:"http://`$smarty.server.HTTP_HOST`":"/home/dein/pfad/zur/cmsms/installation/"}
{assign var="bildinfo" value=$bildpfad|getimagesize}
Danach kannst du auf die Variable $bildinfo zugreifen.
{if $bildinfo.0 > $bildinfo.1}Querformat{else}Hochformat{/if}
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 01. Oktober 2015 07:52
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 876
Re: Abfrage, ob Bild hoch- oder querformat
Coool. Danke.
Offline
#4 02. Oktober 2015 11:51
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 876
Re: Abfrage, ob Bild hoch- oder querformat
Hmmm - es wird immer nur {else} ausgegeben. Stimmt da was mit dem Pfad nicht?
[== smarty, html ==]
{$bildpfad = "`$entry->file_location`/`$entry->fields.Bild_1->value`"}
{$bildpfad = $bildpfad|replace:"http://`$smarty.server.HTTP_HOST`":"/kunden/homepages/14/xxxxxxx/htdocs/cmsms/"}
{assign var="bildinfo" value=$bildpfad|getimagesize}
{if isset($entry->fields.Bild_1->value) && $entry->fields.Bild_1->value !=''}
{if $bildinfo.0 < $bildinfo.1}
<div class="newsbild" style="text-align: center" rel="lightbox[gallery]" title="{$entry->title|cms_escape}"><img src="{$entry->file_location}/{$entry->fields.Bild_1->value}" alt="{$entry->title|cms_escape}" style="width: 100%; height: auto;" />
</a>
</div>
{else}
<div class="newsbild" style="display: -webkit-flex; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-align-items: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center;"><a href="{$entry->file_location}/{$entry->fields.Bild_1->value}" rel="lightbox[gallery]" title="{$entry->title|cms_escape}"><img src="{$entry->file_location}/{$entry->fields.Bild_1->value}" alt="{$entry->title|cms_escape}" style="height: 100%; width: auto;" />
</a>
</div>
{/if}
{else}
{/if}
Beitrag geändert von antibart (02. Oktober 2015 12:45)
Offline
#5 02. Oktober 2015 11:58
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: Abfrage, ob Bild hoch- oder querformat
Welches {else} wird ausgegeben?
Das erste oder das zweite?
Abgesehen davon ist der Syntax beim Array {$bildinfo} falsch.
Wenn es ein numerisch indiziertes Array ist, dann nicht mit dem "Punkt-Syntax" sondern mit der eckigen Klammer darauf zugreifen:
{if $bildinfo[0] < $bildinfo[1]}
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#6 02. Oktober 2015 12:17
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 876
Re: Abfrage, ob Bild hoch- oder querformat
Welches {else} wird ausgegeben?
Das erste oder das zweite?
Das, was sich auf die bildinfo bezieht - das andere fragt ja nur, ob das Feld leer ist oder nicht.
Abgesehen davon ist der Syntax beim Array {$bildinfo} falsch.
Danke. Leider hat es noch nicht zum Erfolg geführt. Noch immer wird bei allen Fotos - egal ob hochkant oder querformat dieser Teil nach dem {else} ausgegeben.
[== html, css, smarty ==]
<div class="newsbild" style="display: -webkit-flex; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-align-items: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center;"><a href="{$entry->file_location}/{$entry->fields.Bild_1->value}" rel="lightbox[gallery]" title="{$entry->title|cms_escape}"><img src="{$entry->file_location}/{$entry->fields.Bild_1->value}" alt="{$entry->title|cms_escape}" style="height: auto; width: 100%;" />
</a>
</div>
Daher meine Vermutung, dass die Bildinfo noch gar nicht ermittelt werden kann.
Beitrag geändert von antibart (02. Oktober 2015 12:43)
Offline
#7 02. Oktober 2015 13:27
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 876
Re: Abfrage, ob Bild hoch- oder querformat
Ich glaube noch immer, dass mein Pfad nicht stimmt.
Mal Schritt für Schritt
[== smarty ==]
{$bildpfad = "`$entry->file_location`/`$entry->fields.Bild_1->value`"}
Ermittelt: uploads/news/idXX/bilddatei.jpg
[== smarty ==]
{$bildpfad = $bildpfad|replace:"http://`$smarty.server.HTTP_HOST`":"/kunden/homepages/14/xxxxxxx/htdocs/cmsms/"}
Ersetzt die URL durch den absoluten Pfad. Also aus "http:// www. domain . de" wird "/kunden/homepages/14/xxxxxxx/htdocs/cmsms/".
Wobei CMS-Root sich zur Zeit in einem Unterverzeichnis befindet, welches noch nicht direkt mit der Domain verknüpft ist. Also http:// www. domain . de / cmsms . Müsste ich den Ordner oben noch hinter $smarty.server.HTTP_HOST packen?
[== smarty ==]
{assign var="bildinfo" value=$bildpfad|getimagesize}
Erstellt die Variable $bildinfo, deren Wert /kunden/homepages/14/xxxxxxx/htdocs/cmsms/uploads/news/idXX/bilddatei.jpg und bezieht über "getimmagesize" die Ausmaße des Bildes.
... "getimagesize" ist ein Array und wird mit den Bildgrößendaten gefüttert: 0=Breite, 1=Höhe
[== smarty ==]
{if $bildinfo[0] < $bildinfo[1]}
Wenn Wert Bildbreite [0] kleiner ist als Wert Bildhöhe [1], zeige.
Hochkant...
Habe ich das soweit richtig gedeutet? Wo könnte meine Fehler liegen?
Ich habe testweise einfach mal {$bildinfo.0} bzw {$bildinfo[0]} ins Template gesetzt, um zu gucken, ob etwas ausgegeben wird. Wird nicht.
Beitrag geändert von antibart (02. Oktober 2015 14:06)
Offline
#8 02. Oktober 2015 14:07
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.435
Re: Abfrage, ob Bild hoch- oder querformat
Müsste ich den Ordner oben noch hinter $smarty.server.HTTP_HOST packen?
Nein, im Gegenteil, die muss aus dem absoluten Pfad raus.
Die URL lautet ja "domain.de/cmsms/pfad/zum/bild".
Der Teil "domain.de" wird ersetzt mit "/kunden/homepages/14/xxxxxxx/htdocs/cmsms/".
Also steht am Ende da "/kunden/homepages/14/xxxxxxx/htdocs/cmsms/cmsms/pfad/zum/bild".
Also nur mit "/kunden/homepages/14/xxxxxxx/htdocs/" ersetzen.
Wenn Du die Domain aber nacher umstellen solltest, musst da wieder ran und es so machen wie jetzt.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#9 02. Oktober 2015 14:45
- antibart
- Server-Pate
- Registriert: 14. Dezember 2010
- Beiträge: 876
Re: Abfrage, ob Bild hoch- oder querformat
Oh. Wow. Nu is alles jut. Danke.
Offline
#10 04. Oktober 2015 13:50
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: Abfrage, ob Bild hoch- oder querformat
Achtung
http://www.cmsmadesimple.de/forum/viewtopic.php?id=4593
Beitrag geändert von Andynium (04. Oktober 2015 14:15)
Offline
Seiten: 1