Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 23
Seite [1] 2 >
tobimo


King for a day




Beiträge: 253
# Thema - 04.07.2010 um 22:12 Uhr
Hallo zusammen,

wie erweitere ich die articles/navlist(.php/.tpl) um den Articles-Text?


Also ich habe ja die articles/navlist.tpl, dort füge ich dann den Platzhalter ein:
{articles:articles_text} (so steht er in der view.tpl). Nun muss ich ja, damit der Platzhalter ersetzt wird, die "Funktion" in der navlist.php einfügen.

Das schaffe ich aber irgendwie nicht... Könnte mir dazu jemand den Code, den ich in der navlist.php einfügen muss, basteln?

Wäre echt super...


Zuletzt editiert von tobimo am 04.07.2010 um 22:12 Uhr (1x Editiert)
Inaktiv
SCHIRI ClanSphere Team


Weltmeister



Herkunft: Hamburg
Beiträge: 5299
# Antwort: 1 - 04.07.2010 um 22:28 Uhr
in Zeile 12 in der navlist.php musst du nach dem dort hoffentlich schon zu erkennenden Schema (eine per Komma getrennte List) noch hinzufügen, dass auch der Text aus der DB gelesen werden soll, dafür das hier nach dem vorhanden Schema in die Zeile einfügen:
 
1.
1. / 2. / ... 
 ar.articles_text AS articles_text,


Dann noch zwischen zeile 28 und 29 das hier einfügen:
 
1.
1. / 2. / ... 
 $data['articles'][$run]['articles_text'] = cs_secure($articles['articles_text']);


------------------
www.laszlokorte.de

Zuletzt editiert von SCHIRI ClanSphere Team am 04.07.2010 um 22:28 Uhr (1x Editiert)
Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 2 - 04.07.2010 um 22:50 Uhr
Alles klar! Danke! Das klappt schonmal!

Wie mache ich das ganze mit Autor?

Ich habe es so probiert, klappt aber nicht...
mehr... +-
usr.users_nick AS users_nick
in Zeile 12 ?
$data['articles'][$run]['users_nick'] = cs_secure($articles['users_nick']);
vor $run++;
und
{articles:users_nick} als Platzhalter?




Zuletzt editiert von tobimo am 04.07.2010 um 23:01 Uhr (3x Editiert)
Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 3 - 05.07.2010 um 02:04 Uhr
ist schonmal gut, hauptfehler ist allerdings, dass der usernick in einer anderen tabelle (der user-tabelle) gespeichert wird und deshalb diese tabelle zusätzlich auch noch geladen werden muss.
deshalb bei $tables noch hinzufügen:
INNER JOIN {pre}_users usr ON usr.users_id = ar.users_id


ansonsten sollte man aber eigentlich immer die cs_user funktion verwenden um benutzer anzuzeigen, da das berücksichtigt, ob ein benutzer gelöscht oder deaktiviert wurde, ob irgendwelche zusatztags angezeigt werden müssen (wie hier auf der webseite das "C" bei clansphere mitgliedern zum beispiel) und so weiter. dafür müsstest du noch 2-3 spalten zusätzlich selecten (wie users_delete und users_active) und dann den aufruf machen wie an anderen stellen.


Inaktiv
|
RaPiD


Geekboy




Beiträge: 1192
# Antwort: 4 - 05.07.2010 um 12:37 Uhr
Hi danke für die Erweiterung an beiden, find das super kann ich gut gebrauchen was ich noch fragen wollte wie ist das wenn ich in der navlist.tpl ansicht auch das "Artikel Bild" zum jeweiligen Artikel haben möchte.

Die größe vom Bild kann man ja anpassen durch die tpl wenn nicht geht auch direkt im php code ja auch.

Wäre super von euch...


Zuletzt editiert von RaPiD am 05.07.2010 um 12:38 Uhr (1x Editiert)
Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 5 - 05.07.2010 um 18:13 Uhr
@ duRiel: danke! werde ich ausprobieren wenn ich zuhause bin!
@ RaPiD: ja, das interessiert mich auch sofern du das Kategorie-Bild meinst!


Inaktiv
|
RaPiD


Geekboy




Beiträge: 1192
# Antwort: 6 - 05.07.2010 um 18:18 Uhr
Das Kategorie bild nicht eher nur das Bild das man dem jeweiligen Artikel wo man erstellt hochlädt, und dies dann in der Navliste anzeigen lassen kann und daneben dann diese Text funktion mit zeichensatz zähler z.b. figures='38' bis zu '...'


Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 7 - 05.07.2010 um 22:02 Uhr
Das mit dem Autor klappt! Vielen Dank!

Ich habe mich an dem Kategorie-Bild probiert, und es mit sehr viel Hilfe & Unterstützung von SCHIRI geschafft! An dieser Stelle nochmal vielen vielen Dank!
für das Kategorie-Bild:
in navlist.php - $select:
cat.categories_picture AS categories_picture

in navlist.php - $tables:
INNER JOIN {pre}_categories cat ON ar.categories_id = cat.categories_id (davor kommt $tables = 'articles ar )

in navlist.php - in die foreach-schleife:
$data['articles'][$run]['if']['catimg' ] = empty($articles['categories_picture']) ? false : true;
$data['articles'][$run]['url_catimg'] = empty($data['articles'][$run]['if']['catimg']) ? '' : 'uploads/categories/'.$articles['categories_picture'];

als Platzhalter in der .tpl:
{if:catimg}<img src="{articles:url_catimg}" alt="" />{stop:catimg}


Zuletzt editiert von tobimo am 06.07.2010 um 23:16 Uhr (10x Editiert)
Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 8 - 08.07.2010 um 22:10 Uhr
Das klappt soweit!
Habe mir jetzt eine Art "Top Article" zusammengesetzt.

Die bisherigen Änderungen habe ich in der navlist.tpl/php eingetragen, und auf dem Server laufen diese einwandfrei.

Wenn ich die Dateien navlist.tpl/php nun umbenenne (z.B.) in navtoparticle.tpl/php, dann wird mir nur noch Titel und Datum angezeigt. Die Platzhalter {if:catimg}{stop:catimg}, sowie {articles:articles_text} und {articles:users_nick} werden nicht mehr ausgelesen.

Woran liegt das?


Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 9 - 08.07.2010 um 22:13 Uhr
Am ende der .php datei, musst du den namen der zubenutzenden .tpl ändern.

 
1.
1. / 2. / ... 
 echo cs_subtemplate(__FILE__,$data,'article','navtoparticle');


Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 10 - 08.07.2010 um 22:24 Uhr
echo cs_subtemplate(__FILE__,$data,'articles','navtoparticle');

.. sorry, habe ich vergessen. Genau das habe ich schon gemacht (hat hajo mir gesagt)


Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 11 - 08.07.2010 um 22:30 Uhr
Haste mal den cache gelöscht?

Hört sich halt dannach an, das er noch die normale navlist anzeigt.


Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 12 - 08.07.2010 um 22:38 Uhr
Ja, ändert nichts.

Kann eigentlich nicht sein, da in der normalen Navlist ja alles einwandfrei geklappt hat! Also der zeigt mir schon die navtoparticle an, aber die Platzhalter werden halt nicht mehr ersetzt.


Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 13 - 08.07.2010 um 22:39 Uhr
poste mal den code der veränderten .php


Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 14 - 08.07.2010 um 22:42 Uhr
// EDIT! Ich habe aus Versehen den originalen navlist.php Code gepostet.

Hier ist meiner (der richtige)
<?php
// ClanSphere 2010 - www.clansphere.net
// $Id$

$cs_lang = cs_translate('articles');
$cs_option = cs_sql_option(__FILE__,'articles');
$data = array();

//cut headline after...
$figures = 15;

$select = 'ar.articles_id AS articles_id, ar.articles_headline AS articles_headline, ar.articles_text AS articles_text, ar.articles_time AS articles_time, usr.users_nick AS users_nick, cat.categories_picture AS categories_picture';
$check = 'ar.articles_navlist > \'0\' AND cat.categories_access
<= \'' . $account['access_articles'] . '\'';
$order = 'ar.articles_time DESC';
$tables = 'articles ar INNER JOIN {pre}_users usr ON usr.users_id = ar.users_id INNER JOIN {pre}_categories cat ON ar.categories_id = cat.categories_id';
$cs_articles = cs_sql_select(__FILE__,$tables,$select,$check,'ar.articles_time DESC',0,$cs_option['max_navlist']);

if(empty($cs_articles)) {
echo $cs_lang['no_data'];
}
else {
if($cs_option['max_navlist'] == 1)
$cs_articles = array(0 => $cs_articles);

$run = 0;
foreach ($cs_articles AS $articles) {
$data['articles'][$run]['articles_time'] = cs_date('unix',$articles['articles_time'],1,1,0);
$short = strlen($articles['articles_headline']) <= $figures ? $articles['articles_headline'] : substr($articles['articles_headline'],0,$figures) . '...';
$data['articles'][$run]['articles_url'] = cs_url('articles','view','id=' . $articles['articles_id']);
$data['articles'][$run]['articles_short'] = cs_secure($short);
$data['articles'][$run]['articles_headline'] = cs_secure($articles['articles_headline']);
$data['articles'][$run]['articles_text'] = cs_secure($articles['articles_text']);
$data['articles'][$run]['users_nick'] = cs_secure($articles['users_nick']);
$data['articles'][$run]['if']['catimg'] = empty($articles['categories_picture']) ? false : true;
$data['articles'][$run]['url_catimg'] = empty($data['articles'][$run]['if']['catimg']) ? '' : 'uploads/categories/'.$articles['categories_picture'];

$run++;
}
echo cs_subtemplate(__FILE__,$data,'articles','navlist');
}


Zuletzt editiert von tobimo am 11.07.2010 um 13:44 Uhr (2x Editiert)
Inaktiv
|
sgraewe ClanSphere Team

Supporter
Supporter




Beiträge: 6116
# Antwort: 15 - 11.07.2010 um 15:24 Uhr
Hm wenn das nun der richtige ist, dann ist da doch der Fehler, dass das falsche Subtemplate angesprochen wird.

 
1.
1. / 2. / ... 
 echo cs_subtemplate(__FILE__,$data,'articles','navlist');


ändern in:
 
1.
1. / 2. / ... 
 echo cs_subtemplate(__FILE__,$data,'article','navtoparticle');



Inaktiv
|
tobimo
Thread-Ersteller


King for a day




Beiträge: 253
# Antwort: 16 - 12.07.2010 um 12:56 Uhr
Ja, schuldigung ich hatte wieder den falschen Code gepostet.
Den Code hatte ich auch vorher! Vielen Dank equaL!

Der Code klappt allerdings nur wegen dem letzten Changeset, der diese zwei Zeilen noch hinzufügt:
if($cs_option['max_navlist'] == 1)
$cs_articles = array(0 => $cs_articles);


... eine Erklärung dafür habe ich nicht! Ohne diese zwei Zeilen klappt es nämlich wieder nicht. (?)

(Auch wenn ich unter System > Optionen die Navlist auf 2 begrenze, klappt es.)


Zuletzt editiert von tobimo am 12.07.2010 um 13:10 Uhr (4x Editiert)
Inaktiv
|
Joix


King for a day



Herkunft: Frankenthal
Beiträge: 204
# Antwort: 17 - 28.07.2010 um 00:32 Uhr
Hallo,

ich in etwas das gleiche mit der News Navlist gemacht. Allerdings heut der mir die ganze News (den Text) rein. Wie kann ich den Text auf etwa 200 Zeichen begrenzen ?


Inaktiv
|
Tom08 ClanSphere Team

Supporter
Supporter



Herkunft: Daheim
Beiträge: 2923
# Antwort: 18 - 28.07.2010 um 12:09 Uhr
Genauso, wie du auch den News-Titel begrenzen kannst:

 
1.
2.
1. / 2. / ... 
 $short strlen($news['news_headline']) <= 15 $news['news_headline'] : substr($news['news_headline'],0,15) . '...';
$data['news'][$run]['news_short'] = cs_secure($short);


So kannst du das auch mit dem Text machen:
 
1.
2.
1. / 2. / ... 
 $short_text strlen($news['news_text']) <= 200 $news['news_text'] : substr($news['news_text'],0,197) . '...';
$data['news'][$run]['news_text'] = cs_secure($short_text);


Wobei hier das Problem ist, dass u.U. Tags nicht geschlossen werden (sofern du den CKeditor verwendest).

lG



------------------
Bei Problemen mit Code von mir bitte eine Private Nachricht an mich


Inaktiv
|
Joix


King for a day



Herkunft: Frankenthal
Beiträge: 204
# Antwort: 19 - 28.07.2010 um 15:35 Uhr
Super, danke. Hat wunderbar geklappt


Inaktiv
|
Joix


King for a day



Herkunft: Frankenthal
Beiträge: 204
# Antwort: 20 - 05.08.2010 um 02:32 Uhr
Hallo,
jetzt wollte ich bei den artikel das gleich wie bei den news machen, aber es klappt nicht.

also auf 200 zeichen begrenzen ....


$select = 'ar.artikel_id AS artikel_id, ar.artikel_headline AS artikel_headline, ar.artikel_text AS artikel_text, ar.artikel_time AS artikel_time';
$check = 'ar.artikel_navlist > \'0\' AND cat.categories_access <= \'' . $account['access_artikel'] . '\'';
$order = 'ar.artikel_time DESC';
$tables = 'artikel ar INNER JOIN {pre}_categories cat ON ar.categories_id = cat.categories_id';
$cs_artikel = cs_sql_select(__FILE__,$tables,$select,$check,'ar.artikel_time DESC',0,3);

if(empty($cs_artikel)) {
echo $cs_lang['no_data'];
}
else {
$run = 0;
foreach ($cs_artikel AS $artikel) {
$data['artikel'][$run]['artikel_time'] = cs_date('unix',$artikel['artikel_time'],1,1,0);
$short = strlen($artikel['artikel_headline']) <= $figures ? $artikel['artikel_headline'] : substr($artikel['artikel_headline'],0,$figures) . '...';
$short = strlen($artikel['artikel_text']) <= 200 ? $artikel['artikel_text'] : substr($artikel['artikel_text'],0,200) . '...';
$data['artikel'][$run]['artikel_url'] = cs_url('artikel','view','id=' . $artikel['artikel_id']);
$data['artikel'][$run]['artikel_short'] = cs_secure($short);
$data['artikel'][$run]['artikel_headline'] = cs_secure($artikel['artikel_headline']);
$data['artikel'][$run]['artikel_text'] = cs_secure($artikel['artikel_text']);
$run++;
}
echo cs_subtemplate(__FILE__,$data,'artikel','navlist');}


Wo liegt der Fehler ?

Danke
Joi


Inaktiv
|
Antworten: 23
Seite [1] 2 >


Sie müssen sich registrieren, um zu antworten.