News - Features - Downloads - Forum - Team - Support - Switch View: Screen
Login - Registrierung - Passwort vergessen

Antworten: 23
Seite [1] 2 >
Radiate


King for a day





Beiträge: 293
# Thema - 13.12.2007 um 01:33 Uhr
Sry für den Topicname aber denke das sagt es am besten aus.

Ich habe folgenden Code:
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
1. / 2. / ... 
<?php
// Medals
// BETA
if($cs_user['user_points'] >= 1000) {
$medal_beta['users']['medals'] = cs_html_img('symbols/medals/beta_relaunch_1.png');
}
else {
$medal_beta['users']['medals'] = cs_html_img('symbols/medals/blank.png');
}
// Cash 3rd
if($cs_cash['user_id'] AND $cs_cash['cash_money'] >= 99) {
$medal_cash_3rd['users']['medals'] = cs_html_img('symbols/medals/cash_3rd.png');
}
else {
$medal_cash_3rd['users']['medals'] = cs_html_img('symbols/medals/blank.png');
}
$data['users']['medals'] = $medal_beta,$medal_cash_3rd;
?>


Naja, denke der Code zeigt was ich vorhabe.
Nun, die $data['users']['medals'] = Soll diese Variablen ausgeben, damit diese alle hintereinandern direkt im Profil des Users angezeigt werden.


Über eine Antwort würde ich mich freuen, danke.


*UPDATE*

Ich habe das jetzt folgend geändert:

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
1. / 2. / ... 
<?php
// Medals
// BETA
if(empty($cs_user['user_id'])) {
$data['users']['medal_beta'] = cs_html_img('symbols/medals/beta_relaunch_1.png');
}
else {
$data['users']['medal_beta'] = cs_html_img('symbols/medals/blank.png',128,128);
}
?>

Also immer wenn ich so eine neue Medaillie brauche ändere ich dieses hier:
 
1.
1. / 2. / ... 
 $data['users']['WelcheMedal']



Danke dennoch, kann geclosed werden!


------------------
Clansphere 2008.0

Zuletzt editiert von Radiate am 13.12.2007 um 02:00 Uhr (4x Editiert)
Inaktiv
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 1 - 13.12.2007 um 10:34 Uhr
öhm, wenn ich das richtig verstehe, hast du den code ins Profil gepackt ? mod=users&action=view

wenn ja, wieso fragst du dann ab, ob eine users_id existiert, wenn die ej vorhanden ist.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 2 - 13.12.2007 um 11:16 Uhr
Weil ich nicht weiß wie die Abfrage für die Zeit ab der Registrierung bis 1 Jahr geht. xD
Ich wollte das erstmal als Platzhalter da so stehen lassen mitm "empty(...)", brauche ein Code das mir von Anfang Januar bis Ende Jan, also in Zeit ermöglicht, eine bestimmte Medaillie zu verleihen.

Habe das zuerst so gemacht das man N/A Medaillien sieht und erst diee tatsächlich nachdem man diese bekommt, letztendlich bin ich soweit statt immer einem User eine freizuschalten, was bei zukünftigen mehreren Usern echt nerven kann, das mein Code je nach Ereignis selber Medaillien freischaltet via if(){}else{}.


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 3 - 13.12.2007 um 11:24 Uhr
also legst du im vorhinein schon fest, wann welche medaillie gilt, und wie lange ?

erklär mal etwas genauer


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 4 - 13.12.2007 um 17:31 Uhr
Okay, mein Script funktioniert bisher nur mit folgenden Medaillien:

Points 100
Points 500
Points 2000
Points 5000

Dabei gehe ich folgend vor, schreibe eine IF Abfrage dieüberprüft wie viele Points der User hat, sind sie gleich oder mehr als der Wert, gibt es eine Medaillie.
Leider gelingt mir das mit den Forumposts nicht so einfach weshalb ich bei jedem neuen Comment zusätzlich zu der Tabelle "comments" auch in der Tabelle "users" ne extra Spalte angelegt habe.
Über dieses Feld namens "users_boardposts" kann ich dann besser zugreifen und kann somit auch die Medaillein alleine arbeiten lassen, statt das ich da noch arbeiten muss um die Medaillien jedem User freizuschalten sobald er bestimmte Ereignisse erreicht hat. *hehe*


Dennoch brauche ich Hilfe bei der Umsetzung wie lange ein bestimmter Zeitabschnitt in ein PHP Code einzubauen.


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 5 - 13.12.2007 um 17:35 Uhr
wieso musstest du für comments posts noch eine extra spalte anlegen ? hast du jetzt 2 spalten beim users, welche punkte zählen ?


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 6 - 14.12.2007 um 02:25 Uhr
Nein, es ist nur umständlich von Euch gemacht also Eure DB Struktu. *hehe*
Wieso zählt ihr nicht in jeder Tabelle die für ein Modul vorgesehen ist?
Stattdesen benutzt ihr eine Tabelle Namens Comments die verschiedene Module zählt, also in der 'comments' wird die "user_id" sowie "mod_name" und "comments_fid" gespeichert, wenn ich mich nicht täusche?

In meiner Änderung zählt der jetzt ausschließlich "users_boardposts", das bedeutet das pro Beitrag +1 in der Usertabelle der user_id gespeichert wird.

Statt also bei euch das Modul zu ermitteln und abzuspeichern, denke für News und Board ist die {pre}_comments gedacht, wird bei mir der Forum Beitrag einfach als Forumbeitrag - users_boardposts - gespeichert.

Ist das so einigermaßen verständlich formuliert?^^ Sry, wie geschrieben, bin manchmal etwas kompliziert, weiß nicht wie ich es sonst erklären könnte ausser noch Skizzieren.


*Änderung* +-

Denke so ists einfacher zu verstehen:

Eure Version:
 
1.
1. / 2. / ... 
 Tabelle 'comments' Einträge bei Post 'comments_id','users_id','comments_fid','comments_mod'

Meine Version:
 
1.
1. / 2. / ... 
 Tabelle 'users' Einträge bei Post 'users_boardposts'


Erkennste wie umständlich das bei Euch gemacht wurde? *hehe*
Bei mir gibst nur einen Eintrag in die DB was das ganze auch wieder schneller macht auch wenn man es nicht unbedingt merkt.


------------------
Clansphere 2008.0

Zuletzt editiert von Radiate am 14.12.2007 um 03:29 Uhr (3x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 7 - 14.12.2007 um 09:52 Uhr
öhm tabelle comments ist aber kein counter sogesehen, da kommen doch die comments_texte auch rein


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 8 - 14.12.2007 um 17:05 Uhr
Und welche nutzt ihr genau zum zählen der Forumposts?^^
Bisher habe ich daraus doch die Counter Daten genommen um im User Profil die Foren Beiträge zu zählen. *hehe*


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 9 - 14.12.2007 um 17:16 Uhr
joar einfach per sql abfrage zusammenzählen


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 10 - 14.12.2007 um 18:17 Uhr
Du ... Weißt ganz genau was ich meine. *hehe*
Welche Tabelle mit welchem Feld zählt einfach nur die Counts?
Bei uns ists jetzt Tabelle 'users' Feld 'users_boardposts'.


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 11 - 14.12.2007 um 18:30 Uhr
dafür gibs keine seperate tabelle.

wie gesagt, dort wird per sql abgefragt.

mods/board/functions.php
 
1.
2.
3.
4.
5.
1. / 2. / ... 
 function getUserPosts($id)
{
  
$cnt cs_sql_count(__FILE__,'comments','users_id = \'' $id '\'');
    return 
$cnt;
}


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 12 - 15.12.2007 um 02:53 Uhr
Naja, bei uns ists jetzt so das wir in der 'users' Tabelle die 'users_boardposts' speichern und direkt abrufen können statt so ne komplizierte Abfrage auch wenn es für manche nicht kompliziert erscheint ist es doch einfacher einen Wert mit abzufragen wenn man folgendes tut: "...users,'*',..." anstatt halt immer erst ne Abfrage zu machen.


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 13 - 15.12.2007 um 02:57 Uhr
jo klar, ich sage mal so, wenn du nich immer erst abfragen willst, ist es so gesehen einfacher, muss nur halt von anfang vorhanden sein.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 14 - 15.12.2007 um 03:08 Uhr
Habe ich erledigt bzw. erstellt namens 'users_boardposts'.
Nun zurück zu meinem Ursprünglichem Problem.

Wie bekomme ich das hin, von der Registrierung eines Users bis zu einem bestimmten Zeitpunkt im Code zu fragen?

Also in etwa sowas brauche ich:

"Der User hat sich am 12.12.2007 angemeldet - Der User ist jetzt am 12.12.2008 genau 1 Jahr bei uns = Der User erhält die 1 Jahr Mitgliedschafts-Medaillie!"


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 15 - 15.12.2007 um 03:11 Uhr
dann brauchste nur users_regtime nehmen, ist ja ein unixtimestamp + 31622400 (1 Jahre)

dann fragste einfach ab, if act timestamp > 31622400 = 1 Jahr Medaillie


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 16 - 15.12.2007 um 18:40 Uhr
Wenn das in Sekunden gerechnet wird dann ergibt sich bei mir ein Jahr in 365 Tagen gleich 31536000 Sekunden.
Was ist dann deine "+ 31622400"?


------------------
Clansphere 2008.0

Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 17 - 15.12.2007 um 18:43 Uhr
Der Timestamp zu Ihrer Eingabe ist: 1197673200
Das Datum zur Ihrer Eingabe ist: 2007-12-15 00:00:00

Der Timestamp zu Ihrer Eingabe ist: 1229295600
Das Datum zur Ihrer Eingabe ist: 2008-12-15 00:00:00


1229295600 - 1197673200 = 31622400

//EDIT: Wäre aber glaube blödsinn mit sekunden zu rechnen, bsp. Schaltjahr. Würde dann einfach aus dem timestamp das Jahr rausfiltern, und +1 rechnen


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Zuletzt editiert von Fr33z3m4n ClanSphere Team am 15.12.2007 um 18:45 Uhr (1x Editiert)
Inaktiv
|
Radiate
Thread-Ersteller


King for a day





Beiträge: 293
# Antwort: 18 - 15.12.2007 um 19:31 Uhr
Also steht die "31622400" für ein Jahr und nicht für -> 15.12.2007 - 15.12.2008?
Kann ich das also immer für ein Jahr nehmen?
Was ist das da oben, also das Zitat? Benutzt du dafür ein Prog?^^


------------------
Clansphere 2008.0

Inaktiv
|
donkeydick


Try to beat me





Beiträge: 161
# Antwort: 19 - 15.12.2007 um 19:46 Uhr
Was ist das da oben, also das Zitat? Benutzt du dafür ein Prog?^^


LoL^^

Sag mal Radiate, das was Du da zusammenbastelst hört sich interessant aus, hast Du vor das nach der Fertigstellung auch zu releasen wenn es alles funktioniert oder ist das als "Radiate only" gedacht ?


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 20 - 15.12.2007 um 20:08 Uhr
öhm Radiate [.quote] [./quote] schonmal getestet

öhm joar laut timestamp, kann aber auch sein, das aufgrund von schaltjahr das alles dann nicht passt etc.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
Antworten: 23
Seite [1] 2 >


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo