Antworten: 29
|
|||||||
Mel0ne Wannabe poster Beiträge: 24 |
# Thema - 30.01.2012 um 11:18 Uhr
Hi, ich hab das ganze gestern im Entwicklertreff gepostet, nun ist mir aaber aufgefallen das es hier besser reinpasst. Also, ich bin gerade beim erstellen der 3ten Version unserer Vereinsseite, da wir extrem viel redaktionelle Arbeit machen, unter anderem auch einen Bereich für Gaming News haben, würde ein Tag-System das auch in die Suchfunktion eingebunden ist uns sehr weiterhelfen. Leider reichen meine php Kentnisse nicht ganz aus um so etwas selbst zum machen, daher hoffe ich das ich hier ein bisschen Unterstützung dabei bekomme. Also um das System kurz zu erläutern: Jeder Newseintrag braucht ein weiteres Datenbankfeld in dem einzelne Begriffe (Tags) eingetragen werden (Trennung dieser Begriffe vielleicht über Kommas?) Diese Tags ersetzten praktisch die Kategorien Über einen Klick auf den Tag (in der news/view) sollen dann alle News mit dem Tag aufgelistet werden Auch in der Suche sollen Tags mit einbezogen werden Datenbankfeld anlegen sowie das eintragen und auslesen in der create, edit und view.php stellen keine Probleme da. Mein Problem liegt an der Funktion ein Datenbankfeld mit mehreren Wörtern durch eine "Sonderzeichen" (z. B. Kommas) zu Trennen. Das anzeigen der News (in list oder recent) nach Tags bereitet mir auch Probleme. Es wäre spitze wenn ihr einen Ansatz für dieses Vorhaben für mich habt. Danke für eure Hilfe schonmal im vorraus. LG, Tobi |
||||||
Inaktiv |
|
||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 1 - 30.01.2012 um 11:36 Uhr
Tags schreiben bei News in einem input: test, test 3,test 4 nachher: explode(",",$array); und zum Suchen: SQL: news_tags LIKE "peter"; Als Ansatz, das sind alles Befehle die dir helfen sollte. Bin leider auch grade Unterwegs, sieh das daher erst als Denkanstoß :p |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 2 - 30.01.2012 um 12:27 Uhr
okay, das sql feld funktioniert und die Tags lassen sich per create und edit eintragen, jetzt hab ich in der view die Ausgabe genau so wie die headline ausgegeben wird, jetzt muss ich da nur irgendwie den explode reinsetzten, aber wie? |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 3 - 30.01.2012 um 13:50 Uhr
Naja, du hast ein String und explode macht ihn mit dem Limiter "," zu einem Array. Somit kannst du dann mit CS eine LOOP Erstellen welche die einzelnen Tags mit Formatierung XY ausgibt. |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 4 - 30.01.2012 um 23:12 Uhr
Ich hab leider viel zu wenig Syntax Kenntnisse um das hinzubekommen, kannst du mir mal ein Beispiel anhand der news_headline geben? |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 5 - 31.01.2012 um 00:06 Uhr
Wie man aus einem String mehrere Elemente macht? Klar, schreibe ich eben nen Beispiel aus'm Kopf:
und schon könntest du mit
im Template eine Liste der Tags ausgeben, welche mit einem Komma getrennt in einem String gespeichert sind. news_tags ist ein eigenes Feld, welches du angelegt hast. D.h. z.B. "gaming, headset, hardware" dann würde in der Liste erscheinen
Hoffe das hilft dir was weiter, sonst frag gerne einfach nach! Gruß. |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 6 - 01.02.2012 um 22:59 Uhr
Leider funktioniert es noch nicht ganz, einen Schreibfehler habe ich entdeckt. Im ersten Feld Zeile 5 müsste es tags_count anstelle von tagscount heißen (ist das logisch richtig?). Da mein Datenbankfeld "news_tag" hab ich da in Zeile 2 ein "s" weggenommen. Er gibt mir auf der Seite nach diesen Änderungen einfach nur das ul Element und nur ein li Element ohne Inhalt aus (obwohl es 3 Elemente sein müssen da in der DB auch 3 Elemente mit Komma getrennt sind. Ist es irgendwie wichtig wo genau der code in der view.php steht? Vielen Dank schonmal für deine Hilfe Zuletzt editiert von Mel0ne am 01.02.2012 um 23:00 Uhr (1x Editiert) |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 7 - 02.02.2012 um 00:29 Uhr
Mal mit die(print_r($tags)); überprüft, ob das Array was durch's Explode erstellt wurde, gefüllt ist? |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 8 - 02.02.2012 um 00:38 Uhr
News - Details Informationen zur ausgewählten Nachricht. Array ( [0] => ) 1 |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 9 - 02.02.2012 um 00:48 Uhr
dannnnn muss ich dir sagen, machst du nicht alles richtig Kopier mal die ganze view.php hier rein. in einem [ PHP ] tag |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 10 - 02.02.2012 um 00:50 Uhr
In der tpl steht folgendes:
Zuletzt editiert von Mel0ne am 02.02.2012 um 00:52 Uhr (1x Editiert) |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 11 - 02.02.2012 um 00:52 Uhr
Überprüft in der DB obs gefüllt ist? |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 12 - 02.02.2012 um 00:57 Uhr
|
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 13 - 02.02.2012 um 01:08 Uhr
Ham. Nun bin ich verwirrt. Mach mal die($news['news_tag']); |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 14 - 02.02.2012 um 01:13 Uhr
Jetzt hast du mich verwirrt, was soll ich machen? Edit: jetzt hab ich verstanden, der Artikel "die" hat mich irritiert Edit2: da kommt nur das raus: News - Details Informationen zur ausgewählten Nachricht. hab das andere die rausgenommen Zuletzt editiert von Mel0ne am 02.02.2012 um 01:18 Uhr (2x Editiert) |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 15 - 02.02.2012 um 01:21 Uhr
Dann zieht er die news_tag nicht aus der DB korrekt, hast du den Query mal überprüft? Alternativ, die(print_r($cs_news)); Zuletzt editiert von Schalla am 02.02.2012 um 01:21 Uhr (1x Editiert) |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 16 - 02.02.2012 um 01:25 Uhr
Doch, wenn ich folgendes mache dann gibt er mir die news_tag aus (natürlich ohne die "Komma-Trenn-Funktion"^^ (Zeile 36 )
Zuletzt editiert von Mel0ne am 02.02.2012 um 01:25 Uhr (1x Editiert) |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 17 - 02.02.2012 um 01:30 Uhr
$tags=explode(",",$cs_news['news_tag']); die(print_r($tags)); |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 18 - 02.02.2012 um 01:32 Uhr
News - Details Informationen zur ausgewählten Nachricht. Array ( [0] => tag1 [1] => tag2 [2] => tag3 [3] => tag4 ) 1 Das sieht doch nach was aus, wie mach ich jetzt weiter? |
||||||
Inaktiv |
|||||||
Deaktiviert Supporter Beiträge: 1287 |
# Antwort: 19 - 02.02.2012 um 01:35 Uhr
Funkt das dann Final? |
||||||
Inaktiv |
|||||||
Mel0ne Thread-Ersteller Wannabe poster Beiträge: 24 |
# Antwort: 20 - 02.02.2012 um 01:39 Uhr
Mit noch einer kleinen Änderung:
funktioniert es!!! Vielen Vielen Dank! |
||||||
Inaktiv |
|||||||
Antworten: 29
|
Sie müssen sich registrieren, um zu antworten. |