Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

printf stellt variable nach vorne

Diskussion: printf stellt variable nach vorne im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Edit: Lösung gefunden, siehe #9 PHP-Code: <?php printf ( 'Von %s' ,  the_author_posts_link ());  ?> Zitat: Hans MüllerVon Was mach ich ...

Antwort
Alt 29.06.11, 18:31   #1 (permalink)
 
Registriert seit: 04.01.05
Sunrize Leistung: Facit NTK
Likes: 0
Standard printf stellt variable nach vorne

Anzeige

Edit: Lösung gefunden, siehe #9

PHP-Code:
<?php printf('Von %s'the_author_posts_link()); ?>
Zitat:
Hans MüllerVon
Was mach ich falsch? Code aus meinem Wordpress Theme.

Geändert von Sunrize (30.06.11 um 12:18 Uhr)
Sunrize ist offline   Mit Zitat antworten
Alt 29.06.11, 18:37   #2 (permalink)
 
Registriert seit: 12.08.10
mime Leistung: Pentium Imime Leistung: Pentium I
Likes: 30
Standard

Zitat:
Zitat von Sunrize Beitrag anzeigen
PHP-Code:
<?php printf('Von %s'the_author_posts_link()); ?>
Was mach ich falsch? Code aus meinem Wordpress Theme.
Was passiert in der Funktion "the_author_posts_link()"? Ich würde behaupten, du machst dort einfach ein "echo $name". Das würde erklären warum es zu diesem Verhalten kommt. Ersetze "echo" durch "return", dann sollte es gehen.

HTH

Micha
__________________
http://www.openvas.org
mime ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 29.06.11, 19:13   #3 (permalink)
Themenstarter
 
Registriert seit: 04.01.05
Sunrize Leistung: Facit NTK
Likes: 0
Standard

Danke mime, das ist die Lösung.
Allerdings kann ich the_author_posts_link()nicht ändern. Diese Funktion ist von Wordpress vorgegeben. Hab das gleiche Problem an gefühlten 100 anderen Stellen. Eigentlich braucht man printf auch gar nicht, ausser man will ein Theme internationalisieren (Mehrsprachig machen). Und genaus das mach ich gerade. Irgendwie wurde in den Tutorials die Problematik gar nicht angesprochen. Ich geh nochmals nachlesen.
Sunrize ist offline   Mit Zitat antworten
Alt 29.06.11, 19:29   #4 (permalink)
 
Registriert seit: 12.08.10
mime Leistung: Pentium Imime Leistung: Pentium I
Likes: 30
Standard

Zitat:
Zitat von Sunrize Beitrag anzeigen
Eigentlich braucht man printf auch gar nicht, ausser man will ein Theme internationalisieren (Mehrsprachig machen). Und genaus das mach ich gerade.
Und wozu braucht es da zwingend ein printf?

Micha
__________________
http://www.openvas.org
mime ist offline   Mit Zitat antworten
Alt 29.06.11, 19:52   #5 (permalink)
 
Benutzerbild von fabuloes
 
Registriert seit: 26.01.11
fabuloes Leistung: Z3
Likes: 9
Standard

Bin zwar kein PHP-Ninja aber tuts da dann nicht auch ein



echo "Von ";
the_author_posts_link();
echo "\n";

Oder hab ich da was falsch verstanden?


__________________
http://sourceforge.net/projects/my-connect/
fabuloes ist offline   Mit Zitat antworten
Alt 30.06.11, 00:08   #6 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

die Lösung von meinem Vorposter ist wohl das einzige, was wirklich funktioniert...

Über die Tatsache, dass Wordpress in seinen Funktionen alles gleich raus echo't, hab ich mich bei uns @work auch schon paar mal aufgeregt... echt kein tolles Arbeiten mit Wordpress... keine Ahnung, was sich die Entwickler dabei gedacht haben...

Wenn ich mir den Code von Wordpress anschaue, frage ich mich sowieso, wie dieses Stück Software so populär werden konnte... an der Code-Ästhetik kann es wohl nicht gelegen haben...
beavisbee ist gerade online   Mit Zitat antworten
Alt 30.06.11, 00:22   #7 (permalink)
 
Registriert seit: 17.01.06
Oi!Alex Leistung: 8086
Likes: 7
Standard

PHP-Code:
ob_start();
the_author_posts_link()
$the_author_posts_link ob_get_contents();
ob_end_clean();

printf('Von %s'$the_author_posts_link); 
(ungetest)
Oi!Alex ist offline   Mit Zitat antworten
Alt 30.06.11, 08:41   #8 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

@Oi!Alex: Wenn du nach
PHP-Code:
the_author_posts_link() 
noch ein Semikolon setzt, ist das natürlich auch noch ne funktionierende Variante...

wobei es halt schon ein wenig nervig ist, ständig den Output-Buffer bemühen zu müssen... daher ist (meiner Meinung nach) eine Ausgabe mit echo schon angenehmer und schöner zu lesen...

Aber ich hatte auch schon Fälle gehabt, wo ich eigentlich den Inhalt von dem, was eine Wordpress-Funktion ausgibt, auswerten musste, um dementsprechend irgendwas anzuzeigen - da kam ich auch nicht um die ob_*-Funktionen drum herum...

Wer vielleicht nichts anderes gewohnt ist und jahrelang an Wordpress rumbastelt, für den ist das selbstverständlich, wie das dort alles geht... aber für mich als OOP-liebenden Menschen, der gerne Funktionalität und Ausgabe strikt trennt, ist Wordpress echt... nennen wir es "unschön designed"

Normalerweise bin ich ja bei vielen kleineren Problemen der Meinung "bevor ich ein passendes Plugin gefunden habe, habe ich es auch selbst neu gecodet" - bei Wordpress dagegen bin ich immer froh, wenn's was fertiges gibt...
beavisbee ist gerade online   Mit Zitat antworten
Alt 30.06.11, 12:09   #9 (permalink)
Themenstarter
 
Registriert seit: 04.01.05
Sunrize Leistung: Facit NTK
Likes: 0
Standard

EDIT:
Ich hatte einfach dien normalen Funktionen übernommen aus einem Theme. Es gibt noch jeweils eine passende Funktion, die den Parameter einfach zurückliefert, anstatt ihn auszugeben. Problem erledigt.
/EDIT


Ich brauche printf leider, da ich den Code nur einmal schreiben will für alle Sprachen. Ich erweiter mal das obige Beispiel, damit klar wird warum ich das benötige.

zb.

PHP-Code:
printf(__('Author: %1$s %2$s''textdomain'), get_author_first(), get_author_last()); 
Wenn ich jetzt eine Übersetzung für Chinesisch mache, dann erstelle ich ein Language File in dem steht dann etwa:

Code:
original: Author: %1$s %2$s
translation: 作家: %2$s %1$s
Man sieht, ich bin auf so extras wie argument swapping angewiesen. Die Funktion __() lädt dynamisch die korrekten Inhalte für die gerade gewähte Sprache. Ausserdem will auf jeden Fall Language Files Nutzen, ich kann doch nciht für jede Übersetzung durch den kompletten Quelltext durchlesen.

Sorry für die Fragen, ich komme aus der Java Fraktion und das sind meine ersten Schritte wieder in php, seit über 5 Jahren. Wahrscheinlich gibts da was elegantes, ich habs nur noch nicht gefunden. Ich schau mir nochmal auf der entwicklerseite zu wordpress um, kann ja nicht sein, dass ich der erste Mensch mit dem Problem bin.

Geändert von Sunrize (30.06.11 um 12:18 Uhr)
Sunrize ist offline   Mit Zitat antworten
Alt 01.07.11, 15:44   #10 (permalink)
Senior Member
 
Registriert seit: 13.07.08
enkore Leistung: K 6-3enkore Leistung: K 6-3enkore Leistung: K 6-3
Likes: 85
Standard

Bei Drupal gibt keine Fuktion einfach was aus; das mus man selber machen. Wordpress ist eh irgendwie ein wenig merkwürdig vom Code her
__________________
"It is the human race! The deterioration of the spirit of man. Man undermining himself, causing a self-willed, self-imposed, self-evident self-destruction."
+++ BREAKING +++ Troll ertrinkt im Planschbecken +++
enkore ist gerade online   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » printf stellt variable nach vorne
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61