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

Antworten: 20
Seite [1]
Mindcrime


Geekboy





Beiträge: 1155
# Thema - 23.09.2009 um 11:26 Uhr
Also, ich entwickle (oder aendere) derzeit einige module fuer CS v2009.0.2 und hab das problem das ich dafuer einige algemeine (basis) functionen gemacht habe. Dafuer such ich einen platz um sie einfach in CS zu integrieren ohne eigentlich jedes mal zb system/core/tools.php mergen zu muessen, jedes mal wenn es ein update gibt von CS.

Es waehre schoen wenn sowas in CS moeglich waehre durch eine algemein include. Ich erinnere mich das es mal eine extensions/ ordner gab.

Waehre es nicht angebracht fuer externe entwickler von CS um zb sowas zu machen in cs_init() in system/core/functions.php:
anstatt
 
1.
2.
3.
4.
1. / 2. / ... 
 require_once 'system/core/servervars.php';
  require_once 
'system/core/tools.php';
  require_once 
'system/core/abcode.php';

ein extra check einzubauen ob es externe tools (oder sowas aehnliches) gibt
 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 
 require_once 'system/core/servervars.php';
  require_once 
'system/core/tools.php';
  if (
file_exists('system/external/tools.php'))
    require_once 
'system/external/tools.php';
  require_once 
'system/core/abcode.php';


Ich hab das natuerlich selber reinhauen, aber im codebase waehre das mehr angebracht...
Inaktiv
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 1 - 23.09.2009 um 11:46 Uhr
hi,
kannst die dateien auch ins runstartup verzeichnis schieben, von dort wird alles geladen.


gruß
duRiel


Inaktiv
|
hajo ClanSphere Team


VIP - Poster




Herkunft: Barsbüttel
Beiträge: 9411
# Antwort: 2 - 23.09.2009 um 14:54 Uhr
extensions war früher dazu gedacht php-erweiterungsabhängige funktionen sofern verfügbar nachzuladen, z.b. für die bildbearbeitung wenn gd aktiv ist. diesen ansatz haben wir allerdings vor kurzem verworfen und alles in runstartup vereinigt


------------------
ClanSphere - professional clan care starts here

Inaktiv
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 3 - 23.09.2009 um 15:07 Uhr
Das problem von runstartup ist das z.b. die reihenfolge wie scripts included werden in runstartup nicht bestimmt ist, und somit kann das probleme geben... Man kann nicht automatisch davon ausgehen das es auf alfabetischen reinfolge ist...

cs_tasks() benutzt opendir(), was keine ordnung benutzt... scandir() waehre dan vielleicht besser angebracht...

Zweitens testet cs_tasks() zb auch nicht ob die dateiname eine datei ist oder ein ordner...



Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 4 - 23.09.2009 um 15:50 Uhr
Wieso willst du denn eine Reihenfolge bei deinen Scripts haben ?
Wenn du eine Methode überschreibst, wieso lässt du Sie nicht gleich am Anfang so wie du Sie nachher haben willst ?


------------------
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
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 5 - 23.09.2009 um 16:00 Uhr
23.09.2009 um 15:50 Uhr - Fr33z3m4n:
Wieso willst du denn eine Reihenfolge bei deinen Scripts haben ?
Wenn du eine Methode überschreibst, wieso lässt du Sie nicht gleich am Anfang so wie du Sie nachher haben willst ?


Weil ich eine datei habe mit system funktionen die ZUERST geladen werden muss, die immer anwesend sein muss. Wenn ich dan weitere startup scripte haben die u.a. diese funktionen benutzen, muessen die durch cs_tasks() angerufen werden NACH diese datei. Wenn ich alles NUR in runstartup machen kann, heisst das, das ALL diese dateien im selben ordner sind, sowohl diese system datei als auch die andere. Und da UNGEWISS ist WANN welche angerufen wird, kann man NICHT VORHERSAGEN ob die function schon definiert ist...

Vorbild:

runstartup/my_functions.php hat function cs_mein_function()
runstartup/a.php ruft u.a. cs_mein_function() an
runstartup/b.php ruft u.a. cs_mein_function() an

Problem:

Man kann nicht zu 100% sagen in welche reihenfolge cs_tasks() diese dateien ausfuehrt:
a.php, b.php, my_functions.php?
my_functions.php, a.php, b.php?
b.php, my_functions.php, a.php?

Wenn my_functions.php nicht ZUERST ausgefuert wird, gibts ein "undefinierte function cs_mein_function()" fehler...

Zur info:

http://nl.php.net/manual/de/function.readdir.php
readdir():
"Gibt den Dateinamen des nächsten Files des Verzeichnisses zurück. Die Dateinamen werden in der Reihenfolge zurück gegeben, in der sie innerhalb des Filesystems angelegt wurden. "


Zuletzt editiert von Mindcrime am 23.09.2009 um 16:04 Uhr (2x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 6 - 23.09.2009 um 16:46 Uhr
jojo brauchst ja nicht gleich so schreien hab ja nur nachgefragt, wieso du das haben willst ^^


------------------
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
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 7 - 23.09.2009 um 16:55 Uhr


Btw, andere sache... Im root ordner gibts al diese scripte:

admin.php
debug.php
index.php
navlists.php
upload.php
content.php
features.php
install.php
setup.php

Ausser install.php (sollte eh nicht anwesend sein), index.php und setup.php:
- welche extra dateien braucht man MINIMAL fuer eine "live/release" nicht-ajax seite?
- welche extra dateien braucht man MINIMAL fuer eine "live/release" ajax seite?

Ich nehm mal an admin.php und debug.php braucht man auf jeden nicht...


Inaktiv
|
Micha.09 ClanSphere Team


Specialist



Herkunft: Dortmund
Beiträge: 2860
# Antwort: 8 - 23.09.2009 um 17:02 Uhr
aber wenn du funktionieren schreibst dürfte das doch keine rolle spielen, da es doch eh alles in der index.php geparst wird, und ob nun ne Funktion am ende einer datei steht und am anfang aufgerufen wird ist doch php wayne


Inaktiv
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 9 - 23.09.2009 um 17:10 Uhr
man braucht:

index.php
navlists.php nur ajax
upload.php nur ajax
content.php nur ajax
features.php dürfte die liste der smileys sein
setup.php

könnten die teilweise mal verschieben.


Inaktiv
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 10 - 23.09.2009 um 17:17 Uhr
Danke @duRiel...

23.09.2009 um 17:02 Uhr - Mc.Alcatraz:
aber wenn du funktionieren schreibst dürfte das doch keine rolle spielen, da es doch eh alles in der index.php geparst wird, und ob nun ne Funktion am ende einer datei steht und am anfang aufgerufen wird ist doch php wayne


Nee, ist nicht so wie du es sagst, folgendes problem tritt auf (a.php und b.php stehen beide in runstartup):

Fatal error: Call to undefined function test_function_anruf() in /xxx/htdocs/system/runstartup/a.php on line 3

a.php:
 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 

<?php

  test_function_anruf
();
?>


b.php:
 
1.
2.
3.
4.
5.
6.
7.
8.
1. / 2. / ... 

<?php
        
function  test_function_anruf()
        {
                return;
        }
?>


Dreht man beide dateien um (also inhalt van a wird b und umgekehrt) dan gibt es kein fehler...


Zuletzt editiert von Mindcrime am 23.09.2009 um 17:18 Uhr (2x Editiert)
Inaktiv
|
astmaih


Rock the board




Beiträge: 95
# Antwort: 11 - 23.09.2009 um 19:41 Uhr
So als fixe Idee:
Einfach nur eine Datei in runstartup (z.B. extensions.php), die mittels "require_once" deine ganzen anderen Dateien dann läd. Die dann z.B. im extensions Ordner liegen. So kannst du die Reihenfolge selbst bestimmen.


Inaktiv
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 12 - 23.09.2009 um 22:50 Uhr
Es waehre denk ich mal mehr angebracht wenn standard in runstartup eine deutlich reihenfolge geben wurde, zb alfabetisch... Vielleicht eine idee um scandir anstatt opendir + readdir zu benutzen...


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 13 - 24.09.2009 um 07:55 Uhr
ja sicher, nur wäre dass wenn im nächstem Release erst enthalten.
Aber man kann ja Module auch so bauen, dass man die eigenen erstellten Classes, Methoden in der Datei, in den Mods-Ordner mit packt. So wie es fast eigentlich jeder Entwickler von Modulen macht.
Dort kannste dann die Reihenfolge selbst bestimmen.


------------------
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
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 14 - 24.09.2009 um 09:38 Uhr
Nicht wenn es um algemeine functionen handelt die ueber mehrere module benutzt werden... Sowas passt nicht in das eine oder das andere modul.


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 15 - 24.09.2009 um 10:58 Uhr
ok,

dan frag ich mal:
Was für Methoden/Classes erstellst du denn ?
Weil wenn du davon redest, dass mehrere Module diese Functionen benötigen, wäre es mal für uns sehr interessant, diese functionen zu kennen.


------------------
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
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 16 - 24.09.2009 um 14:13 Uhr
Ein beispiel ist schon eine algemeine cs_encode($string, $charset) function die automatisch ein string in ein bestimmten charset umsetzt auf die von meine ClanSphere installation benutzte charset (global $cs_main['charset']).

Implementation:
Die function benutzt iconv() (mit "//TRANSLIT"), wenn vorhanden, macht sonst noch ein versuch utf8_encode() zu benutzen when die original string in ISO-8859-1 oder ISO-8859-15 ist, und returned das original wenn alle convertierungsmoeglichkeiten erschoepft sind.

Warum brauch ich das? Ich brauch das u.a. fuer:
- (meine noch in arbeit seihende v2009.0.2 version von) TS2Panel modul: Die meisten TS2 server benutzen eine SQLite datenbank in ISO-Latin-1 oder eine MySQL datenbank mit alle moegliche charsets. Also daten die ich aus den cyts klasse bekomme sind in eine andere charset wie meine ClanSphere (UTF-8), also muss ich alle output wie ts2 server name, channel namen, channel description, benutzte codecs und spieler namen convertieren nach UTF-8
- (geplannten) External RSS feed reader modul: Aus mehrere externe RSS feeds mit alle verschiedene charsets (Latin-1, Latin-15, UTF-8) muss ich die daten auch convertieren nach ClanSphere's charset...
- Andere geplante module die externe daten benutzen...
- Converter functionalitaet die ich brauche wegen umstieg auf ClanSphere.

Desweiteren hab ich schon mehrere abcode erweiterungen (in alte 2008.x.x versionen die noch umgesetzt werden muessen) in planung...


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 17 - 24.09.2009 um 14:35 Uhr
mit dem TS2 find ich gut, brauch ich mich darum nicht mehr kümmern ^^

Warum ich eigentlich frage, ist der Hintergrund, ggf. einige Funktionen fest ins CSP zu integrieren.
Die Convertierung von Zeichen wie du sie vorhast, ist schonmal ein kleiner Ansatz, den wir sicherlich in dieser art und Weise übernehmen könnten.

Muss aber duriel entscheiden.


------------------
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
|
duRiel ClanSphere Team


Weltmeister




Herkunft: Cambridge
Beiträge: 7300
# Antwort: 18 - 24.09.2009 um 14:37 Uhr
die abcode sachen werden mit der neuen version kein problem mehr, genaue infos zum neuen abcode system kommen die tage


Inaktiv
|
Mindcrime
Thread-Ersteller


Geekboy





Beiträge: 1155
# Antwort: 19 - 24.09.2009 um 15:26 Uhr
Die umsetzung von ts2panel ist ziemlich viel arbeit, al diese echo cs_html_table() umsetzen in templates, und einige ergaenzungen (option lehre channels nicht anzeigen, charset von server waehlen)...

Weil ich zz an ein umfangreiches projekt arbeite wo ich sehr viel daten convertieren muss und auch noch viele extra module und patches schreiben muss von dingen die mir zur zeit in ClanSphere fehlen. Besonders die abwesenheit von deleted/inactive felder in viele tabellen (historische relationelle daten) sind einer der groessere probleme womit ich mich befassen muss...

Andere dinge die vorliegen/in entwicklung sind:
- context abhaengige menu: menu modul das abhaengig wo man ist ein anderes actives (sub)menu zeigt.
- context abhaengige templates: ergaenzung das der benutzte template wechselt auf basis von mod/action combi
- mir fehlt viele member/squad funktionen wie ismember() oder ismemberofsquad(): viele daten sind nur fuer member oder fuer bestimmte squads only zugreiflich, ungeacht welches zugriffsniveau sie haben, das ist nicht nur fuer das board.
- unzureichende board rechte
- kopplung zwisschen maps und servers modul (da sind ja auch maps von ein spiel drin, wieso 2 stellen)

unzureichende benutzer rechte: (hab ich schon mal angesprochen hier)

Folgendes hab ich schon mal implementiert auf eine 2008.2.1 seite:

Problem ist das man zz fuer jede extra recht mehrere access niveaus definieren muss:
Member + Forum
Member + News
Member + Wars
Member + Forum + News
Member + Forum + Wars
Member + News + Wars
Member + Forum + News + Wars

Das ist viel aufwand und man verliert schnell die uebersicht...

Ich hab mal versucht das zugriffsrechte system zu ueberarbeiten.

Man hat die standard 5 zugriffsrechte niveaus:
Guest
User
Member
Organisator
Webmaster

Man kann das jetzt NUR waehlen als zugriffsrechte nivea. Daneben kann man
alle andere niveau EXTRA dazu waehlen:
News
Forum
Wars

Wenn ein benutzer dan login macht, bekommt er die hoechste level von die zusammengestellte niveaus.

Beispiel:
Wir geben "News" zugriffs niveau das level 5 bei modul News, alles andere auf 0
Wir geben "Forum" zugriffs niveau das level 5 bei modul Board, alles andere auf 0

Ein benutzer mit Member hat level 3 bei modul News
Ein benutzer mit Member + News hat level max(3 (member), 5 (news)) = 5 bei modul News
Ein benutzer mit Member + Forum hat level max(3 (member), 0 (forum)) = 3 bei modul News

Ein benutzer mit Member hat level 3 bei modul Board
Ein benutzer mit Member + News hat level max(3 (member), 0 (news)) = 3 bei modul Board
Ein benutzer mit Member + Forum hat level max(3 (member), 5 (forum)) = 5 bei modul Board

Ich denk so ein system ist einfacher zu verstehen und zu verwalten wie das derzeitige system von clansphere...

Und dan hab ich noch etliche module und aenderugen wie ticker, ts2panel, ventrilo, shockvoice, shop, partners, sponsors, affiliates, enhanced profile, wc3 replays, dota replays und zb data caching auf zeit basiert (refresh jede X zeit)...

Das alles muss ich machen in ein SVN entwicklung umgebung das ich des oefteren mergen muss mit die derzeitige trunk version von ClanSphere... Und wenn ihr dan bestimmte dinge total umkrempelt ohne das ich weiss wie, heisst das fuer mich wegen diese viele aenderungen manchmal verdammt viel arbeit...


Inaktiv
|
SlayR ClanSphere Team


Geekboy




Herkunft: Calbe (Saale)
Beiträge: 1133
# Antwort: 20 - 24.09.2009 um 23:59 Uhr
^^ Klingt nach nem neuen Developer
Die Benutzerrechte, wie Du sie anstrebst halte ich für eine sehr gute Idee. Finde ich wirklich übersichtlicher und einfacher zu handhaben. Noch besser würde ich es finden, wenn man auch neue Zugriffsklassen anlegen könnte. so fehlt mir etwa der Squadleader, der sich zwar Innerhalb der Squadeinstellungen frei bewegen kann, jedoch keinen Zugriff auf die Claneinstellungen hat. Mit solchen Zugriffsklassen könnte man dann recht einfach umgehen, da man festlegen kann, das bestimmte Gruppen auch bestimmte Dinge tun können ich denka dabei auch z.B. an ein internes Forum, indem Trialmember zwar lesen dürfen jedoch keine Beiträge schreiben dürfen. Jeder Admin hätte die Möglichkeit, die Zugriffsklassen zu definieren, die er braucht. Es sind dann also auch mehr als 5 Stufen möglich. Nur habe ich keine Ahnung, ob so etwas Umsetzbar ist- geschweige denn wie!


------------------
--- CLANSPHERE ---
Professional clan care starts here


Inaktiv
|
Antworten: 20
Seite [1]


Sie müssen sich registrieren, um zu antworten.


ClanSphere Project - Mailus - Imprint - Disclaimer - Scriptinfo