Author Topic: Useranzeige im Chat  (Read 4526 times)

0 Members and 1 Guest are viewing this topic.

spikeh1

  • Guest
Useranzeige im Chat
« on: July 13, 2010, 07:38:57 AM »
Hallo Zusammen.

Ich nutze HFS schon etwas länger und konnte meine Probleme bzw. Anforderungen bisher mit diesem Forum lösen.
Nun bin ich aber an einem Punkt, wo ich nicht so ganz weiter komme. Deswegen habe ich mich nun auch registriert.

Verwendetet Version: HTTP File Server 2.3 Build #260 Beta

Zu meinem Problem:

Ich habe einen Kleinen Support Chat (dank eines Codes, hier aus dem Forum) realisiert. Mir ist klar, das der
Trafik durch diese Variante erhöht ist. Dies spielt aber keine Rolle, da meistens nur zwei, drei User den Chat nutzen.

Mir wäre es jedoch lieb wenn mir angezeigt werden würde, das User XY den Chat betreten hat.

Folgenden Code habe ich als Diff Template über ein Virtuelles Verzeichnis eingebunden:

Quote
<html>
<head>
<title>Chat</title>
<link rel="shortcut icon" href="favicon.ico" />

<!-- used to refresh chat box -->
<script language="JavaScript" type="text/JavaScript">
function goToURL() { window.location = "http://meine.adresse"; }
var refresh=true;
function Prefresh() {
  if ((document.frm.texto.value=='') & (document.frm.login.value>''))
  {
  window.location="{.get|url|text=.}";
  document.frm.texto.focus();
  refresh=true;
  }
};
if (refresh) setTimeout("Prefresh()",10000);
</script>

<!-- Define special:begin -->

{.set | pass | !clear .}
{.set | chatfile | %date%_chatlog.txt .}
{.set | chattext | {.load|{.^chatfile.} .} .}
{.set| maxlength | 10240.}

<!-- Limit Length of file and reset it when pass is given -->

{.if|{.length | {.^chattext.} .}>{.^maxlength.}|
  {. set | chattext |{.cut||{.div|{.^maxlength.}|2.}|{.^chattext.} .}/set.}
 /if.}
{.if|{.?text={.^pass.}.}|{:{.save | {.^chatfile.}|.}:}.}


<!-- Save chat file on hard drive -->

{.if| {.and|{.?name.}|{.?text.}|{.not| {.?text={.^pass.}.}.}/and.}
     |{:
          {.set | chattext |{.time.} --- <b>{.?name.}</b>&gt; {.?text.}<br>{.^chattext.}.}
          {.save | {.^chatfile.}|{.^chattext.} /save.}
      :}
/if.}


</head>
<body>
Willkommen ! </b>
<br><br>
<form name=frm>
  <b>&nbsp;NAME</b><br>{.repeat|2|&nbsp;.}<input id=login name=name style="font-size:10pt; color:blue; background-color:FFFFFF; border:2px solid #88f;" value="{.if|{.?name.}|{.?name.}|%user%.}" onfocus="javascript:refresh='false';" size="24% onblur="javascript:refresh='true';">
  <br><br>
  <b>&nbsp;TEXT</b><br>{.repeat|2|&nbsp;.}<input id=texto name=text style="font-size:10pt; font-weight:bold; color:7F7F7F; background-color:FFFFFF; border:2px solid #88f;" onfocus="javascript:refresh='true';" size="117%" >
  <br><br>
  {.repeat|1|&nbsp;.} <input type="submit" value="Senden  [ENTER]">
  <br>
</form>

<!-- {.repeat|2|&nbsp;.}<button onclick="Prefresh();">Refresh</button> -->
{.repeat|2|&nbsp;.}<input type=button value="Chat beenden" onClick="goToURL()">

<HR COLOR="b1aba7">
<!-- {.breadcrumbs|{:<a href="%bread-url%">{.if|{.%bread-name%=.}|Home|%bread-name%.}/</a>:} .} -->
<CENTER>Heute ist der %date% - Uhrzeit: %time%</CENTER>
<HR COLOR="B1ABA7">
<br><br>
{.load|{.^chatfile.}.}
<!-- give the focus to the text field -->
<script language="JavaScript" type="text/JavaScript">document.frm.texto.focus();</script>

</body>
</html>

Ich kann ja die Abfrage der Benutzers über %user% machen, nur wie binde ich das in den Code so mit ein, das dies
ebenfalls in die Textdatei (%date%_chatlog.txt) gespeichert wird.

Ich hoffe ich habe mich verständlich ausgedrückt und baue auf Eure hilfe. Ich danke Euch schonmal.

Offline Mars

  • Operator
  • Tireless poster
  • *****
  • Posts: 1842
    • View Profile
Re: Useranzeige im Chat
« Reply #1 on: July 13, 2010, 01:45:47 PM »
Also, was lustig ist, ist, daß ich mein Modell erkenne ;D

Quote
Ich hoffe ich habe mich verständlich ausgedrückt und baue auf Eure hilfe. Ich danke Euch schonmal.

Nein, nicht genug.

Etwas mehr Erklärungen wären nützlich. Wenn das, auf englischer Sprache, sogar mit einer schlechten Übersetzung möglich ist, werden es mehr Personen geben, die zu antworten fähig sind

Welcome on the forum ;)

l'utilisation du français est aussi autorisée :D
« Last Edit: July 13, 2010, 01:50:01 PM by Mars »

Offline Roessi

  • Tireless poster
  • ****
  • Posts: 107
    • View Profile
Re: Useranzeige im Chat
« Reply #2 on: July 15, 2010, 03:20:55 PM »
also ich versteh jetz auch nich so ganz was du meinst ^^
willst du einfach  nur dass %user% mitgepeichert wird wenn jemand was schreibt
oder willst du dass sobald er den chat öffnet schon die datei gespeichert wird mit der uhrzheit wann er ihn geöffnet hat ?
und der text, wenn er was schreibt angehängt wird ?
oder dass dir sonst irgendwie im hfs window angezeigt wird dass jemand den chat betritt ^^

Offline spike.h1

  • Occasional poster
  • *
  • Posts: 4
    • View Profile
Re: Useranzeige im Chat
« Reply #3 on: July 15, 2010, 06:02:49 PM »
Nabend.

Ich mußte mich nochmal neu anmelden, da meine Logindaten nicht funktionieren. Warum auch immer.

Quote
oder willst du dass sobald er den chat öffnet schon die datei gespeichert wird mit der uhrzheit wann er ihn geöffnet hat ?

Genau das möchte ich.

Nochmal zu meinen Fakten und Vortstellungen.

Der Chatraum kann bei mir nur nach Login bestreten werden. Somit ist dann schonmal der Name des Users festgelegt.
Nun ist es ja bei diesem Chat so, das alles was jemand schreibt, mit Datum und Uhrzeit in eine Textdatei gespeichert und anschließend (alle 10 sek)
ausgelesen wird. Jetzt hätte ich halt gerne, das wenn ein User (nach Login) den Raum betritt, dies ebenfalls in die selbe Textdatei geschrieben wird.
Da diese dann ja alle 10 sek ausgelesen wird, würde mir somit angezeit werden das User XY den Chat betreten hat.
« Last Edit: July 15, 2010, 06:08:59 PM by spike.h1 »

Offline Roessi

  • Tireless poster
  • ****
  • Posts: 107
    • View Profile
Re: Useranzeige im Chat
« Reply #4 on: July 15, 2010, 06:27:10 PM »
ok :)
des sollte an sich nich so des problem sein :)

Code: [Select]
<html>
<head>
<title>Chat</title>
<link rel="shortcut icon" href="favicon.ico" />

<!-- used to refresh chat box -->
<script language="JavaScript" type="text/JavaScript">
function goToURL() { window.location = "http://meine.adresse"; }
var refresh=true;
function Prefresh() {
  if ((document.frm.texto.value=='') & (document.frm.login.value>''))
  {
  window.location="{.get|url|text=.}";
  document.frm.texto.focus();
  refresh=true;
  }
};
if (refresh) setTimeout("Prefresh()",10000);
</script>

<!-- Define special:begin -->

{.set | pass | !clear .}
{.set | chatfile | %date%_chatlog.txt .}
{.set | chattext | {.load|{.^chatfile.} .} .}
{.set| maxlength | 10240.}
{.if not| {.pos|%user% hat den Chat betreten.|{.load|{.^chatfile.}.}.}|{:
{.append|{.^chatfile.}| {.time.} --- <i> %user% hat den Chat betreten.</i> </br>.}
:}.}
<!-- Limit Length of file and reset it when pass is given -->

{.if|{.length | {.^chattext.} .}>{.^maxlength.}|
  {. set | chattext |{.cut||{.div|{.^maxlength.}|2.}|{.^chattext.} .}/set.}
 /if.}
{.if|{.?text={.^pass.}.}|{:{.save | {.^chatfile.}|.}:}.}


<!-- Save chat file on hard drive -->

{.if| {.and|{.?name.}|{.?text.}|{.not| {.?text={.^pass.}.}.}/and.}
     |{:
          {.set | chattext |{.time.} --- <b>{.?name.}</b>&gt; {.?text.}<br>{.^chattext.}.}
          {.save | {.^chatfile.}|{.^chattext.} /save.}
      :}
/if.}


</head>
<body>
Willkommen ! </b>
<br><br>
<form name=frm>
  <b>&nbsp;NAME</b><br>{.repeat|2|&nbsp;.}<input id=login name=name style="font-size:10pt; color:blue; background-color:FFFFFF;

border:2px solid #88f;" value="{.if|{.?name.}|{.?name.}|%user%.}" onfocus="javascript:refresh='false';" size="24%

onblur="javascript:refresh='true';">
  <br><br>
  <b>&nbsp;TEXT</b><br>{.repeat|2|&nbsp;.}<input id=texto name=text style="font-size:10pt; font-weight:bold; color:7F7F7F;

background-color:FFFFFF; border:2px solid #88f;" onfocus="javascript:refresh='true';" size="117%" >
  <br><br>
  {.repeat|1|&nbsp;.} <input type="submit" value="Senden  [ENTER]">
  <br>
</form>

<!-- {.repeat|2|&nbsp;.}<button onclick="Prefresh();">Refresh</button> -->
{.repeat|2|&nbsp;.}<input type=button value="Chat beenden" onClick="goToURL()">

<HR COLOR="b1aba7">
<!-- {.breadcrumbs|{:<a href="%bread-url%">{.if|{.%bread-name%=.}|Home|%bread-name%.}/</a>:} .} -->
<CENTER>Heute ist der %date% - Uhrzeit: %time%</CENTER>
<HR COLOR="B1ABA7">
<br><br>
{.load|{.^chatfile.}.}
<!-- give the focus to the text field -->
<script language="JavaScript" type="text/JavaScript">document.frm.texto.focus();</script>

</body>
</html>
habs grade mal so ausprobiert
wenn jetz jemand den virtuellen ordner öffnet wird in die datei geschrieben dass er den chat betreten hat
aber halt nur wenn nich schon in der datei irgendwo steht %user% hat den Chat betreten ;)
Code: [Select]
{.if not| {.pos|%user% hat den Chat betreten.|{.load|{.^chatfile.}.}.}|{:
{.append|{.^chatfile.}| {.time.} --- <i> %user% hat den Chat betreten.</i> </br>.}
:}.}

Offline spike.h1

  • Occasional poster
  • *
  • Posts: 4
    • View Profile
Re: Useranzeige im Chat
« Reply #5 on: July 16, 2010, 06:02:44 AM »
Ja wunderbar. Genau so habe ich mir das vorgestellt.  :)

Danke Roessi !

Offline spike.h1

  • Occasional poster
  • *
  • Posts: 4
    • View Profile
Re: Useranzeige im Chat
« Reply #6 on: July 16, 2010, 12:01:28 PM »
Eines ist mir jedoch noch aufgefallen, was mich etwas stört.

In dem Chat wird die aktuellste Nachricht ganz oben dargestellt, da sie an den Anfang der Textdatei geschrieben wird.
Kommt jedoch ein neuer User hinzu, wird dies an das Ende der Datei geschrieben. Somit wird %user% hat den Chat betreten
am Ende des Chatfensters angezeit. Macht nicht viel Sinn, wenn der Chat schon recht vollgeschrieben ist.

Um das mal darzustellen folgendes:

So sieht es derzeit aus.
Quote
16.07.2010 13:38:05 --- gast 2 > auch hallo
16.07.2010 13:36:54 --- gast 1 > hallo
.
.
.
.
16.07.2010 13:36:44 --- gast 1 hat den Chat betreten.
16.07.2010 13:37:16 --- gast 2 hat den Chat betreten.
Man kann ja gut an der Zeit erkennen, das die Sortierung nicht ganz stimmt.

So würde ich es mir wünschen.
Quote
16.07.2010 13:38:05 --- gast 2 > auch hallo
16.07.2010 13:37:16 --- gast 2 hat den Chat betreten.
.
.
.
.
16.07.2010 13:36:54 --- gast 1 > hallo
16.07.2010 13:36:44 --- gast 1 hat den Chat betreten.

Hoffe das dies auch noch realisierbar ist. Danke schonmal im Voraus.

Offline Roessi

  • Tireless poster
  • ****
  • Posts: 107
    • View Profile
Re: Useranzeige im Chat
« Reply #7 on: July 16, 2010, 12:09:34 PM »
oh sry is mir gar nich aufgefallen :/
Code: [Select]
<html>
<head>
<title>Chat</title>
<link rel="shortcut icon" href="favicon.ico" />

<!-- used to refresh chat box -->
<script language="JavaScript" type="text/JavaScript">
function goToURL() { window.location = "http://meine.adresse"; }
var refresh=true;
function Prefresh() {
  if ((document.frm.texto.value=='') & (document.frm.login.value>''))
  {
  window.location="{.get|url|text=.}";
  document.frm.texto.focus();
  refresh=true;
  }
};
if (refresh) setTimeout("Prefresh()",10000);
</script>

<!-- Define special:begin -->

{.set | pass | !clear .}
{.set | chatfile | %date%_chatlog.txt .}
{.set | chattext | {.load|{.^chatfile.} .} .}
{.set| maxlength | 10240.}
{.if not| {.pos|%user% hat den Chat betreten.|{.^chattext.}.}|{:
{.save|{.^chatfile.}| {.time.} --- <i> %user% hat den Chat betreten.</i> <br>{.^chattext.}.}
:}.}
<!-- Limit Length of file and reset it when pass is given -->

{.if|{.length | {.^chattext.} .}>{.^maxlength.}|
  {. set | chattext |{.cut||{.div|{.^maxlength.}|2.}|{.^chattext.} .}/set.}
 /if.}
{.if|{.?text={.^pass.}.}|{:{.save | {.^chatfile.}|.}:}.}


<!-- Save chat file on hard drive -->

{.if| {.and|{.?name.}|{.?text.}|{.not| {.?text={.^pass.}.}.}/and.}
     |{:
          {.set | chattext |{.time.} --- <b>{.?name.}</b>&gt; {.?text.}<br>{.^chattext.}.}
          {.save | {.^chatfile.}|{.^chattext.} /save.}
      :}
/if.}


</head>
<body>
Willkommen ! </b>
<br><br>
<form name=frm>
  <b>&nbsp;NAME</b><br>{.repeat|2|&nbsp;.}<input id=login name=name style="font-size:10pt; color:blue; background-color:FFFFFF;

border:2px solid #88f;" value="{.if|{.?name.}|{.?name.}|%user%.}" onfocus="javascript:refresh='false';" size="24%

onblur="javascript:refresh='true';">
  <br><br>
  <b>&nbsp;TEXT</b><br>{.repeat|2|&nbsp;.}<input id=texto name=text style="font-size:10pt; font-weight:bold; color:7F7F7F;

background-color:FFFFFF; border:2px solid #88f;" onfocus="javascript:refresh='true';" size="117%" >
  <br><br>
  {.repeat|1|&nbsp;.} <input type="submit" value="Senden  [ENTER]">
  <br>
</form>

<!-- {.repeat|2|&nbsp;.}<button onclick="Prefresh();">Refresh</button> -->
{.repeat|2|&nbsp;.}<input type=button value="Chat beenden" onClick="goToURL()">

<HR COLOR="b1aba7">
<!-- {.breadcrumbs|{:<a href="%bread-url%">{.if|{.%bread-name%=.}|Home|%bread-name%.}/</a>:} .} -->
<CENTER>Heute ist der %date% - Uhrzeit: %time%</CENTER>
<HR COLOR="B1ABA7">
<br><br>
{.load|{.^chatfile.}.}
<!-- give the focus to the text field -->
<script language="JavaScript" type="text/JavaScript">document.frm.texto.focus();</script>

</body>
</html>

so solltes stimmen ;)
kein problem :) gerne :)

Offline spike.h1

  • Occasional poster
  • *
  • Posts: 4
    • View Profile
Re: Useranzeige im Chat
« Reply #8 on: July 17, 2010, 01:10:17 PM »
Danke. So ist es hübsch.  :)

Sollte mich vielleicht selbst mal bisschen an die Materie ran machen, auch wenn hier einem schnell geholfen wird.  ???

Offline MajorSeven

  • Occasional poster
  • *
  • Posts: 2
    • View Profile
Re: Useranzeige im Chat
« Reply #9 on: June 02, 2016, 11:44:56 AM »
Hallo,

zuerst mal ein ganz dickes Dankeschön an die Programmierer dieses Chat-Templates.

Nun aber würde ich dieses gerne etwas erweitern - nur: Ich kann's (noch) nicht alleine... :-\

Deswegen meine Fragen:
1. Wie kann ich das chatfile automatisch nach dem Ordner (ohne Pfad) benennen?
2. Wie kann ich das chatfile in dem Ordner speichern, in dem das chat-Template liegt?
3. Wie kann ich ein neues Chatfile mit einem Button anlegen (chatfile-Name mit Datum, Zeit und Ordner aus 1. Frage?
4. Wie kann ich einen Logout aus dem Chat generieren?

Vielen Dank.