Wem unbedingt nur offene Themen interessieren kann auch ganz einfach mal auf der Startseite oder in einem Forum auf eines der Label klicken.
Beiträge von i2c
-
-
Also eines steht fest - ich mach jetzt die Offen/geschlossen Labels nicht wieder bunt. Die waren auch vorher im WBB3 nicht bunt und ganz ehrlich. Mir gefällt das schlicte Modell jetzt auch deutlich besser als die rot/grün Lösung. Lesen kann man ja. Mussten wir bislang auch.
-
Ja da hat Gun was nettes gebastelt. Ich bin seit gestern abend dabei, nebenbei etwas ähnliches auch als dunkle (blau) Version zu bauen. Ähnelt sich vom Grundaufbau sehr stark. Tendiert eher zum AutoIt-blau gemischt mit etwas orange orange. Grundsätzlich ist ja jetzt bekannt, worauf ihr hier ein Hauptaugenmerk werft.
Zur Menüzeile: Du meinst warscheinlich die nicht aktiven Eleente?
Zu den Avataren: Nach Meinung einiger User waren die überflüssig und eher unnötig und störend. Deshalb sind sie in den Themenauflistungen verschwunden.
ZitatHätte aber gerne die Möglichkeit auf die Desktop-Version umzuschalten.
Das wird nicht möglich sein. Es gibt keine getrennten Versionen für Desktop und Mobilgeräte. -
Ja, das was an einem Forum wichtig (sic) ist, sind die Beiträge. Wenn ich die Seite öffne nehmen die relevanten Daten einen minimalen Bereich auf dem Bildschirm ein, dazu noch an exponiert ungünstiger Position umten links!Mit dem Kontrollzentrum links wären die Beiträge wenigstens in der Mitte.
Ok. Das Dachte ich mir. Die SB wird dort zeitnah verschwinden und die Letzten Beiträge somit nach oben rutschen.ZitatDie grellbunten" Offen/Gelöst -Buttons ziehen die Blicke auf sich, stört massiv den Lesefluss und die Buttons zerhacken den optischen Eindruck der Site. Wer braucht die überhaupt und warum? Sollten als Icons zusammen mit den Beiträge/Umfrage/Abboniert-Icons in diese Zeile.
Das sind labels. Sozusagen die neuen Präfixe. Wenn die euch allgemein zu bunt sind, geht's auch schlichter. Ob sich da allgemein eine Lösung mit Icons finden lässt ... aktuell keine Ahnung.ZitatDer Avatar bei der letzten Antwort ist ok, vor den Beiträgen aber eher störend, vor allem mit dem Mini-Avatar und ggf "Sternchen" wird Aufmerksamkeit gefordert, die Information ist aber eher irrelevant.
ZitatDie Kontrollzentrum-Überschriften sollten so aussehen wie "Shoutbox" + "Letzte Beiträge" weiße Schrift/blauer Grund.
Wie oben erwähnt - ich strebe da einen portalähnlichen look an.ZitatWas (mich) weiterhin stört ist das gehovere. Ich muss mit der Maus so lange über den Bildschirm maneuvrieren, bis irgendwann die gesuchten Informationen erscheinen, WENN ich weiß, dass sie an dieser Position sind. Bspw. in der Threaddarstellung "Zitieren/Inhalt melden/Verwarnen..."-Button. Die gehören festgepinnt.
Btw. ist die Darstellung der einzelnen Postings im Thread also Schriftart/Farbwahl gut gelungen! Wenn jetzt noch die Links sichtbar werden, ist dort alles paletti
Das hovern der Buttons in den Beiträgen wollte ich ursprünglich auch deaktivieren. Dachte dann aber, das sich einige User darüber beschweren würden. Weil die nehmen dann Platz weg etc ..... Wir probieren es mal.ZitatAuf der FORUM-Seite brauchts das hovern der Themenbereiche auch nicht, besser wäre imho gleich eine farbiges Absetzen der einzelnen Zeilen.
OKZitat//EDIT was massiv stört, ist dass ich im Browser die Site nur einmal geöffnet haben darf, ansonsten hagelt es Abmeldungs-Meldungen. Die Meldung, dass ich in der SB irgendwelche Zeiten über/unterschritten habe kannst du nach 1 Sekunde direkt wieder ausblenden. So etwas wegzuklicken, dafür ist mir meine Zeit echt zu schade...
Darauf habe ich leider keinen Einfluss. Und die SB verschwindet wie erwähnt balt™ -
Noch etwas zum Dashboard. Das Dashboard bzw. die Sidebar ist vom Prinzip her nichts anderes als ein flexibleres Portal. Es lassen sich auf jede Seite des WCFs abgestimmte Boxen hinterlegen. Zum Beispiel in der Forenübersicht die letzten Beiträge und aktive Themen, auf der Mitgliederseite die Mitgliedersuche und die Teamliste oder eben auf der Startseite der bekannte Inhalt der Portalboxen. Da es sich um ein integriertes System handelt, ist es natürlich deutlich weniger fehlerbehaftet als ein Drittanbieter-Plugin (Portal).
Das sich die Sidebar auf der rechten Seite befindet liegt einzig und allein an der Philosophie der Entwickler. Man liest von links nach rechts. Daher sollten relevante Inhalte links angezeigt werden und Zusatzinformationen rechts. Ich kann mich dem nur anschliessen und nutze Sidebars auch schon seit langem nach diesem Prinzip.
Die Optik der Sidebar selbst ist auch nicht ganz mein Fall. Sie ist halt nur ein optionales Beiwerk und hebt sich dementsprechend auch vom Rest der Seite ab. Aber mit ein bisschen CSS schafft man es dann auch ihr den look von Portalboxen aufzuzwingen. Hat für mich aber momentan eher keine Priorität da ich mir immer noch konstruktive und ausgearbeitete Vorschläge zum Thema Design erhoffe.
-
Diese Lösung ist noch nicht ganz optimal. Es ist von Haus aus nicht vorgesehen, das man aus dem Dashboard heraus Foren als gelesen markiert. Wurde aber gewünscht.
Im Moment ist es so, das ich eine interne Klasse aufrufen lasse durch die dann die Themen als gelesen markiert werden. Die Kasse aktualisiert dann die Forenansicht um die ungelesen Markierung zu entfernen. Da wir uns aber auf der Dashboard Seite befinden werden hier die Markierungen nicht entfernt obwohl der Gelesen-Status bereits aktualisiert wurde. Die schnelle Lösung war dann, die aktuelle Seite (Dashboard) komplett neu laden zu lassen. Noch nicht wirklich perfekt - ich hab auch schon eine funktionierende Lösung parat allerdings muss ich dazu ein separates Plugin schreiben. Mach ich aber erst, wenn die Rechtevergabe komplett überarbeitet ist.
@Andy Du hast in der SB heute irgendwo erwähnt, das die für dich relevanten Informationen im Dashboard jetzt unten links wären. Beziehst du dich dabei auf die "Letzten Beiträge"?
-
Ein weiteres Problem entdeckt:
Ich weiß nicht ob es mehrere Posts betrifft, aber in "_String_Balanced --> Text zwischen korrespondierenden Klammern" ist alles aus den Fugen geraten. Die Anhänge werden als Text dargestellt.Liegt am AutoIt-Highlighter. Ich hab ihn erstmal deaktiviert und bau gleich ein alternatives, etwas abgespecktes Paket um den Betrieb erstma zu gewährleisten.
Edit: Hab einen Highlighter auf Basis der WCF-eigenen Highlighter-Klasse erstellt. Etwas eingeschränkt aber für den Moent muss es reichen.
Spoiler anzeigen
[autoit]#Region - TimeStamp
[/autoit] [autoit][/autoit] [autoit]
; 2013-12-30 14:43:59 v 0.4
#EndRegion - TimeStamp;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Sammlung von Array-UDF
;
; Enthaltene Funktionen:
;
; _ArraySort_2ary() ==> [durch _Array2DSortFree() ersetzt]
; sortiert 2D Arrays mehrstufig
; !! Nicht entfernen: Wird von _Array2DSortByLen() verwendet
;
; _Array2DSortFree()
; sortiert 2D Arrays mehrstufig, jede Spalte kann in eigener Richtung sortiert werden
; ein bis alle Spalten sind ineinander sortierbar
; sortiert auch 1D-Arrays auf- oder absteigend
; Sortierung wahlweise alphabetisch oder numerisch
; !! Bemerkung:
; Die Funktion ist auskommentiert, da die verwendeten SQLite-Includes am Anfang des aufrufenden
; Skripts stehen müssen. Somit bringt jedes Include von 'ArrayMore.au3' in SciTE eine Fehlermeldung
; wegen der SQLite-Includes (auch wenn andere Funktionen genutzt werden prüft SciTE stets das ganze Include).
; Um diese Funktion zu verwenden, muß sie separat gespeichert und includiert oder direkt in das Skript
; kopiert werden.
;
; _Array2DSortByLen()
; sortiert 1D/2D Arrays nach Länge der Einträge
;
; _ArraySortDblDel() ** Funktion auskommentiert - siehe Funktionskopf
; sortiert 1D/2D Arrays und entfernt doppelte Einträge
; in 2.ter Dimension begrenzt auf 2 Vorkommen
;
; _Array2DDblDel()
; entfernt doppelte Einträge in 1D/2D Arrays
;
; _Array2DAdd()
; fügt einen Eintrag einem 1D/2D-Array hinzu
; Spaltenwerte in 2D-Arrays sind durch '|' zu trennen
; wird die Funktion ohne Wertübergabe aufgerufen, wird die Arraygröße um 1 erhöht
;
; _Array2DInsert()
; fügt 1 Element (leer oder mit Daten) an gegebener Position ein
; arbeitet mit 1D/2D Arrays
;
; _Array2DSplit()
; splittet 1D/2D Arrays ab gegebener Position in 2 Arrays
; optional wird eine Anzahl Elemente in ein Zielarray exportiert
;
; _Array2DEmptyDel()
; löscht leere Zeilen, in 2D Arrays Zeilen oder optional Spalten
;
; _Array2DJoin()
; verbindet 2 Arrays zu einem, 1D/2D -Arrays, auch untereinander
; Größe der 2.ten Dimension muß nicht übereinstimmen
;
; _Array2DDelete
; löscht eine Zeile oder Spalte aus einem (1D)2D -Array am gegebenen Index
;
; _Array2DSearch()
; sucht nach allen oder einmaligem Auftreten des Suchbegriffs in einem 1D/2D -Array
; ein Array mit dem/den gefundenen Index(es) wird zurückgeliefert
;
; _Array2DMirror()
; spiegelt ein 2D-Array, Zeilen werden zu Spalten und umgekehrt
;
; _SubArrayGetEntry()
; gibt den Wert eines Elements aus einem 1D/2D-Array als Element eines 1D/2D-Arrays zurück
;
; _SubArraySetEntry()
; setzt den Wert eines Elements in einem 1D/2D-Array als Element eines 1D/2D-Arrays
;
; _Array2DSortByCountSameEntries()
; sortiert ein Array nach der Anzahl gleicher Elemente, bei 2D für eine angegebene Spalte
;
; _Array2DPop()
; gibt den letzten Wert eines 1D/2D-Arrays zurück und löscht ihn gleichzeitig vom Array
;
; _Array2DPush()
; fügt Einzelwerte oder Arrays in 1D/2D-Arrays ein ohne deren Größe zu verändern
; es kann vom Anfang oder vom Ende eingefügt werden, überzählige Elemente werden 'herausgeschoben'
;
; _Array2DMinMax()
; gibt den minimalen od. maximalen Wert eines 1D/2D-Array zurück
; Überprüfung einer oder aller Spalten
;
;----------------------------------------------------------------------------------------------------------------------
#include-once
#include <Array.au3>
;----------------------------------------------------------------------------------------------------------------------
; Function _ArraySort_2ary(ByRef $ARRAY [, $DIM_1ST=0 [, $DESCENDING=0 [$REVERSE=False]]])
;
; Description sort an 2D-Array 2-ary
; BaseIndex is 0
; sort the whole array
;
; Parameter $ARRAY: Array to sort
; optional $DIM_1ST: MainSortIndex; 1st Dim. [0] or last occurence in 2nd Dim.[all other values] (default 0)
; optional $DESCENDING: Sort ascending[0]/descending[1] (default 0)
; optional $REVERSE: Sort 2nd Dimension reverse to 1st Dimension (default False)
;
; Return Succes 0 ByRef 2-ary sorted Array
; Failure 1 set @error
; @error = 1 given array is not array
; @error = 2 given array has only 1 dimension
;
; Requirements By using numeric entry, be sure that type is "number" for correct sort
; Works with any occurences in 2nd Dimension
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _ArraySort_2ary(ByRef $ARRAY, $DIM_1ST=0, $DESCENDING=0, $REVERSE=False)
If ( Not IsArray($ARRAY) ) Then Return SetError(1,0,1)
Local $FIRST = 0, $LAST, $arOutFIRST, $sortYES = 0, $u, $i
Local $UBound2nd = UBound($ARRAY,2)
If @error = 2 Then Return SetError(2,0,1)
If $DIM_1ST <> 0 Then $DIM_1ST = $UBound2nd-1
Local $arTmp[1][$UBound2nd]
_ArraySort($ARRAY,$DESCENDING,0,0,$DIM_1ST)
If $REVERSE Then
Switch $DESCENDING
Case 0
$DESCENDING = 1
Case 1
$DESCENDING = 0
EndSwitch
EndIf
For $u = 0 To $UBound2nd-1
For $i = 0 To UBound($ARRAY)-1
If $sortYES = 0 Then
If $u > 0 Then
If ( $i < UBound($ARRAY)-1 ) And ( $ARRAY[$i][$u] = $ARRAY[$i+1][$u] ) And _
( $ARRAY[$i][$u-1] = $ARRAY[$i+1][$u-1] )Then
$sortYES = 1
$FIRST = $i
EndIf
Else
If ( $i < UBound($ARRAY)-1 ) And ( $ARRAY[$i][$u] = $ARRAY[$i+1][$u] ) Then
$sortYES = 1
$FIRST = $i
EndIf
EndIf
ElseIf $sortYES = 1 Then
If ( $i = UBound($ARRAY)-1 ) Or ( $ARRAY[$i][$u] <> $ARRAY[$i+1][$u] ) Then
$sortYES = 0
$LAST = $i +1
ReDim $arTmp[$LAST-$FIRST][$UBound2nd]
$arOutFIRST = $FIRST
For $k = 0 To UBound($arTmp)-1
For $l = 0 To $UBound2nd-1
$arTmp[$k][$l] = $ARRAY[$arOutFIRST][$l]
Next
$arOutFIRST += 1
Next
$arOutFIRST = $FIRST
Switch $DIM_1ST
Case 0
If $u = $UBound2nd-1 Then
_ArraySort($arTmp,$DESCENDING,0,0,$UBound2nd-1)
Else
_ArraySort($arTmp,$DESCENDING,0,0,$u+1)
EndIf
For $k = 0 To UBound($arTmp)-1
For $l = 1 To $UBound2nd-1
$ARRAY[$arOutFIRST][$l] = $arTmp[$k][$l]
Next
$arOutFIRST += 1
Next
Case $UBound2nd-1
If $u = $UBound2nd-1 Then
_ArraySort($arTmp,$DESCENDING,0,0,0)
Else
_ArraySort($arTmp,$DESCENDING,0,0,$UBound2nd-1-$u-1)
EndIf
For $k = 0 To UBound($arTmp)-1
For $l = 0 To $UBound2nd-2
$ARRAY[$arOutFIRST][$l] = $arTmp[$k][$l]
Next
$arOutFIRST += 1
Next
EndSwitch
EndIf
EndIf
Next
$sortYES = 0
Next
Return 0
EndFunc ;==>_ArraySort_2ary
#cs s. Bemerkungen in Funktionsliste
;==================================================================================================
; Function Name: _Array2DSortFree($ARRAY, $sCOL_ASC [, $NUM=False])
; Description:: Sortierung von 1D/2D-Arrays nach freier Wahl
; 1D Sortierung Auf- oder Absteigend
; 2D mehrstufige Sortierung, Reihenfolge und Sortier-
; richtung (je Spalte) frei wählbar
; auch einzelne Spalte sortierbar
; Parameter(s): $ARRAY Das zu sortierende Array
; $sCOL_ASC String mit Sortierangaben "Spalte|Richtung [, Spalte|Richtung]"
; zu sortierende Spalte (0-Index)|Richtung (0-Asc, 1-Desc)
; z.B. Spalte 2 aufsteigend und in 2 absteigend Spalte 1
; _Array2DSortFree($ar2Sort, '1|0,0|1')
; optional $NUM "False" sortiert alphabetisch (Standard), "True" sortiert numerisch
; Return Value(s): Erfolg 0
; Fehler 1 Set Error 1 $ARRAY ist kein Array
; 2 1D-Array, aber Spaltenangabe für 2D
; 3 SQL-Fehler
; 4 Angaben für Spalte|Sortierrichtung fehlerhaft
; Requirements: #include <SQLite.au3>
; #include <SQLite.dll.au3>
; #include <Array.au3>
; Note: Es ist dringend erforderlich, die SQLite-Includes am Beginn des aufrufenden
; Skriptes auszuführen. Anderenfalls schlägt die Initialisierung der SQLite.dll
; durch _SQLite_Startup() fehl.
; Version: 3.2.12.0
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _Array2DSortFree(ByRef $ARRAY, $sCOL_ASC, $NUM=False)
If Not IsArray($ARRAY) Then Return SetError(1,0,1)
Local $tableStr = "CREATE TABLE tblTEST ("
Local $insertStr = '', $insertBase = "INSERT INTO tblTEST VALUES ("
Local $sortOrder = '', $sortStr = "SELECT * FROM tblTEST ORDER BY "
Local $hQuery, $aRow, $asc, $i, $k
$sCOL_ASC = StringStripWS($sCOL_ASC,
Local $ub2nd = UBound($ARRAY, 2)
If @error = 2 Then
If (StringLen($sCOL_ASC) > 3) Or (StringLeft($sCOL_ASC, 1) <> '0') Then Return SetError(2,0,1)
If StringRight($sCOL_ASC, 1) = 0 Then
_ArraySort($ARRAY)
Else
_ArraySort($ARRAY, 1)
EndIf
Return 0
Else
Local $aOut[UBound($ARRAY)][$ub2nd]
EndIf
_SQLite_Startup ()
If @error > 0 Then Return SetError(3,0,1)
$hSQL = _SQLite_Open ()
If @error > 0 Then
_SQLite_Shutdown ()
Return SetError(3,0,1)
EndIf
For $i = 0 To UBound($ARRAY, 2) -1
$tableStr &= "'field" & $i & "',"
Next
$tableStr = StringTrimRight($tableStr, 1) & ");"
For $i = 0 To UBound($ARRAY) -1
$insertStr &= $insertBase
For $k = 0 To UBound($ARRAY, 2) -1
$insertStr &= "'" & $ARRAY[$i][$k] & "',"
Next
$insertStr = StringTrimRight($insertStr, 1) & ");"
Next
If _SQLite_Exec ( $hSQL, $tableStr & $insertStr ) <> $SQLITE_OK Then
_SQLite_Shutdown ()
Return SetError(3,0,1)
EndIf
If StringInStr($sCOL_ASC, ',') Then
Local $aOrder = StringSplit($sCOL_ASC, ',')
For $i = 1 To UBound($aOrder) -1
If StringInStr($sCOL_ASC, '|') Then
Local $var = StringSplit($aOrder[$i], '|')
$asc = ' ASC'
If $var[2] = 1 Then $asc = ' DESC'
If $NUM Then
$sortOrder &= 'ABS(field' & $var[1] & ')' & $asc & ','
Else
$sortOrder &= 'field' & $var[1] & $asc & ','
EndIf
Else
_SQLite_Shutdown ()
Return SetError(4,0,1)
EndIf
Next
$sortOrder = StringTrimRight($sortOrder, 1) & ';'
Else
If (StringLen($sCOL_ASC) = 3) And (StringInStr($sCOL_ASC, '|')) Then
Local $var = StringSplit($sCOL_ASC, '|')
$asc = ' ASC'
If $var[2] = 1 Then $asc = ' DESC'
If $NUM Then
$sortOrder &= 'ABS(field' & $var[1] & ')' & $asc
Else
$sortOrder &= 'field' & $var[1] & $asc
EndIf
Else
_SQLite_Shutdown ()
Return SetError(4,0,1)
EndIf
EndIf
If _SQlite_Query (-1, $sortStr & $sortOrder, $hQuery) <> $SQLITE_OK Then
_SQLite_Shutdown ()
Return SetError(3,0,1)
EndIf
$i = 0
While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK
For $k = 0 To UBound($ARRAY,2) -1
$ARRAY[$i][$k] = $aRow[$k]
Next
$i += 1
WEnd
_SQLite_Exec ($hSQL, "DROP TABLE tblTEST;")
_SQLite_Close ()
_SQLite_Shutdown ()
Return 0
EndFunc ;==>_Array2DSortFree
#ce
;----------------------------------------------------------------------------------------------------------------------
; Function _Array2DSortByLen(ByRef $ARRAY [, $iDESCENDING=0])
;
; Description - Sorts an 1D/2D Array by Length.
; - BaseIndex is 0; sorts the whole array.
;
; Parameter $ARRAY: Array to sort
; optional $iDESCENDING: Sort ascending[0]/descending[1] (default 0)
;
; Return Succes 0 ByRef sorted Array by Length
; Failure 1 set @error = 1; no array
;
; Requirements Func _ArraySort_2ary()
; #include <array.au3>
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DSortByLen(ByRef $ARRAY, $iDESCENDING=0)
If ( Not IsArray($ARRAY) ) Then Return SetError(1,0,1)
If $iDESCENDING <> 0 Then $iDESCENDING = 1
Local $i, $k
Local $UBound2nd = UBound($ARRAY,2)
Local $arTmp[1] = ['']
If @error = 2 Then
ReDim $arTmp[UBound($ARRAY)][2]
For $i = 0 To UBound($ARRAY)-1
$arTmp[$i][0] = StringLen($ARRAY[$i])
$arTmp[$i][1] = $ARRAY[$i]
$ARRAY[$i] = ''
Next
_ArraySort($arTmp,$iDESCENDING,0,0,0)
For $i = 0 To UBound($arTmp)-1
$ARRAY[$i] = $arTmp[$i][1]
Next
Else
ReDim $arTmp[UBound($ARRAY)][$UBound2nd+1]
For $i = 0 To UBound($ARRAY)-1
For $k = 0 To $UBound2nd-1
$arTmp[$i][$k] = StringLen($ARRAY[$i][$k])
Next
$arTmp[$i][$UBound2nd] = $i
Next
_ArraySort_2ary($arTmp, 0, $iDESCENDING)
For $i = 0 To UBound($arTmp)-1
For $k = 0 To $UBound2nd-1
$arTmp[$i][$k] = $ARRAY[$arTmp[$i][$UBound2nd]][$k]
Next
Next
ReDim $arTmp[UBound($ARRAY)][$UBound2nd]
$ARRAY = $arTmp
EndIf
Return 0
EndFunc ;==>_ArraySortByLen;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Function _Array2DDblDel(ByRef $ARRAY [, $CASESENS=0])
;
; Description - From an 1D/2D Array will delete double entries (2D -> combination by '[n][0]' to '[n][x]').
; - Autodetection 1D/2D Array
; - By using string, you can choose case sensitivity.
;
; Parameter $ARRAY: Array to delete double
; optional $CASESENS: Case sensitivity off[0] or on[1] (default 0)
;
; Return Succes Count of doubles
; ByRef Array without doubles
; Failure 1 and set @error = 1; no array
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DDblDel(ByRef $ARRAY, $CASESENS=0)
Local $arTmp[1] = [''], $dbl = 0, $count = 0, $x, $l, $val, $valTmp, $i, $k, $sDelim = Chr(1)
If ( Not IsArray($ARRAY) ) Then Return SetError(1,0,1)
Local $Ubound2nd = UBound($ARRAY,2)
If @error = 2 Then
For $i = 0 To UBound($ARRAY)-1
$dbl = 0
For $k = 0 To UBound($arTmp)-1
Switch $CASESENS
Case 0
If $arTmp[$k] = $ARRAY[$i] Then
$dbl = 1
$count += 1
EndIf
Case 1
If $arTmp[$k] == $ARRAY[$i] Then
$dbl = 1
$count += 1
EndIf
EndSwitch
Next
If $dbl = 0 Then
If $arTmp[0] = "" Then
$arTmp[0] = $ARRAY[$i]
Else
ReDim $arTmp[UBound($arTmp)+1]
$arTmp[UBound($arTmp)-1] = $ARRAY[$i]
EndIf
Else
$dbl = 0
EndIf
Next
Else
ReDim $arTmp[UBound($ARRAY)][$Ubound2nd]
Local $indexNew = -1
For $i = 0 To UBound($ARRAY)-1
$dbl = 0
$val = ''
$valTmp = ''
For $l = 0 To $Ubound2nd-1
$val &= $ARRAY[$i][$l] & $sDelim
Next
If $indexNew > -1 Then
For $k = 0 To $indexNew
For $l = 0 To $Ubound2nd-1
$valTmp &= $arTmp[$k][$l] & $sDelim
Next
Switch $CASESENS
Case 0
If $valTmp = $val Then
$dbl = 1
$count += 1
EndIf
Case 1
If $valTmp == $val Then
$dbl = 1
$count += 1
EndIf
EndSwitch
$valTmp = ''
Next
EndIf
If $dbl = 0 Then
$indexNew += 1
For $l = 0 To $Ubound2nd-1
$arTmp[$indexNew][$l] = $ARRAY[$i][$l]
Next
Else
$dbl = 0
EndIf
Next
ReDim $arTmp[$indexNew+1][$Ubound2nd]
EndIf
$ARRAY = $arTmp
Return $count
EndFunc ; ==>_ArrayDblDel;------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;
; Function _Array2DAdd(ByRef $avArray, $sValue='')
;
; Description Redim Array Size and add an Array element at last position
; Works with any occurences in 2nd Dimension
; Works also with 1D-Array
;
; Parameter $avArray Given Array
; optional $sValue Value of new Element, parts must be seperate with '|'
;
; Return Succes 0
; Failure 1 and set @error
; @error = 1 given array is not array
; @error = 2 given parts of Element too less/much
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;------------------------------------------------------------------------------------------------------------
Func _Array2DAdd(ByRef $avArray, $sValue='')
If ( Not IsArray($avArray) ) Then Return SetError(1,0,1)
Local $UBound2nd = UBound($avArray,2)
If @error = 2 Then
ReDim $avArray[UBound($avArray)+1]
$avArray[UBound($avArray)-1] = $sValue
Else
Local $arValue
ReDim $avArray[UBound($avArray)+1][$UBound2nd]
If $sValue = '' Then
For $i = 0 To $UBound2nd-2
$sValue &= '|'
Next
EndIf
$arValue = StringSplit($sValue, '|')
If $arValue[0] <> $UBound2nd Then
SetError(2)
Return 0
EndIf
For $i = 0 To $UBound2nd-1
$avArray[UBound($avArray)-1][$i] = $arValue[$i+1]
Next
EndIf
Return 0
EndFunc ;==>_Array2DAdd;------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;
; Function _Array2DInsert(ByRef $avArray, $iElement [, $sValue=''])
;
; Description Insert an Array element on a given position
; Works with any occurences in 2nd Dimension
; Works also with 1D-Array
;
; Parameter $avArray Given Array
; $iElement 0-based Array Index, to insert new Element
; optional $sValue Value of new Element, parts must be seperate with '|'
;
; Return Succes 0
; Failure 1 set @error
; @error = 1 given array is not array
; @error = 2 given parts of Element too less/much
; @error = 3 $iElement larger then Ubound
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;------------------------------------------------------------------------------------------------------------
Func _Array2DInsert(ByRef $avArray, $iElement, $sValue='')
If ( Not IsArray($avArray) ) Then Return SetError(1,0,1)
Local $UBound2nd = UBound($avArray,2)
If @error = 2 Then
Local $arTMP[UBound($avArray)+1]
If $iElement > UBound($avArray) Then Return SetError(3,0,1)
For $i = 0 To UBound($arTMP)-1
If $i < $iElement Then
$arTMP[$i] = $avArray[$i]
ElseIf $i = $iElement Then
If $i < UBound($avArray) Then
$arTMP[$i] = $sValue
$arTMP[$i+1] = $avArray[$i]
Else
$arTMP[$i] = $sValue
EndIf
ElseIf ($i > $iElement) And ($i < UBound($avArray))Then
$arTMP[$i+1] = $avArray[$i]
EndIf
Next
Else
Local $arTMP[UBound($avArray)+1][$UBound2nd], $arValue
If $sValue = '' Then
For $i = 0 To $UBound2nd-2
$sValue &= '|'
Next
EndIf
$arValue = StringSplit($sValue, '|')
If $arValue[0] <> $UBound2nd Then Return SetError(2,0,1)
If $iElement > UBound($avArray) Then Return SetError(3,0,1)
For $i = 0 To UBound($arTMP)-1
If $i < $iElement Then
For $k = 0 To $UBound2nd-1
$arTMP[$i][$k] = $avArray[$i][$k]
Next
ElseIf $i = $iElement Then
If $i < UBound($avArray) Then
For $k = 0 To $UBound2nd-1
$arTMP[$i][$k] = $arValue[$k+1]
$arTMP[$i+1][$k] = $avArray[$i][$k]
Next
Else
For $k = 0 To $UBound2nd-1
$arTMP[$i][$k] = $arValue[$k+1]
Next
EndIf
ElseIf ($i > $iElement) And ($i < UBound($avArray))Then
For $k = 0 To $UBound2nd-1
$arTMP[$i+1][$k] = $avArray[$i][$k]
Next
EndIf
Next
EndIf
$avArray = $arTMP
Return 0
EndFunc ;==>_Array2DInsert;------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Funktion _Array2DSplit(ByRef $AR_SOURCE, ByRef $AR_TARGET, $iFROM=-1 [, $ANZ=-1])
;
; Beschreibung Splittet ein 1D/2D Array ab Indexposition, optional wird Anzahl Einträge ausgelagert
;
; Parameter $AR_SOURCE Array mit Ausgangsdaten
; $AR_TARGET Array mit abgesplitteten Daten
; $iFROM Index ab dem gesplittet wird
; optional $ANZ Anzahl Elemente, die abgesplittet werden sollen
;
; Rückgabe Erfolg 0
; Fehler 1 @error = 1 Ausgangsvariablen sind keine Arrays
; @error = 2 kein Startindex oder Index außerhalb Bereich
;
; Autor BugFix ([email='bugfix@autoit.de'][/email])
;------------------------------------------------------------------------------------------------------------
Func _Array2DSplit(ByRef $AR_SOURCE, ByRef $AR_TARGET, $iFROM=-1, $ANZ=-1)
If ( Not IsArray($AR_SOURCE) ) Or ( Not IsArray($AR_TARGET) ) Then Return SetError(1,0,1)
If $ANZ = -1 Then $ANZ = UBound($AR_SOURCE)-$iFROM
If ( $iFROM < 0 ) Or ( $iFROM > UBound($AR_SOURCE)-1 ) Or ( $ANZ < 1 ) Or ( $ANZ > (UBound($AR_SOURCE)-$iFROM) ) Then Return SetError(2,0,1)
Local $i, $j, $k
Local $UBound2nd = UBound($AR_SOURCE,2)
If @error = 2 Then
Local $arTMP[UBound($AR_SOURCE)-$ANZ]
ReDim $AR_TARGET[$ANZ]
For $k = 0 To $iFROM-1
$arTMP[$k] = $AR_SOURCE[$k]
Next
$j = 0
For $i = $iFROM To $iFROM+$ANZ-1
$AR_TARGET[$j] = $AR_SOURCE[$i]
$j += 1
Next
For $i = $iFROM+$ANZ To UBound($AR_SOURCE)-1
$arTMP[$k] = $AR_SOURCE[$i]
$k +=1
Next
$AR_SOURCE = $arTMP
Return 0
Else
Local $arTMP[UBound($AR_SOURCE)-$ANZ][$UBound2nd]
ReDim $AR_TARGET[$ANZ][$UBound2nd]
For $k = 0 To $iFROM-1
For $i = 0 To $UBound2nd-1
$arTMP[$k][$i] = $AR_SOURCE[$k][$i]
Next
Next
$j = 0
For $i = $iFROM To $iFROM+$ANZ-1
For $l = 0 To $UBound2nd-1
$AR_TARGET[$j][$l] = $AR_SOURCE[$i][$l]
Next
$j += 1
Next
For $i = $iFROM+$ANZ To UBound($AR_SOURCE)-1
For $l = 0 To $UBound2nd-1
$arTMP[$k][$l] = $AR_SOURCE[$i][$l]
Next
$k +=1
Next
$AR_SOURCE = $arTMP
Return 0
EndIf
EndFunc ;==>_Array2DSplit;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Function _Array2DEmptyDel(ByRef $avArray [, $Col=0])
;
; Description Delete empty Array elements
; Delete all emty Rows or all empty Columns
; Works also with 1D-Array (only Rows)
;
; Parameter $avArray Given Array
; optional $Col set 1 to delete empty Columns; default is 0 to delete empty Rows
;
; Return Succes 0 ByRef the given Array without empty Elements, resized
; Failure 1 and set @error = 1
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DEmptyDel(ByRef $avArray, $Col=0)
If ( Not IsArray($avArray) ) Then Return SetError(1,0,1)
Local $i, $k, $notEmpty
Local $UBound2nd = UBound($avArray,2)
If @error = 2 Then
Local $arTMP[UBound($avArray)], $indexNew = -1
For $i = 0 To UBound($avArray)-1
If $avArray[$i] <> '' Then
$indexNew += 1
$arTMP[$indexNew] = $avArray[$i]
EndIf
Next
ReDim $arTMP[$indexNew+1]
Else
If $Col = 0 Then
Local $arTMP[1][$UBound2nd], $val, $len
For $i = 0 To UBound($avArray)-1
$val = ''
For $k = 0 To $UBound2nd-1
$val &= $avArray[$i][$k]
Next
If $val <> 0 Then
$len = 0
For $k = 0 To UBound($arTMP,2)-1
$len &= StringLen($arTMP[UBound($arTMP)-1][$k])
Next
If $len = 0 Then
For $k = 0 To $UBound2nd-1
$arTMP[UBound($arTMP)-1][$k] = $avArray[$i][$k]
Next
Else
ReDim $arTMP[UBound($arTMP)+1][$UBound2nd]
For $k = 0 To $UBound2nd-1
$arTMP[UBound($arTMP)-1][$k] = $avArray[$i][$k]
Next
EndIf
EndIf
Next
Else
Local $arTMP[UBound($avArray)][1], $val, $len
For $k = 0 To $UBound2nd-1
$val = ''
$notEmpty = 0
For $i = 0 To UBound($avArray)-1
$val &= $avArray[$i][$k]
If $val <> '' Then
$notEmpty = 1
ExitLoop
EndIf
Next
If $notEmpty = 1 Then
$len = 0
For $i = 0 To UBound($arTMP)-1
$len &= StringLen($arTMP[$i][UBound($arTMP,2)-1])
Next
If $len = 0 Then
For $i = 0 To UBound($avArray)-1
$arTMP[$i][0] = $avArray[$i][$k]
Next
Else
ReDim $arTMP[UBound($avArray)][UBound($arTMP,2)+1]
For $i = 0 To UBound($avArray)-1
$arTMP[$i][UBound($arTMP,2)-1] = $avArray[$i][$k]
Next
EndIf
EndIf
Next
EndIf
EndIf
$avArray = $arTMP
Return 0
EndFunc ;==>_Array2DEmptyDel;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Fuction _Array2DJoin(ByRef $ARRAY, ByRef $AR2JOIN)
;
; Description Join 2 Arrays, 1D/2D can be mixed
;
; Parameter $ARRAY 1st array, will be joined with 2nd
; $AR2JOIN 2nd array
;
; Return Succes 0 ByRef $ARRAY
; Failure 1 set @error = 1; given array(s) are not array
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DJoin(ByRef $ARRAY, ByRef $AR2JOIN)
If ( Not IsArray($ARRAY) ) Or ( Not IsArray($AR2JOIN) ) Then Return SetError(1,0,1)
Local $UB2ndAR = UBound($ARRAY,2), $i, $k
If @error = 2 Then $UB2ndAR = 0
Local $UB2nd2JOIN = UBound($AR2JOIN,2)
If @error = 2 Then $UB2nd2JOIN = 0
Select
Case $UB2ndAR = 0 And $UB2nd2JOIN = 0
For $i = 0 To UBound($AR2JOIN)-1
ReDim $ARRAY[UBound($ARRAY)+1]
$ARRAY[UBound($ARRAY)-1] = $AR2JOIN[$i]
Next
Return -1
Case $UB2ndAR > 0 And $UB2nd2JOIN = 0
Local $arTmp = $AR2JOIN
ReDim $AR2JOIN[UBound($AR2JOIN)][$UB2ndAR]
For $i = 0 To UBound($arTmp)-1
$AR2JOIN[$i][0] = $arTmp[$i]
Next
Case $UB2ndAR = 0 And $UB2nd2JOIN > 0
Local $arTmp = $ARRAY
ReDim $ARRAY[UBound($ARRAY)][$UB2nd2JOIN]
For $i = 0 To UBound($arTmp)-1
$ARRAY[$i][0] = $arTmp[$i]
Next
Case $UB2ndAR > 0 And $UB2nd2JOIN > 0
Select
Case $UB2ndAR < $UB2nd2JOIN
ReDim $ARRAY[UBound($ARRAY)][$UB2nd2JOIN]
Case $UB2ndAR > $UB2nd2JOIN
ReDim $AR2JOIN[UBound($AR2JOIN)][$UB2ndAR]
EndSelect
EndSelect
For $i = 0 To UBound($AR2JOIN)-1
ReDim $ARRAY[UBound($ARRAY)+1][UBound($ARRAY,2)]
For $k = 0 To UBound($AR2JOIN,2)-1
$ARRAY[UBound($ARRAY)-1][$k] = $AR2JOIN[$i][$k]
Next
Next
Return 0
EndFunc ;==>_Array2DJoin;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Fuction _Array2DDelete(ByRef $ARRAY, $iDEL, $bCOL=False)
;
; Description Delete one row on a given index in an 1D/2D -Array
;
; Parameter $ARRAY the array, where one row will deleted
; $iDEL Row(Column)-Index to delete
; $bCOL If True, delete column instead of row (default False)
;
; Return Succes 0 ByRef $ARRAY
; Failure 1 set @error = 1; given array are not array
; set @error = 2; want delete column, but not 2D-array
; set @error = 3; index is out of range
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DDelete(ByRef $ARRAY, $iDEL, $bCOL=False)
If ( Not IsArray($ARRAY) ) Then Return SetError(1,0,1)
Local $UBound2nd = UBound($ARRAY,2), $k
If $bCOL Then
If $UBound2nd = 0 Then Return SetError(2,0,1)
If ( $iDEL < 0 ) Or ( $iDEL > $UBound2nd-1 ) Then Return SetError(3,0,1)
Else
If ( $iDEL < 0 ) Or ( $iDEL > UBound($ARRAY)-1 ) Then Return SetError(3,0,1)
EndIf
If $UBound2nd = 0 Then
Local $arTmp[UBound($ARRAY)-1]
$k = 0
For $i = 0 To UBound($ARRAY)-1
If $i <> $iDEL Then
$arTmp[$k] = $ARRAY[$i]
$k += 1
EndIf
Next
Else
If $bCOL Then
Local $arTmp[UBound($ARRAY)][$UBound2nd-1]
For $i = 0 To UBound($ARRAY)-1
$k = 0
For $l = 0 To $UBound2nd-1
If $l <> $iDEL Then
$arTmp[$i][$k] = $ARRAY[$i][$l]
$k += 1
EndIf
Next
Next
Else
Local $arTmp[UBound($ARRAY)-1][$UBound2nd]
$k = 0
For $i = 0 To UBound($ARRAY)-1
If $i <> $iDEL Then
For $l = 0 To $UBound2nd-1
$arTmp[$k][$l] = $ARRAY[$i][$l]
Next
$k += 1
EndIf
Next
EndIf
EndIf
$ARRAY = $arTmp
Return 0
EndFunc ;==>_Array2DDelete;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
;
; Function _Array2DSearch(ByRef $avArray, $vWhat2Find [, $iDim=-1 [, $iStart=0 [, $iEnd=0 [, $iCaseSense=0 [, $fPartialSearch=False [, $1stFound=False]]]]]])
;
; Description Finds all Entry's like $vWhat2Find in an 1D/2D Array
; Works with all occurences in 2nd Dimension
; Search in all occurences or only in a given column
; To set numeric values for default, you can use -1
;
; Parameter $avArray The array to search
; $vWhat2Find What to search $avArray for
; optional $iDim Index of Dimension to search; default -1 (all)
; optional $iStart Start array index for search; default 0
; optional $iEnd End array index for search; default 0
; optional $iCaseSense If set to 1 then search is case sensitive; default 0
; optional $fPartialSearch If set to True then executes a partial search. default False
; optional $1stFound If set to True, only one match will be searched; default False
;
; Return Succes Array with Index of matches, Array[0] includes the count of matches
; In an 2D Array you got for every match [iRow|iCol]
; Array[0] = 0 if no element found
; If option 1stFound is set, Array[0] = FoundIndex; if no element found Array[0] = -1
; Failure 1 and set @error
; @error = 1 given array is not array
; @error = 2 given dim is out of range
; @error = 4 $iStart is out of range
; @error = 8 $iEnd is out of range
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DSearch(ByRef $avArray, $vWhat2Find, $iDim=-1, $iStart=0, $iEnd=0, $iCaseSense=0, $fPartialSearch=False, $1stFound=False)
Local $error = 0, $1D, $arFound[1]=[0], $i, $k
If $1stFound Then $arFound[0] = -1
If ( Not IsArray($avArray) ) Then Return SetError(1,0,1)
Local $UBound2nd = UBound($avArray,2)
If @error = 2 Then $1D = True
If ( $iEnd = 0 ) Or ( $iEnd = -1 ) Then $iEnd = UBound($avArray)-1
If $iStart = -1 Then $iStart = 0
If $iCaseSense = -1 Then $iCaseSense = 0
If $iCaseSense <> 0 Then $iCaseSense = 1
Select
Case ( $iDim > $UBound2nd ) Or ( $iDim < -1 )
$error += 2
Case ( $iStart < 0 ) Or ( $iStart > UBound($avArray)-1 )
$error += 4
Case ( $iEnd < $iStart ) Or ( $iEnd > UBound($avArray)-1 )
$error += 8
EndSelect
If $error <> 0 Then Return SetError($error,0,1)
If $fPartialSearch <> True Then $fPartialSearch = False
If $1D Then
For $i = $iStart To $iEnd
Select
Case $iCaseSense = 0 And (Not $fPartialSearch)
If $avArray[$i] = $vWhat2Find Then
If $1stFound Then
$arFound[0] = $i
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i
$arFound[0] += 1
EndIf
EndIf
Case $iCaseSense = 1 And (Not $fPartialSearch)
If $avArray[$i] == $vWhat2Find Then
If $1stFound Then
$arFound[0] = $i
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i
$arFound[0] += 1
EndIf
EndIf
Case $iCaseSense = 0 And $fPartialSearch
If StringInStr($avArray[$i], $vWhat2Find) Then
If $1stFound Then
$arFound[0] = $i
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i
$arFound[0] += 1
EndIf
EndIf
Case $iCaseSense = 1 And $fPartialSearch
If StringInStr($avArray[$i], $vWhat2Find, 1) Then
If $1stFound Then
$arFound[0] = $i
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i
$arFound[0] += 1
EndIf
EndIf
EndSelect
Next
Else
For $i = $iStart To $iEnd
If $iDim = -1 Then
Select
Case $iCaseSense = 0 And (Not $fPartialSearch)
For $k = 0 To $UBound2nd-1
If $avArray[$i][$k] = $vWhat2Find Then
If $1stFound Then
$arFound[0] = $i & '|' & $k
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $k
$arFound[0] += 1
EndIf
EndIf
Next
Case $iCaseSense = 1 And (Not $fPartialSearch)
For $k = 0 To $UBound2nd-1
If $avArray[$i][$k] == $vWhat2Find Then
If $1stFound Then
$arFound[0] = $i & '|' & $k
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $k
$arFound[0] += 1
EndIf
EndIf
Next
Case $iCaseSense = 0 And $fPartialSearch
For $k = 0 To $UBound2nd-1
If StringInStr($avArray[$i][$k], $vWhat2Find) Then
If $1stFound Then
$arFound[0] = $i & '|' & $k
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $k
$arFound[0] += 1
EndIf
EndIf
Next
Case $iCaseSense = 1 And $fPartialSearch
For $k = 0 To $UBound2nd-1
If StringInStr($avArray[$i][$k], $vWhat2Find, 1) Then
If $1stFound Then
$arFound[0] = $i & '|' & $k
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $k
$arFound[0] += 1
EndIf
EndIf
Next
EndSelect
Else
Select
Case $iCaseSense = 0 And (Not $fPartialSearch)
If $avArray[$i][$iDim] = $vWhat2Find Then
If $1stFound Then
$arFound[0] = $i & '|' & $iDim
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $iDim
$arFound[0] += 1
EndIf
EndIf
Case $iCaseSense = 1 And (Not $fPartialSearch)
If $avArray[$i][$iDim] == $vWhat2Find Then
If $1stFound Then
$arFound[0] = $i & '|' & $iDim
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $iDim
$arFound[0] += 1
EndIf
EndIf
Case $iCaseSense = 0 And $fPartialSearch
If StringInStr($avArray[$i][$iDim], $vWhat2Find) Then
If $1stFound Then
$arFound[0] = $i & '|' & $iDim
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $iDim
$arFound[0] += 1
EndIf
EndIf
Case $iCaseSense = 1 And $fPartialSearch
If StringInStr($avArray[$i][$iDim], $vWhat2Find, 1) Then
If $1stFound Then
$arFound[0] = $i & '|' & $iDim
Return $arFound
Else
ReDim $arFound[UBound($arFound)+1]
$arFound[UBound($arFound)-1] = $i & '|' & $iDim
$arFound[0] += 1
EndIf
EndIf
EndSelect
EndIf
Next
EndIf
Return $arFound
EndFunc ;==>_Array2DSearch;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Function _Array2DMirror(ByRef $ARRAY)
;
; Description In an array will mirrored rows and columns.
; Row will be column and contrary.
; Works with any occurences in 2nd Dimension (parent array)
;
; Parameter $ARRAY 2D-Array
;
; Return Succes 0 rows and columns are mirrored
; Failure 1 and set @error
; @error = 1 given array is not array
; @error = 2 given array has'nt 2 dimensions
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DMirror(ByRef $ARRAY)
If ( Not IsArray($ARRAY) ) Then Return SetError(1,0,1)
Local $i, $k
Local $UBound2nd = UBound($ARRAY,2)
If @error = 2 Then Return SetError(2,0,1)
Local $arTMP[$UBound2nd][UBound($ARRAY)]
For $i = 0 To UBound($ARRAY) -1
For $k = 0 To UBound($ARRAY,2) -1
$arTMP[$k][$i] = $ARRAY[$i][$k]
Next
Next
$ARRAY = $arTMP
Return 0
EndFunc ;==>_Array2DMirror;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Function _SubArray2DGetEntry(ByRef $ARRAY, $SubRow, $ParentRow [, $SubCol=-1 [, $ParentCol=-1])
;
; Description For Array with Array as entry you got the determined entry
; Works with any occurences in 2nd Dimension (parent array and sub-array too)
; Works also with 1D-Array
;
; Parameter $ARRAY Given array with array as entrys
; $SubRow 0-based row -index of the entry inside the sub-array, you want to got
; $ParentRow 0-based row -index of parent-array
; optional $SubCol 0-based column -index of sub-array, (if exists)
; optional $ParentCol 0-based column -index of parent-array, (if exists)
;
; Return Succes value from determined sub-array
; Failure 1 and set @error
; @error = 1 given array is not array
; @error = 2 row -index for parent-array out of range
; @error = 3 col -index for parent-array out of range
; @error = 4 col -index for parent-array is given, but array is 1D
; @error = 5 row -index for sub-array out of range
; @error = 6 col -index for sub-array out of range
; @error = 7 col -index for sub-array is given, but array is 1D
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _SubArray2DGetEntry(ByRef $ARRAY, $SubRow, $ParentRow, $SubCol=-1, $ParentCol=-1)
If (Not IsArray($ARRAY)) Then Return SetError(1,0,1)
If ($ParentRow < 0) Or ($ParentRow > UBound($ARRAY)-1) Then Return SetError(2,0,1)
Local $Ub2ndParent = UBound($ARRAY, 2)
If @error Then
If $ParentCol <> -1 Then Return SetError(4,0,1)
ElseIf ($ParentCol < -1) Or ($ParentCol > $Ub2ndParent-1) Then
Return SetError(3,0,1)
EndIf
Switch $ParentCol
Case -1
Local $arSub = $ARRAY[$ParentRow]
Case Else
Local $arSub = $ARRAY[$ParentRow][$ParentCol]
EndSwitch
If ($SubRow < 0) Or ($SubRow > UBound($arSub)-1) Then Return SetError(5,0,1)
Local $Ub2ndSub = UBound($arSub, 2)
If @error Then
If $SubCol <> -1 Then
Return SetError(7,0,1)
Else
Return $arSub[$SubRow]
EndIf
Else
If ($SubCol < 0) Or ($SubCol > $Ub2ndSub) Then
Return SetError(6,0,1)
Else
Return $arSub[$SubRow][$SubCol]
EndIf
EndIf
EndFunc ;==>_SubArray2DGetEntry;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Function _SubArray2DSetEntry(ByRef $ARRAY, $Entry, $SubRow, $ParentRow [, $SubCol=-1 [, $ParentCol=-1])
;
; Description For Array with Array as entry you set the determined entry
; Works with any occurences in 2nd Dimension (parent array and sub-array too)
; Works also with 1D-Array
;
; Parameter $ARRAY Given array with array as entrys
; $Entry Value you want to set in the sub-array
; $SubRow 0-based row -index of the entry inside the sub-array, you want to set
; $ParentRow 0-based row -index of parent-array
; optional $SubCol 0-based column -index of sub-array, (if exists)
; optional $ParentCol 0-based column -index of parent-array, (if exists)
;
; Return Succes 0 value is set
; Failure 1 and set @error
; @error = 1 given array is not array
; @error = 2 row -index for parent-array out of range
; @error = 3 col -index for parent-array out of range
; @error = 4 col -index for parent-array is given, but array is 1D
; @error = 5 row -index for sub-array out of range
; @error = 6 col -index for sub-array out of range
; @error = 7 col -index for sub-array is given, but array is 1D
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _SubArray2DSetEntry(ByRef $ARRAY, $Entry, $SubRow, $ParentRow, $SubCol=-1, $ParentCol=-1)
If (Not IsArray($ARRAY)) Then Return SetError(1,0,1)
If ($ParentRow < 0) Or ($ParentRow > UBound($ARRAY)-1) Then Return SetError(2,0,1)
Local $Ub2ndParent = UBound($ARRAY, 2)
If @error Then
If $ParentCol <> -1 Then Return SetError(4,0,1)
ElseIf ($ParentCol < -1) Or ($ParentCol > $Ub2ndParent-1) Then
Return SetError(3,0,1)
EndIf
Switch $ParentCol
Case -1
Local $arSub = $ARRAY[$ParentRow]
Case Else
Local $arSub = $ARRAY[$ParentRow][$ParentCol]
EndSwitch
If ($SubRow < 0) Or ($SubRow > UBound($arSub)-1) Then Return SetError(5,0,1)
Local $Ub2ndSub = UBound($arSub, 2)
If @error Then
If $SubCol <> -1 Then
Return SetError(7,0,1)
Else
$arSub[$SubRow] = $Entry
EndIf
Else
If ($SubCol < 0) Or ($SubCol > $Ub2ndSub) Then
Return SetError(6,0,1)
Else
$arSub[$SubRow][$SubCol] = $Entry
EndIf
EndIf
Switch $ParentCol
Case -1
$ARRAY[$ParentRow] = $arSub
Case Else
$ARRAY[$ParentRow][$ParentCol] = $arSub
EndSwitch
Return 0
EndFunc ;==>_SubArray2DSetEntry;----------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]
; Function _Array2DSortByCountSameEntries(ByRef $ARRAY [, $iCol=0 [, $DESCENDING=1]])
;
; Description - Sorts an 1D/2D Array by count of same entries (2D - in a given column)
; - Count de- or ascending
;
; Parameter $ARRAY: Array to sort
; optional $iCol: Column with same entries to sort (default 0)
; optional $DESCENDING: Sort ascending[0]/descending[1] (default 1)
;
; Return Success 0 sorted array
; Failure 1 @error = 1, given array is not array
;
; Requirements _ArraySort_2ary() with #include <array.au3>
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DSortByCountSameEntries(ByRef $ARRAY, $iCol=0, $DESCENDING=1)
If ( Not IsArray($ARRAY) ) Then Return SetError(1,0,1)
If $DESCENDING <> 1 Then $DESCENDING = 0
Local $UBound2nd = UBound($ARRAY,2)
If @error = 2 Then
Dim $aTMP[UBound($ARRAY)][2]
For $i = 0 To UBound($ARRAY)-1
$aTMP[$i][0] = 1
$aTMP[$i][1] = $ARRAY[$i]
Next
$k = 0
For $i = 0 To UBound($ARRAY)-1
If ($i > 0) And ($i < UBound($ARRAY)-1) Then
If $ARRAY[$i] <> $aTMP[$k][1] Then
For $x = $k To $i-1
$aTMP[$x][0] = $i-$k
Next
$k = $i
EndIf
ElseIf $i = UBound($ARRAY)-1 Then
If $ARRAY[$i] <> $aTMP[$k][1] Then
For $x = $k To $i-1
$aTMP[$x][0] = $i-$k
Next
$k = $i
Else
For $x = $k To $i
$aTMP[$x][0] = $i-$k+1
Next
EndIf
EndIf
Next
_ArraySort_2ary($aTMP, 0, $iCol, $DESCENDING)
For $i = 0 To UBound($ARRAY)-1
$ARRAY[$i] = $aTMP[$i][1]
Next
Else
Dim $aTMP = $ARRAY
ReDim $aTMP[UBound($ARRAY)][$UBound2nd+1]
For $i = 0 To UBound($ARRAY)-1
$aTMP[$i][$UBound2nd] = 1
Next
$k = 0
For $i = 0 To UBound($ARRAY)-1
If ($i > 0) And ($i < UBound($ARRAY)-1) Then
If $ARRAY[$i][$iCol] <> $aTMP[$k][$iCol] Then
For $x = $k To $i-1
$aTMP[$x][$UBound2nd] = $i-$k
Next
$k = $i
EndIf
ElseIf $i = UBound($ARRAY)-1 Then
If $ARRAY[$i][$iCol] <> $aTMP[$k][$iCol] Then
For $x = $k To $i-1
$aTMP[$x][$UBound2nd] = $i-$k
Next
$k = $i
Else
For $x = $k To $i
$aTMP[$x][$UBound2nd] = $i-$k+1
Next
EndIf
EndIf
Next
_ArraySort_2ary($aTMP, $UBound2nd, $iCol, $DESCENDING)
For $i = 0 To UBound($ARRAY)-1
For $k = 0 To $UBound2nd-1
$ARRAY[$i][$k] = $aTMP[$i][$k]
Next
Next
EndIf
Return 0
EndFunc ;==>_Array2DSortByCountSameEntries;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _Array2DPop($ARRAY)
; Description: Gibt das letzte Element eines 1D/2D-Arrays zurück und löscht dieses
; gleichzeitig vom Array
; Return: Erfolg: 1D = 1D-Array mit dem letzten Element
; 2D = 1D-Array mit jeweils einem Eintrag pro Spalte des letzten Elements
; Array[0] enthält die Anzahl der Elemente
; Fehler: Leerstring und @error = 1 ; Variable ist kein Array
; Author(s): Cephas <cephas at clergy dot net>
; Modified: BugFix ([email='bugfix@autoit.de'][/email]) ==> 2D-Anpassung
;
;===============================================================================
Func _Array2DPop(ByRef $ARRAY)
Local $LastValue = ''
Local $aOut[1], $UBound2nd = UBound($ARRAY,2)
If @error = 1 Then
Return SetError(1,0,'')
ElseIf @error = 2 Then
$UBound2nd = 1
$aOut[0] = $ARRAY[UBound($ARRAY) -1]
$LastValue = $aOut
Else
ReDim $aOut[$Ubound2nd+1]
$aOut[0] = 0
For $i = 0 To $Ubound2nd -1
$aOut[$i+1] = $ARRAY[UBound($ARRAY)-1][$i]
$aOut[0] += 1
Next
$LastValue = $aOut
EndIf
If UBound($ARRAY) = 1 Then
$ARRAY = ''
Else
If $UBound2nd = 1 Then
ReDim $ARRAY[UBound($ARRAY) -1]
Else
ReDim $ARRAY[UBound($ARRAY) -1][$UBound2nd]
EndIf
EndIf
Return $LastValue
EndFunc ;==>_Array2DPop;=====================================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Function Name: _Array2DPush($ARRAY, $Value [, $Direction=0])
; Description: Fügt einem Array Werte hinzu ohne die Arraygröße zu verändern.
; Werte können vom Ende (Standard) oder vom Anfang des Arrays zugefügt werden.
; Entsprechend der Anzahl der einzufügenden Werte wird eine gleiche Anzahl Elemente
; aus dem Array 'herausgeschoben' (ge-pusht)
; Parameter(s): $ARRAY - Array
; $Value - Der einzufügende Wert, oder mehrere Werte als Array
; $Direction - 0 = Linksseitiges Schieben (Einfügen vom Ende) (Standard)
; 1 = Rechtsseitiges Schieben (Einfügen vom Anfang)
; Requirement(s): None
; Return Value(s): On Success - Returns 0
; On Failure - 1 und SetError
; @error = 1 kein Array
; @error = 2 Einfügearray größer als Originalarray
; @error = 3 Einfügearray und Originalarray haben unterschiedliche Dimensionen @error = 4 $Value ist Einzelwert, 2D-Array erwartet
; @error = 5 $Value ist 1D-Array, 2D-Array erwartet
; Author(s): Helias Gerassimou(hgeras)
; Modified: BugFix ([email='bugfix@autoit.de'][/email]) ==> 2D-Anpassung
;
;======================================================================================
Func _Array2DPush(ByRef $ARRAY, $Value, $Direction=0)
Local $i, $j, $k
Local $arStatVal = IsArray($Value)
Local $UBound1st = UBound($ARRAY)
If @error = 1 Then Return SetError(1,0,1)
Local $UBound2nd = UBound($ARRAY,2)
If @error = 2 Then
If $arStatVal Then
Local $UbValue = UBound($Value)
If $UbValue > $UBound1st Then Return SetError(2,0,1)
If UBound($Value, 2) > 0 Then Return SetError(3,0,1)
For $k = 0 To $UbValue -1
If $Direction = 0 Then
For $i = 0 To ($UBound1st -2)
$ARRAY[$i] = $ARRAY[$i+1]
Next
$i = ($UBound1st -1)
$ARRAY[$i] = $Value[$k]
Else
For $i = ($UBound1st -1) To 1 Step -1
$ARRAY[$i] = $ARRAY[$i-1]
Next
$ARRAY[$i] = $Value[$UbValue -1 -$k]
EndIf
Next
Else
If $Direction = 0 Then
For $i = 1 To $UBound1st -1
$ARRAY[$i-1] = $ARRAY[$i]
Next
$ARRAY[$UBound1st-1] = $Value
Else
For $i = $UBound1st-1 To 1 Step -1
$ARRAY[$i] = $ARRAY[$i-1]
Next
$ARRAY[0] = $Value
EndIf
EndIf
Else
Local $UbValue2nd = UBound($Value, 2)
If @error = 1 Then
Return SetError(4,0,1)
ElseIf @error = 2 Then
Return SetError(5,0,1)
ElseIf UBound($Value) > $UBound1st Then
Return SetError(2,0,1)
ElseIf $Ubound2nd <> $UbValue2nd Then
Return SetError(3,0,1)
EndIf
Local $UbValue = UBound($Value)
For $k = 0 To $UbValue -1
If $Direction = 0 Then
For $i = 0 To ($UBound1st -2)
For $j = 0 To $UBound2nd -1
$ARRAY[$i][$j] = $ARRAY[$i+1][$j]
Next
Next
$i = ($UBound1st -1)
For $j = 0 To $UBound2nd -1
$ARRAY[$i][$j] = $Value[$k][$j]
Next
Else
For $i = ($UBound1st -1) To 1 Step -1
For $j = 0 To $UBound2nd -1
$ARRAY[$i][$j] = $ARRAY[$i-1][$j]
Next
Next
For $j = 0 To $UBound2nd -1
$ARRAY[$i][$j] = $Value[$UbValue -1 -$k][$j]
Next
EndIf
Next
EndIf
Return 0
EndFunc ;==>_Array2DPush;==================================================================================================
[/autoit]
; Function Name: _Array2DMinMax(ByRef $ARRAY [, $MAX=0 [, $iCol=0 [, $sDelim=';']]])
; Description:: gibt den minimalen od. maximalen Wert eines 1D/2D-Array zurück
; Überprüfung einer oder aller Spalten
; Parameter(s): $ARRAY das zu prüfende Array
; $MAX 0 = Minwert (Standard); 1 = Maxwert
; $iCol SpaltenIndex 0 = Standard
; -1 = alle Spalten werden geprüft
; $sDelim Trennzeichen f. Indexwerte, Standard ';'
; mit 'Default' Zeichen von Opt('GUIDataSeparatorChar')
; Return Value(s): Erfolg Array[0] = Max/Min-Wert; Array[1] = Index(Zeile [, Spalte])
; Fehler -1 @error = 1 kein Array übergeben
; @error = 2 $iCol überschreitet UBound,2
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _Array2DMinMax(ByRef $ARRAY, $MAX=0, $iCol=0, $sDelim=';')
If Not IsArray($ARRAY) Then Return SetError(1,0,-1)
Local $Ub2nd = UBound($ARRAY, 2)-1, $arOut[2] = [0]
If $MAX <> 0 Then $MAX = 1
If $sDelim = Default Then $sDelim = Opt('GUIDataSeparatorChar')
If @error Then
For $i = 0 To UBound($ARRAY) -1
If $MAX = 1 Then
If Number($ARRAY[$i]) > $arOut[0] Then
$arOut[0] = Number($ARRAY[$i])
$arOut[1] = $i
EndIf
Else
If $i = 0 Then
$arOut[0] = Number($ARRAY[$i])
$arOut[1] = $i
EndIf
If Number($ARRAY[$i]) < $arOut[0] Then
$arOut[0] = Number($ARRAY[$i])
$arOut[1] = $i
EndIf
EndIf
Next
Else
If $iCol > $Ub2nd Then Return SetError(2,0,-1)
If $iCol < -1 Then $iCol = -1
If $iCol = -1 Then
For $i = 0 To UBound($ARRAY) -1
For $k = 0 To $Ub2nd
If $MAX = 1 Then
If Number($ARRAY[$i][$k]) > $arOut[0] Then
$arOut[0] = Number($ARRAY[$i][$k])
$arOut[1] = $i & $sDelim & $k
EndIf
Else
If $i = 0 Then
$arOut[0] = Number($ARRAY[$i][$k])
$arOut[1] = $i & $sDelim & $k
EndIf
If Number($ARRAY[$i][$k]) < $arOut[0] Then
$arOut[0] = Number($ARRAY[$i][$k])
$arOut[1] = $i & $sDelim & $k
EndIf
EndIf
Next
Next
Else
For $i = 0 To UBound($ARRAY) -1
If $MAX = 1 Then
If Number($ARRAY[$i][$iCol]) > $arOut[0] Then
$arOut[0] = Number($ARRAY[$i][$iCol])
$arOut[1] = $i & $sDelim & $iCol
EndIf
Else
If $i = 0 Then
$arOut[0] = Number($ARRAY[$i][$iCol])
$arOut[1] = $i & $sDelim & $iCol
EndIf
If Number($ARRAY[$i][$iCol]) < $arOut[0] Then
$arOut[0] = Number($ARRAY[$i][$iCol])
$arOut[1] = $i & $sDelim & $iCol
EndIf
EndIf
Next
EndIf
EndIf
Return $arOut
EndFunc ;==>_Array2DMinMax -
Nachdem ich mir jetzt über mehrere Stunden an vielerlei Orten anhören durfte wie Sch*** alles ist, verabschiede ich mich jetzt in's Wochenende. Mir schwirrt's im Koppe.
Als kleine Info: Das Portal habe ich auf Grund eines Fehlers deaktiviert und den Content, der normalerweise durch die Portalboxen dargestellt wird, in's WBB eigene Dashboard gepackt. Ich weiß, die sidebar ist jetzt rechts und nicht mehr links wie früher. Das wurde bereits bemängelt und ich sage es deshalb gleich - das geht nicht anders. Und eigentlich ist es andersrum auch eher unlogisch.
Mit dem Durcharbeiten der Benutzerrechte bin ich noch nicht ganz durch. Also kann es durchaus sein, das der Ein oder Andere bestimmte Dinge noch nicht sieht oder Funktionen noch nicht nutzen kann.
-
@minx Der Status der Sidebar sollte auch über das Ausloggen hinaus erhalten bleiben.
Irgendwo hab ich hier etwas über "Foren als gelesen markieren" gelesen. Es gibt jetzt die Möglichkeit in jeder Forenauflistung unten rechts einen entsprechenden Link zu benutzen. Zusätzlich lassen sich im Übrigen Themen und Foren als gelesen markieren, wenn man einen Doppelklick auf das Icon vor dem Forum bzw. den Avatar des Themenstarters ausführt. Da sollte dann auch beim Mouseover ein Tooltip erscheinen.
-
Daher nur eine Frage: Gibt es eine Möglichkeit eine Bedanken-Funktion ohne jedwede Zählerfunktion zu machen?
Also weder einen Dankes-Counter global noch im Thread?
Idealerweise nur für den Adressaten zu sehen.Das wäre momentan die einzige Lösung für mich, einen solchen Button hier zu aktivieren.
-
Was die Schriften angeht - ich spiel da gerne noch etwas dran rum. FEin Fakt ist aber, das sich die jeweiligen Schriftgrössen und -proportionen am alten Design orientieren. Ausserdem sind sie identisch mit denen des Original WBB Stils. (bis auf die, die ich gestern noch ein wenig verändert habe). Aber ob ich da an Hauptmenü und Buttons noch grossartig was ändern kann. Das sind eben Elemente die etwas populärer dargestellt werden sollten. Schaun wir mal.
An den Linkweiterleitung wird Gun-Food zu gegebener Stunde arbeiten.
Die Bugs am Syntaxhighlighting gehe ich an. Aber da bitte etwas Verständnis dafür, das ich heute schon ziemlich im Popo bin und morgen um 5 die Nacht wieder zu Ende ist. Der ganze Kram im Backend (Foren-, Gruppen-, Moderationsrechte etc. prüfen brauchen auch ihre Zeit)
@BugFix Die Probleme mit dem Editor schau ich mir gern an. Da kann ich aber absolut nichts versprechen weil die höchstwarscheinlich nicht von uns behoben werden können. Der ist an sich zwar schön, toll, super und was weiss ich noch alles aber leider auch sehr verbuggt und noch nicht zu hundert Prozent im WCF angekommen.
Zur Wer-War-Online Anzeige: Einige Leute. Gegenfrage - wen interessiert es, wer im Team ist? Und wer braucht dafür eine Box im Portal? Steht ja auch anderswo. Ist halt da, ist niemandem im Weg und wer sie nicht sehen will, der hört halt bei den Statistiken auf. Die sind im Übrigen jetzt auch nicht für jeden sinnvoll.
Zum Design: Im Grunde orientiert es sich sehr stark am Alten. Natürlich hat sich etwas an der Farbgebung geändert. Der Rest ist aber nahezu identisch. Hier und da muss man sicher Abstriche machen da das WBB4 eben nicht das WBB3 ist aber so extrem weit sind wir optisch nicht davon entfernt. Wer mag, darf natürlich gerne ein Design erstellen. Wenn's zur Community passt, installier ich es gerne. Ich hab auch kein Problem damit eine ungeslicete PSD zu nehmen und einzupflegen. Alles kein Ding. Wenn ihr nur Probleme mit der Farbgebung habt und bessere Vorschläge anbieten könnt .... immer her damit. Aber dann sollten die schon recht ausführlich sein. Sprich - wenn an einer Stelle etwas verändert wird, muss es auch noch zum Rest passen. Passt es nicht, muss der Rest auch angepasst werden. Scrennshots mit Pfeilen und gewünschtem Farbbezeichner reichen mir vollkommen aus.
Schriftart bei ungelesenen Threads: Das ist die Selbe die auch überall sonst verwendet wird. Nur eben fett. Das war aber schon immer so. Da bi ich etwas Verwirrt.
Wie gesagt - Vorschcläge, Vorschläge, Vorschläge. Je detailierter desto besser. Gefällt mir nicht oder sieht komisch aus sind rein subjektiv und schwer nachzuvollziehen.
-
Schönes Thema und gute Argumente auf beiden Seiten.
Vorteile:
- Für die Datenbank und die Übersichtlichkeit toll - weniger Beiträge die nichts anderes tun als Anerkennung zu zeigen.Nachteile:
- mancheiner liest auch gerne mal ein "Danke" statt sich im Glanz eines Counters zu sonnen. Ich hatte heute Kommunikationstraining. Ein Thema war unser versteckter Drang nach Anerkennung. Auch wenn wir es oft nicht zugeben. Wir wollen sie. UNd zwar direkt und in Worten.
- Ein Like ("Gefällt mir") ist nicht das Selbe wie ein Danke. Ob jemandem hier ein Skript oder eine Antwort gefällt wird irgendwo immer davon abhängen, ob man sich auch mit dem jeweiligen Thema befasst. Ein Thema wie z.B. BugFixs ArrayMore wird höchstwarscheinlich mehr likes erhalten als eine belibige UDF ala' D3D oder dergleichen. Der Bezug zur Masse wird dort sicher fehlen. Ich hoffe man versteht was ich damit sagen will. Greifen mehr User darauf zu weil sie es verwenden/benötigen, wird es potenziel mehr likes geben. Eine reele Aussage über die Qualität ist das dann aber nicht.
- Likes würden, wenn man sie denn nutzt, nur Sinn machen wenn sie auch alle verwenden. Es wird auch weiterhin Leute geben, die einfach "nur" einen Beitrag schreiben und nicht den Knopf drücken. Themen in denen das überwiegend passiert werden also bei einer Suche bzw. Sortierung nach "Menge der Likes" untergehen. Wieder ist ein Bezug zur tatsächlichn Qualität eins Themas oder eines Beitrags nicht gegeben.Nach dem jetzigen Stand sehe ich also absolut keinen Mehrwert in so einer Funktion. Es fehlt ihr einfach an Aussagekraft. Bei einem Danke-Button hätte man wenigstens noch ansatzweise einen Nutzen.
Die Diskussion darf gerne weiter gehen.
-
-
rgendwie fehlt mir ein Button "zum ersten neuen Beitrag springen".
Einfach auf den Avatar des Users mit der letzten Antwort klicken.
-
Gut versteckt. Ich ziehe meine Aussage zurück. Danke chip!
-
Mal als Anmerkung ... es wird in naher Zukunft eine Funktion geben, mit der ein TS die für ihn beste Antwort kennzeichnen kann. Diser Beitrag wird dann zusätzlich direkt unter dem Startpost eingeblendet.
Eine Trennung von Like und Dislike ist nicht möglich.
-
Bitte macht es möglich auch mobil die Desktopversion zu verwenden, egal welchen Useragent ich einstelle: Keine Chance!Auch wenn ich es gerne würde, das geht nicht. Es gibt keine getrennten Desktop und Mobilen Stile. Responsive ....
-
Wenn man auf die Seite zurückkehrt fehlt "Neue Beiträge anzeigen"
Ihr solltet jetzt in euren Profileinstellungen unter dem Punkt "Allgemein" die Möglichkeit finden die letzten Beiträge nach euren Wünschen anzeigen zu lassen.
Der Menüpunkt selbst ist dann im Forum im UNtermenü zu finden
-
Dann denken wir doch mal drüber nach, was so ein Finanzamt als "gemeinnützig" einstuft und wodurch wir so einen Status erlangen könnten. Ein Tierschutzverein schützt Tiere, ein AutoIt.de Verein .... [Vorschläge hier eintragen]?
-
Warum empfehlt ihr immer sauteures Zeug nach dem "man dann googlen soll ;)"? Man muss nicht jeden scheiss illegal als Raubkopie haben nur weil es teuer ist.
Freie Alternativen wären CatStd Lite, LibreCAD oder SketchUp. Wie das da mit den Blattgrössen ist, weiss ich allerdings nicht.