Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 18
Seite [1]
Rouven89


Going for pro




Beiträge: 539
# Thema - 29.07.2011 um 12:32 Uhr
hey jungs… ich habe meine news navlisthome.php um folgendes erweitert:
 
1.
2.
3.
1. / 2. / ... 
       
$data
['news'][$run]['class'] = $data['news'][$run]['news_time'] > cs_time() ? 'newsnew' 'termine_bg';   


ich will folgendes damit erreichen erreichen, dass die neuen nachrichten einen anderen hintergrund haben als die anderen… läuft auch soweit - nur ich muss cs_time() irgendwie manipulieren bzw was anderes dafür einsetzen, weil ich den background von der neuen news nur 2 tage anzeigen lassen will… wenn dann die zeit "abgelaufen " ist soll wieder der andere background angezeigt werden…

bsp:
ich trage eine news am 23.07.2011 - 10:00 Uhr … dann soll bis zum 25.07.2011 - 10:00 Uhr der background newsnew angezeigt werden und danach wieder der standard background termine_bg..

nur wie kann ich das machen? ich kann ja nicht einfach sagen news_time + 2


kann mir da jemand helfen - bitte


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Yeee am 29.07.2011 um 15:16 Uhr (1x Editiert)
Inaktiv
cbw.lava


Rock the board





Beiträge: 63
# Antwort: 1 - 29.07.2011 um 15:16 Uhr
nur wie kann ich das machen? ich kann ja nicht einfach sagen news_time + 2

Vom Ansatz her schon richtig
news_time und cs_time() zählen ja in Sekunden. Also bei cs_time() die entsprechende Anzahl Sekunden subtrahieren (oder bei news_time addieren, kommt aufs selbe raus).


Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 2 - 29.07.2011 um 15:30 Uhr
danke schon einmal
wie genau subtrahiert man denn von cs_time() ?

so:
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > (cs_time()- 172800) ? 'newsnew' : 'termine_bg';

funktioniert es nämlich nicht.. und im internet finde ich auch nichts dazu.. da cs_time() von clansphere ne funktion ist?

mfg

edit: so siehts bis jetzt aus:
 
1.
2.
3.
4.
5.
6.
7.
1. / 2. / ... 
 
$now 
cs_time();
$sub 172800;
$dif $now $sub;

 
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg';   


funktioniert aber leider noch nicht


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Yeee am 29.07.2011 um 15:43 Uhr (1x Editiert)
Inaktiv
|
cbw.lava


Rock the board





Beiträge: 63
# Antwort: 3 - 29.07.2011 um 15:39 Uhr
Ah warte... wo steht bei dir die obige Zeile? Sie muss nämlich in der loop VOR die folgende Zeile:
 
1.
1. / 2. / ... 
 $cs_news[$run]['news_time'] = cs_date('unix'$cs_news[$run]['news_time'], 1);

Sonst funktioniert es nicht (hier werden die Sekunden in eine Datumsangabe umgewandelt).


Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 4 - 29.07.2011 um 15:49 Uhr
äh ja steht eig vor dem code.. hier mal der ganze - vlt sieht man so den fehler:
code... +-
 
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.
1. / 2. / ... 

<?php
// ClanSphere 2010 - www.clansphere.net
// $Id$

$cs_lang cs_translate('news');
$cs_get cs_get('catid');
$cs_option cs_sql_option(__FILE__,'news');
$data = array();

$tables 'news ne INNER JOIN {pre}_categories cat ON ne.categories_id = cat.categories_id';
$select 'ne.news_id AS news_id, ne.news_headline AS news_headline, ne.news_time AS news_time,ne.categories_id AS categories_id,cat.categories_name AS categories_name';
$public 'ne.news_public > \'0\' AND cat.categories_access <= \'' $account['access_news'] . '\'';
if(!empty(
$cs_get['catid'])) {
  
$public .= ' AND cat.categories_id = ' $cs_get['catid'];
}
$now cs_time();
$sub 172800;
$dif $now $sub;

$order 'ne.news_time DESC';
$cs_news cs_sql_select(__FILE__,$tables,$select,$public,$order,0,$cs_option['max_navlist']);

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

  
$run 0;
  foreach (
$cs_news AS $news) { 
      
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg';   
    
$data['news'][$run]['news_time'] = cs_date('unix',$news['news_time'],1,1,0);
    
$short strlen($news['news_headline']) <= $cs_option['max_headline'] ? $news['news_headline'] : cs_substr($news['news_headline'],0,$cs_option['max_headline']) . '...';
    
$data['news'][$run]['news_url'] = cs_url('news','view','id=' $news['news_id']);
    
$data['news'][$run]['news_short'] = cs_secure($short);
    
$data['news'][$run]['categories_name'] = cs_secure($cs_news[$run]['categories_name']);
    
$data['news'][$run]['news_headline'] = cs_secure($news['news_headline']);
    
$where3 "comments_mod = 'news' AND comments_fid = " $cs_news[$run]['news_id'];
    
$com cs_sql_count(__FILE__,'comments',"test",$where3);
    if((
$com) == 1){
        
$data['news'][$run]['comments'] = cs_sql_count(__FILE__,'comments',$where3);
        }else{
            
$data['news'][$run]['comments'] = cs_sql_count(__FILE__,'comments',$where3);
            }
        
    
$run++;
  }

  echo 
cs_subtemplate(__FILE__,$data,'news','navlisthome');
}



------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Drag0n


Just nerd




Beiträge: 941
# Antwort: 5 - 29.07.2011 um 16:11 Uhr
 
1.
2.
3.
4.
5.
1. / 2. / ... 
 $now cs_time();
$sub 172800;
$dif $now $sub;

$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg'


wenn du 2 tage dazu rechnen willst dann musst du ein + benutzen zu cs_time() dann werden zum aktuellen timestamp noch 172800 sekunden dazu gerechnet was 2 tage entspricht


------------------
MfG

Drag0n

ich gebe KEINEN ICQ oder MSN Support, es sei den ich schreibe euch an


Zuletzt editiert von Drag0n am 29.07.2011 um 16:21 Uhr (1x Editiert)
Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 6 - 29.07.2011 um 16:20 Uhr
tut sich ebenfalls nichts:/ ich habe vorhin ne testnachricht erstellt aber der background verändert sich nicht.. die classen sind soweit ok …habe ich auch vorsichtshalber noch einmal getestet

edit: wenn ich auf cs_time() eine zeit drauf addiere, dann erreiche ich die doch nie oder etwa doch? da cs_time() doch die aktuelle zeit ausgibt


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Yeee am 29.07.2011 um 16:22 Uhr (1x Editiert)
Inaktiv
|
Drag0n


Just nerd




Beiträge: 941
# Antwort: 7 - 29.07.2011 um 16:28 Uhr
edit hab dein ersten post nochmal durch gelesen du willst nicht von der aktuellen zeit ausgehen sondern von der zeit wann die news erstellt wurde

das wäre dann

 
1.
2.
3.
4.
5.
1. / 2. / ... 
 $now $data['news'][$run]['news_time'];
$sub 172800;
$dif $now $sub;

$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg'


------------------
MfG

Drag0n

ich gebe KEINEN ICQ oder MSN Support, es sei den ich schreibe euch an


Zuletzt editiert von Drag0n am 29.07.2011 um 16:34 Uhr (1x Editiert)
Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 8 - 29.07.2011 um 16:34 Uhr
hey.. ja steht da… bzw bei mir -2 tage da ich statt + - benutzt habe hier der link

ich habe minus genommen da ich ja sage das er solange die classe newsnew benutzen soll, solang er news_time größer ist als cs_time() - 2tage …und wenn dies nicht mehr der fall ist soll er die andere classe benutzen.. aber verstehe nicht wieso er mir das nicht anzeigt..


edit:
hey habe dein post nu erst gelesen - wenn ich das so eingebe - gibt er mir das aus:
Heute 01.01.1970 um 02:00 Uhr
Vor 2 Tagen 30.12.1969 um 02:00



so gibt er das richtige aus ..allerdings ändert es die classe noch nicht:
 
1.
2.
3.
4.
5.
6.
7.
1. / 2. / ... 
 
      $now 
$news['news_time'];
    
$sub 172800;
    
$dif $now $sub;
    echo 
'Heute ' cs_date('unix',$now,1,1) . '<br /> Vor 2 Tagen ' cs_date('unix',$dif,1,1);
      
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg'


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Yeee am 29.07.2011 um 16:45 Uhr (2x Editiert)
Inaktiv
|
Drag0n


Just nerd




Beiträge: 941
# Antwort: 9 - 29.07.2011 um 16:44 Uhr
wie gesagt mit

 
1.
2.
3.
4.
5.
1. / 2. / ... 
 $now $data['news'][$run]['news_time'];
$sub 172800;
$dif $now $sub;

$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg'


sollte es funktionieren

zudem funktioniert das so wie du es machen wolltest nicht da

$sub nur 172800 ist und da cs_time() sowieso größer ist als 172800

dann müsste dennoch mit + gearbeitet werden da $sub sonst nur 172800 ist

in diesem fall wäre $sub also

$sub = cs_time() + 172800;

$dif = $now - $sub;


------------------
MfG

Drag0n

ich gebe KEINEN ICQ oder MSN Support, es sei den ich schreibe euch an


Zuletzt editiert von Drag0n am 29.07.2011 um 16:46 Uhr (1x Editiert)
Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 10 - 29.07.2011 um 16:53 Uhr
hey ja…aber so gibt er mir schon einmal die richtigen tage aus:
 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 
 
      $now 
$news['news_time'];
    
$sub 172800;
    
$dif $now $sub;
      
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg'


aber das kann ja nicht richtig sein.. ich muss ja einmal die news_time mit der aktuellen zeit (cs_time()) vergleichen.. wenn ich das so mache wie oben… zieh ich ja jedes mal 2 tage davon ab.. dann wird die neu erzeugte zeit ja nie über news_time kommen… auch wenn ich das addieren würde ergibt das doch auch keinen sinn - oder stehe ich da gerade aufn schlauch? da ich wenn ich die news z.B. am 22.07.2011 - 10:00 Uhr erstellt habe.. rechnet er jedesmal beim aufruf 2 tage drauf und guckt dann ob news_time größer ist als $dif aber das wird ja nie der fall sein… deswegen müsste man ja news_time mit cs_time() -2tage vergleichen


edit:
so gibt er das richtige aus.. aber er will trotzdem noch nicht die classen wechseln.. komischerweise..:
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
1. / 2. / ... 
 
      $now 
=  $news['news_time'];
      
$new cs_time()-172800;
      
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $new 'newsnew' 'termine_bg';


//dient zur ueberpruefung
echo 'Heute ' cs_date('unix',$now,1,1) . '<br /> Vor 2 Tagen ' cs_date('unix',$new,1,1);



edit: es geht!! habs nun so gemacht:
 
1.
2.
3.
4.
5.
1. / 2. / ... 
 
      $newstime 
=  $news['news_time'];
      
$new cs_time()-172800;
      
$data['news'][$run]['class'] = $newstime$new 'newsnew' 'termine_bg'



------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Yeee am 29.07.2011 um 17:06 Uhr (2x Editiert)
Inaktiv
|
Drag0n


Just nerd




Beiträge: 941
# Antwort: 11 - 29.07.2011 um 17:14 Uhr
$data['news'][$run]['news_time'] gibt die zeit der news erstellung aus diese nimmst du nun und setzt die als $now

$now = $data['news'][$run]['news_time'];

so nun wollen wir das die zeit + 2 tage in einer anderen farbe angezeigt wird dazu erstellen wir $new

$new = $data['news'][$run]['news_time'] + 172800;

nun wollen wir ja noch die verschiedenen css classen benutzen das machen wir mit

$data['news'][$run]['class'] = $data['news'][$run]['news_time'] < $new ? 'newsnew' : 'termine_bg';

zusammengesetzt ergibt es nun

 
1.
2.
3.
4.
1. / 2. / ... 
 $now $data['news'][$run]['news_time'];
$new $data['news'][$run]['news_time'] + 172800;

$data['news'][$run]['class'] = $data['news'][$run]['news_time'] < $new 'newsnew' 'termine_bg';


------------------
MfG

Drag0n

ich gebe KEINEN ICQ oder MSN Support, es sei den ich schreibe euch an


Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 12 - 29.07.2011 um 18:12 Uhr
ja aber $now wird ja da gar nicht gebraucht.. und wenn ich das so mache wie du dann geh ich ja in die schleife rein.. und guck nach welcher termin und uhrzeit an z.B. position = 0 steht… dann nehme ich die zeit und rechne dort 2 tage drauf .. d.h im klartext das ich egal was kommt die news_time an position 0 nie größer werden kann als die neu erzeugte zeit… da du ja keinen gegenwert hast….also wird immer nur eine classe angezeigt... verstehste was ich meine?

hier:
 
1.
2.
3.
4.
5.
6.
7.
1. / 2. / ... 
 
      $newstime 
=  $news['news_time'];  //gibt die zeit aus an der die news erstellt wurrde
      
$new cs_time()-172800// gibt die aktulle zeit aus - 2 tage
      
$data['news'][$run]['class'] = $newstime$new 'newsnew' 'termine_bg'/* hier gucke ich ob die erstellte 
news innerhalb von 2 tagen ab jetzt erstellt wurde..
wenn ja dann wird classe newsnew aufgerufen wenn nicht dann termine_Bg*/


bei dir :
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
1. / 2. / ... 
 
$now 
$data['news'][$run]['news_time']; // gibt die zeit aus an der die news erstellt wurde
$new $data['news'][$run]['news_time'] + 172800// gibt die zeit aus an der die news erstellt wurde +2 tage

$data['news'][$run]['class'] = $data['news'][$run]['news_time'] < $new 'newsnew' 'termine_bg'/* hier
 guckst du ob die zeit an der du die news 
erstellt hast kleiner ist als die neue zeit..
 aber das ist ja immer der fall! da du ja immer 2 tage  auf die zeit 
wo die news erstellt worden ist draufrehnest - du hast ja so keinen 
gegenwert mit dem du das vergleichen kannst - bzw der in die andere richtung läuft*/




guck hier: hier werden die news in der navlist die vor weniger als 2 tagen erstellt worden sind mit einem anderen hintergrund angezeigt (mit einem kleinen new button) http://rouv3n.ro.funpic.de/scwiesens/home.php#?





------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Zuletzt editiert von Yeee am 29.07.2011 um 18:22 Uhr (5x Editiert)
Inaktiv
|
cbw.lava


Rock the board





Beiträge: 63
# Antwort: 13 - 29.07.2011 um 19:41 Uhr
29.07.2011 um 15:49 Uhr - Yeee:
äh ja steht eig vor dem code.. hier mal der ganze - vlt sieht man so den fehler:
code... +-
 
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.
1. / 2. / ... 

<?php
// ClanSphere 2010 - www.clansphere.net
// $Id$

$cs_lang cs_translate('news');
$cs_get cs_get('catid');
$cs_option cs_sql_option(__FILE__,'news');
$data = array();

$tables 'news ne INNER JOIN {pre}_categories cat ON ne.categories_id = cat.categories_id';
$select 'ne.news_id AS news_id, ne.news_headline AS news_headline, ne.news_time AS news_time,ne.categories_id AS categories_id,cat.categories_name AS categories_name';
$public 'ne.news_public > \'0\' AND cat.categories_access <= \'' $account['access_news'] . '\'';
if(!empty(
$cs_get['catid'])) {
  
$public .= ' AND cat.categories_id = ' $cs_get['catid'];
}
$now cs_time();
$sub 172800;
$dif $now $sub;

$order 'ne.news_time DESC';
$cs_news cs_sql_select(__FILE__,$tables,$select,$public,$order,0,$cs_option['max_navlist']);

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

  
$run 0;
  foreach (
$cs_news AS $news) { 
      
$data['news'][$run]['class'] = $data['news'][$run]['news_time'] > $dif 'newsnew' 'termine_bg';   
    
$data['news'][$run]['news_time'] = cs_date('unix',$news['news_time'],1,1,0);
    
$short strlen($news['news_headline']) <= $cs_option['max_headline'] ? $news['news_headline'] : cs_substr($news['news_headline'],0,$cs_option['max_headline']) . '...';
    
$data['news'][$run]['news_url'] = cs_url('news','view','id=' $news['news_id']);
    
$data['news'][$run]['news_short'] = cs_secure($short);
    
$data['news'][$run]['categories_name'] = cs_secure($cs_news[$run]['categories_name']);
    
$data['news'][$run]['news_headline'] = cs_secure($news['news_headline']);
    
$where3 "comments_mod = 'news' AND comments_fid = " $cs_news[$run]['news_id'];
    
$com cs_sql_count(__FILE__,'comments',"test",$where3);
    if((
$com) == 1){
        
$data['news'][$run]['comments'] = cs_sql_count(__FILE__,'comments',$where3);
        }else{
            
$data['news'][$run]['comments'] = cs_sql_count(__FILE__,'comments',$where3);
            }
        
    
$run++;
  }

  echo 
cs_subtemplate(__FILE__,$data,'news','navlisthome');
}


Ich seh keinen Fehler. Was nichts heißen muss ^^
Woran siehst du denn, das es nicht funktioniert? Evtl. Link, wo man es sieht?

@Dragon news_time als Vergleichswert mit sich selbst ist ziemlich sinnfrei, ganz egal ob man nun was abzieht oder dazurechnet


Inaktiv
|
maKe my dayyy


King for a day




Beiträge: 276
# Antwort: 14 - 29.07.2011 um 19:45 Uhr
29.07.2011 um 19:41 Uhr - cbw.lava:


@Dragon news_time als Vergleichswert mit sich selbst ist ziemlich sinnfrei, ganz egal ob man nun was abzieht oder dazurechnet

Mal abgesehen davon dass der TE sein Problem gelöst hat, warum sollte es sinnlos sein einen Wert mit einem veränderten Wert zu vergleichen? news_time und news_time + oder - x sind 2 unterschiedliche Werte, also kann ich sie doch super miteinander vergleichen?!


Inaktiv
|
cbw.lava


Rock the board





Beiträge: 63
# Antwort: 15 - 29.07.2011 um 20:07 Uhr
Lies nochmal was ich geschrieben habe, dann wirds deutlich. Wenn du x kennst, und es wie in diesem Fall immer größer 0 ist, und dann 2 dazu zählst, dann ist x + 2 selbstverständlich niemals kleiner als x.


Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 16 - 29.07.2011 um 20:53 Uhr
jungs problem ist doch schon gelöst aber trotzdem danke für die teilnahme an meinem problem;D


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Drag0n


Just nerd




Beiträge: 941
# Antwort: 17 - 29.07.2011 um 22:14 Uhr
ups Yeee du hast recht xD

das kommt dabei raus wenn man 4 sachen auf einmal macht xD


------------------
MfG

Drag0n

ich gebe KEINEN ICQ oder MSN Support, es sei den ich schreibe euch an


Inaktiv
|
Rouven89
Thread-Ersteller


Going for pro




Beiträge: 539
# Antwort: 18 - 30.07.2011 um 10:39 Uhr
hehe


------------------
http://sc-wiesens.de/

Der Sport Club "13 Eichen" Wiesens

Inaktiv
|
Antworten: 18
Seite [1]


Sie müssen sich registrieren, um zu antworten.