Welcome, Guest. Please login or register.
Did you miss your activation email?
April 20, 2014, 07:23:39 PM

Login with username, password and session length
Search:     Advanced search
Interested in joining the WebsiteBaker team?
For more Information read here or on our new website.
177370 Posts in 24314 Topics by 6875 Members
Latest Member: vijin
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: anynews - nur Bilder von {CONTENT_SHORT} anzeigen lassen??  (Read 1730 times)
oschi

Offline Offline

Posts: 27


« on: December 08, 2011, 11:16:19 AM »

Wie erreiche ich, dass ich nicht den gesamten Inhalt meines {CONTENT_SHORT} anzeigen lasse,
sondern nur die Bilder oder auch nur das erste Bild?

Vielen Dank für eure Hilfe
« Last Edit: December 08, 2011, 12:47:26 PM by oschi » Logged
badknight
Moderator
**
Online Online

Posts: 704



WWW
« Reply #1 on: December 14, 2011, 03:13:32 PM »

Hallo!

Anynews bietet die Funktion "allowed_tags" dort schreib einfach <img> rein und sonst nichts.

Schon wird nur noch ein IMG Tag zugelassen. Zusätzlich musst du dafür sorgen, dass dein Content-Short  in einem Element ist (<div> etc.).

Dannach sollte nurnoch ein Bild rauskommen.
Logged

Ich würde gern die Welt verändern, doch Gott gibt mir den Quellcode nicht...
oschi

Offline Offline

Posts: 27


« Reply #2 on: December 20, 2011, 02:55:04 PM »

Danke für deine Antwort.

"allowed_tags" funktioniert anders. Es belässt diese angegebenen Tags aus dem Content_Short.
D.h. alle anderen Tags werden abgesteift und nur den Text im Inneren der Text bleibt übrig.

Das ist also keine Filterfunktion.


Logged
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #3 on: December 21, 2011, 11:06:08 AM »

Könnte mit nem regulären Ausdruck funktionieren. Sowas wie:

Code:
preg_match( '~<img[^>].+?/>~i', $row['content_short'], $match );

Danach sollte Dein Image in $match[0] stehen. Ungetestet und ohne Garantie. Wink

Edit: Wenn Deine Image-Tags nicht XHTML-konform sind, vielleicht noch das / am Ende optional machen.

Code:
preg_match( '~<img[^>].+?/?>~i', $row['content_short'], $match );
Logged

Alle großen Veränderungen beginnen im Kleinen
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #4 on: December 21, 2011, 11:21:28 AM »

Das hier funktioniert bei mir mit WB 2.8.2.

Datei include.php

SUCHE
Code:
/**
* fetch custom placeholders from short/long text fields and replace template placeholders with values
*/
$custom_vars_short_text = getCustomOutputVariables($row['content_short'], $custom_placeholder, 'SHORT');
$custom_vars_long_text = getCustomOutputVariables($row['content_long'], $custom_placeholder, 'LONG');
$custom_vars = array_merge($custom_vars_short_text, $custom_vars_long_text);

DAHINTER

Code:
// match first image in short text
$first_image = NULL;
preg_match( '~<img[^>].+?/?>~i', $row['content_short'], $match );
if ( is_array($match) && isset($match[0]) ) {
$first_image = $match[0];
}

SUCHE

Code:
// replace the news article dependend template placeholders
$tpl->set_var(array(
'WB_URL'       => WB_URL,
'GROUP_IMAGE'     => $image,
'NEWS_ID'     => $news_counter,

DAHINTER

Code:
'FIRST_IMAGE' => $first_image,

Dann noch in Dein Ausgabetemplate an gewünschter Stelle den Platzhalter {FIRST_IMAGE} eintragen und fertig.
Logged

Alle großen Veränderungen beginnen im Kleinen
flipi

Offline Offline

Posts: 6


« Reply #5 on: January 10, 2012, 12:30:40 AM »

Hi!

Ist das ganze so ähnlich auch mit dem Newsmodul möglich?

Also das wenn ein bild im content long ist das ich dann einen placeholder bekomme der mir einfach nur ja oder nein sagt.

vielen dank und
Lg Timo
Logged
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #6 on: January 10, 2012, 10:45:39 AM »

Bestimmt. grin
Logged

Alle großen Veränderungen beginnen im Kleinen
flipi

Offline Offline

Posts: 6


« Reply #7 on: January 10, 2012, 03:13:32 PM »

Ok, funktioniert der oben genannte weg auch in dem Newsmodul?

weil finde die schlagwörter nicht.

Gesucht wurde in der view.php

Lg Timo
« Last Edit: January 10, 2012, 03:39:32 PM by flipi » Logged
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #8 on: January 10, 2012, 04:27:33 PM »

Grundsätzlich funktioniert der Weg, aber nicht durch schlichtes Copy&Paste. Die Frage war ja "funktioniert der Weg", nicht "funktioniert DIESER Code". Wink
Logged

Alle großen Veränderungen beginnen im Kleinen
flipi

Offline Offline

Posts: 6


« Reply #9 on: January 10, 2012, 04:48:48 PM »

Hmm.. ich drück mich mal anders aus. Welchen code müsste ich en welchen dateien ergänzen.

Lg Timo
Logged
cwsoft

Offline Offline

Posts: 407


« Reply #10 on: March 29, 2012, 05:53:32 PM »

Hi,

wenn ich es nicht falsch verstanden habe, lässt sich das mit Anynews Parameter $custom_placeholder realisieren. Dazu muss im Anynews Funktionsaufruf der Parameter $custom_placeholder wie folgt gesetzt werden:

Code:
  $custom_placeholder = array('FIRST_IMAGE' => '%img%'),

Sind im Kurz- oder Langtext Bilder enthalten, können diese an der gewünschten Stelle im Template über den mittels $custom_placeholder definierten Variablennamen (FIRST_IMAGE) ausgegeben werden:

Code:
 {SHORT_FIRST_IMAGE_1}
  {LONG_FIRST_IMAGE_1}

Der Prefix SHORT spricht dabei nur Bilder an, die aus dem Shorttext extrahiert wurden, der PREFIX LONG die aus dem Longtext. Sind mehrere Bilder enthalten, kann man über {SHORT_FIRST_IMAGE_X} darauf zugreifen. Allerdings sollte dann der Name des Platzhalters nicht FIRST_IMAGE sondern besser MY_IMAGE oder so heissen wink

Sind keine Bilder vorhanden, bleiben die Variablen leer und werden bei der Ausgabe des Templates entfernt.

cwsoft
« Last Edit: March 29, 2012, 06:00:18 PM by cwsoft » Logged
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #11 on: March 30, 2012, 10:44:01 AM »

Funktioniert. Smiley

Wäre nur die Frage, wie man es hinkriegt, daß, wenn in SHORT kein Bild vorhanden ist, als Fallback LONG verwendet wird?
Logged

Alle großen Veränderungen beginnen im Kleinen
cwsoft

Offline Offline

Posts: 407


« Reply #12 on: March 30, 2012, 06:09:51 PM »

Hi,

Quote
Wäre nur die Frage, wie man es hinkriegt, daß, wenn in SHORT kein Bild vorhanden ist, als Fallback LONG verwendet wird?
Wenn man sicherstellen kann, dass es nur ein Bild im Shorttext ODER im Langtext gibt, einfach beide Platzhalter verwenden, der nicht belegte fliegt dann raus. Optional per CSS das zweite Bild innerhalb eines Divs ausblenden, oder beide Bilder per CSS ausblenden und das gewünschte dann mittels jQuery einblenden ... Denke aber die erste Variante sollte die meisten Usecases abdecken.

Diese Funktion gibt es übrigens seit Anynews 1.1.0, welche am 31. März 2009 veröffentlicht wurde. Feiert also morgen seinen dritten Geburtstag  grin Die Beschreibung dazu findet man im Abschnitt Anynews Parameter der README

@blackbird: Denke ich kann Deinen Pullrequest auf GitHub damit schließen oder?

cwsoft
« Last Edit: March 31, 2012, 06:28:24 AM by cwsoft » Logged
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #13 on: April 02, 2012, 08:05:35 AM »

Jo.

Vermutlich hat's keiner genutzt, weil die Beschreibung zu unklar ist. Wink Ich hab sie ja auch nicht begriffen.
Logged

Alle großen Veränderungen beginnen im Kleinen
cwsoft

Offline Offline

Posts: 407


« Reply #14 on: April 02, 2012, 10:07:36 AM »

Hi,

ich denke eher das das vom User angefragte Feature nicht allzu häufig benötigt wird. Das gleiche gilt für die Option custom_placeholder. Kenne zumindest nicht allzuviele Forenpost die sich damit beschäftigen  wink

Die Beschreibung auf Github wurde mit v2.0.0 aber geändert, schaun wir mal ... Werde dann den Pullrequest schliessen.

Quote
$custom_placeholder: create own placeholders for usage in template files
Example: $custom_placeholder = array('MY_IMG' => '%img%', 'MY_TAG' => '%author%', 'MY_REGEX' => '#(test)#i')

Stores all image URLs, all text inside <author></author> tags and all matches of "test" in placeholders: {PREFIX_MY_IMG_#}, {PREFIX_MY_TAG_#}, {PREFIX_MY_REGEX_#}, where PREFIX is either "SHORT" or "LONG", depending if the match was found in the short/long news text and # is a number between 1 and the number of matches found

Gruss
Logged
BlackBird

Offline Offline

Posts: 2653



WWW
« Reply #15 on: April 02, 2012, 10:19:03 AM »

Naja, hier gab es schon mehrere zu diesem Thema. Vielleicht nimmst Du einfach mal ein konkrete(re)s Beispiel in die Doku auf.

Quote
Example: You wish to show the first image of CONTENT_SHORT in your news block

Use

$custom_placeholder = array( 'MY_IMG', '%img%' );

in your AnyNews call and

{SHORT_MY_IMG_1}

as placeholder in your output template.
Logged

Alle großen Veränderungen beginnen im Kleinen
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!