Register for your free account! | Forgot your password?

You last visited: Today at 20:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Community Project] Redaktionssystem

Discussion on [Community Project] Redaktionssystem within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old 10/08/2013, 10:00   #16
 
TheMad's Avatar
 
elite*gold: 0
Join Date: Nov 2008
Posts: 569
Received Thanks: 103
Schade das du es nicht fertig gemacht hast, ich selbst kanns net scripten, hab aber ne richtig tolle Idee für ne Homepage.... Mir fehlt nur ein vernünftiges Script....
TheMad is offline  
Old 10/08/2013, 17:37   #17
 
elite*gold: 1
Join Date: Oct 2012
Posts: 1,036
Received Thanks: 801
Quote:
Originally Posted by Mr.NyBu View Post
So langsam kommen die Epvp-Mt2 Legenden zurück
Evtl. wirds ja doch nochma was mit der Section.
Nybu da erwarteste aber sehr viel von der verkorksten Com.

BTW: Schöne Arbeit, wird sicherlich n paar helfen^^
[SA]Tears aka.[BlackBite] is offline  
Old 10/08/2013, 17:46   #18
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Wie gesagt.
Was noch fehlt sind 2-3 Scripts im Backend bereich, dann wäre der Grundaufbau soweit fertig.
Und eben Plugins wie zb Ranking etc.
Nur hab ich offen und ehrlich gesagt im Moment kein Bock drauf, das vollends fertig zu machen, wenn dann am Ende sowieso nur Copyrights etc entfernt werden würden und es als das eigene ausgegeben werden würde.
Denn so ist die Section und so wird sie auch immer bleiben.
xCPx is offline  
Old 10/08/2013, 17:52   #19


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,221
Received Thanks: 6,758
Du behauptest du würdest etwas Perfektion in die 'CMS-Systeme' der M2 Sektion durch dein Script bringen und dann kommt sowas?

Ich zitiere: "... mit template system ..."

PHP Code:
<?php
  $server 
= @gethostbyname("localhost");
  
$port = array("80","3306","443");
  
$names = array("1""2","3");
  
$timeout "10";  
?>
<h1>Status</h1>
<table class="status">
    <tr>
        <td class="links">Channel</td>
        <td class="rechts">Status</td>
    </tr>
    <?php for($i 0$isizeof($port); $i++) : ?>
        <?php $online = @fsockopen($server$port[$i],$errno$errstr$timeout); ?>
        <tr>
            <td class="links"><?php echo $names[$i]; ?></td>
            <td class="rechts">
                <div class="img<?php if(!$online) {echo ' off';}?>">
                </div>
            </td>
        </tr>
    <?php endfor; ?>
    
</table>
Wenn du auch nur ansatzweise mit Templates arbeiten würdest, dann würdest du kein HTML und PHP zusammenmischen.
#SoNiice is offline  
Thanks
6 Users
Old 10/09/2013, 01:36   #20
 
elite*gold: 200
Join Date: Apr 2012
Posts: 577
Received Thanks: 290
Kann dir oder den anderen hier smarty als template engine empfehlen leistet bei mir schon in mehreren Projekten gute Dienste.
MartPwnS is offline  
Old 10/09/2013, 10:09   #21
 
Assassin''s Avatar
 
elite*gold: 200
Join Date: Nov 2008
Posts: 1,073
Received Thanks: 302
Ist auch die Grundlage der WCF-Templateengine, kann die Empfehlung also nur bestätigen
Assassin' is offline  
Old 10/09/2013, 12:51   #22

 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,471
Received Thanks: 5,622
Quote:
Originally Posted by Hühnchenkopf View Post
Du behauptest du würdest etwas Perfektion in die 'CMS-Systeme' der M2 Sektion durch dein Script bringen und dann kommt sowas?

Ich zitiere: "... mit template system ..."

PHP Code:
<?php
  $server 
= @gethostbyname("localhost");
  
$port = array("80","3306","443");
  
$names = array("1""2","3");
  
$timeout "10";  
?>
<h1>Status</h1>
<table class="status">
    <tr>
        <td class="links">Channel</td>
        <td class="rechts">Status</td>
    </tr>
    <?php for($i 0$isizeof($port); $i++) : ?>
        <?php $online = @fsockopen($server$port[$i],$errno$errstr$timeout); ?>
        <tr>
            <td class="links"><?php echo $names[$i]; ?></td>
            <td class="rechts">
                <div class="img<?php if(!$online) {echo ' off';}?>">
                </div>
            </td>
        </tr>
    <?php endfor; ?>
    
</table>
Wenn du auch nur ansatzweise mit Templates arbeiten würdest, dann würdest du kein HTML und PHP zusammenmischen.
Falsch, wie man z.B am Beispiel CodeIgniter oder dem aktuellen gehypten Framework Laravel sieht, eignet sich PHP Code auch für templates mein sollte es allerdings beschränken auf das ausgeben von Variablen und den logischen Teil im PHP Code machen. PHP hat auch eine Template Syntax -> <?=$varname;?> gibt z.B eine Variable aus wenn die Short Tags aktiviert sind.

Smarty ist viel zu vollgestopft, allgemein die ganzen Advanced Templating Angebote verfehlen den Zweck Ausgabe von Logik zu trennen. Was meiner Meinung nach noch Akzeptabel ist, wäre das Tag Templating wie z.B im APF. Es hat schon seinen Grund warum Rasmus z.B kein Framwork außer CodeIgniter empfiehlt ...

Wenn ich Templating einbauen will um Logik und Markup zu trennen nehme ich mir doch keine Templating Engine die Logische Operationen in Templates erlaubt. Ich nenne es einfach Gemütlichkeit ... ihr seit so sehr daran gewohnt das ihr Logik im HTML Code gehabt, dass ihr es gar nicht mehr anders kennt oder akzeptiert.

Natürlich bieten Laravel und CodeIgniter auch Template Sprachen aber bei diesen ist die Logik klar getrennt vom Markup ...

Der Code oben wäre annehmbar wenn das fsockopen zeug nicht vorhanden wäre ... er benutzt nämlich dort bereits die Template Syntax. Wobei das sizeof außerhalb der Schleife getan werden sollte. Man wendet solche Funktionen nicht im Schleifenkopf an, sonst leidet die Performance.

Auszug aus einer Klasse:
PHP Code:

    extract
($this->vars);
    
ob_start();
    include(
$view_template_file);
    return 
ob_get_clean(); 
Definitv besser als das ganze Zeug mit str_replace oder Smarty.

Zum verdeutlichen Vorgang bei Smarty:

Smarty Code wird geparst
Kompiliert zu PHP
PHP Code wird gecacht
PHP Code wird geparst
PHP Code wird zu Opcodes compiled
Wenn ihr eine Opcode Cache habt werden diese auch noch mal gecacht
Opcodes werden ausgeführt

Man sieht relativ leicht, dass das ganze ein wenig redundant ist.

Hier auch ein interessanter Blog dazu:















tl;dr
.Alpha. is offline  
Old 10/09/2013, 21:11   #23
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Quote:
Originally Posted by Hühnchenkopf View Post
Du behauptest du würdest etwas Perfektion in die 'CMS-Systeme' der M2 Sektion durch dein Script bringen und dann kommt sowas?

Ich zitiere: "... mit template system ..."

PHP Code:
<?php
  $server 
= @gethostbyname("localhost");
  
$port = array("80","3306","443");
  
$names = array("1""2","3");
  
$timeout "10";  
?>
<h1>Status</h1>
<table class="status">
    <tr>
        <td class="links">Channel</td>
        <td class="rechts">Status</td>
    </tr>
    <?php for($i 0$isizeof($port); $i++) : ?>
        <?php $online = @fsockopen($server$port[$i],$errno$errstr$timeout); ?>
        <tr>
            <td class="links"><?php echo $names[$i]; ?></td>
            <td class="rechts">
                <div class="img<?php if(!$online) {echo ' off';}?>">
                </div>
            </td>
        </tr>
    <?php endfor; ?>
    
</table>
Wenn du auch nur ansatzweise mit Templates arbeiten würdest, dann würdest du kein HTML und PHP zusammenmischen.
Dir ist aber schon bewusst, das das was du da geschickt hast ein Plugin ist oder?
Ich weiß nicht, was du unter Template System verstehst, aber ich verstehe darunter verschiedene designs durch auswahl einer simplen variable zu geben.
Dass im Template das Design geregelt wird, der Grund-Code dahinter aber prinzipiell der selbe bleibt.
Das was du da zitiert hast ist nichts anderes wie ein Plugin welches für verschiedene Templates verschieden aussehen kann, das in Websiten über {#Status} eingebunden werden kann.

So dachte ich mir das zumindest.
Dass der "Core" alle funktionen etc bereitstellt um mit relativ wenig aufwand Plugins etc erstellen zu können. Und egal für welches Design benutzt werden kann.

Aber war wie gesagt auch noch nicht vollends fertig mit dem System.
Dachte mir nur darüber kann man die Entwicklung von Erweiterungen für das System deutlich vereinfachen.
Wenn beispielsweiße jemand ein Plugin schreibt, muss er nichts anderes tun als den Plugin Ordner hochladen und angeben wie ers in der Config eingetragen hat, anstelle zu beschreiben, wie genau man es jetzt einbaut etc.
Dachte mir das ist für eine Community einfacher so.

Wie bereits gesagt, es war ne kleine Stütze für die MT2 Section und für mich nen kleines "Du hast langeweile auf der Arbeit also schreibste sowas" - Projekt, das mich gesamt ca 4-5 Stunden gekostet hat.

Klar hätte ichs wie in Joomla etc machen können, das wollte ich aber nicht.
Ich wollte es möglichst einfach halten und dennoch eine volle Änderung offen halten.
So liefert ja zb jedes Plugin für jedes Template eine eigene CSS und images etc, und kann relativ einfach vom Benutzer verändert werden.

War selbst auch am überlegen, ob sichs lohnt eine Art Controller für die php funcs in die Plugins einzubauen, hab es aber dann verworfen, da relativ viele aus der Section das warscheinlich nicht verstanden hätten.


Und wer mir mit Smarty oder sonst iwas kommt, der tut mir persönlich nur leid.
ich meine schaut euch alleine mal an wieviel unnötiges Zeugs da geladen wird, das alles verlangsamt den Seitenaufruf nur und zudem sry aber ich hab für das script hier weniger Zeit gebraucht wie manche von euch gebraucht haben um Smarty überhaupt zu verstehen.
xCPx is offline  
Old 10/09/2013, 22:00   #24


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,221
Received Thanks: 6,758
Wenn du nicht mit den Smartyfunktionen umgehen kannst ist es kein Wunder, wer daraus einen Nutzen zieht wird Smarty bevorzugen. Und nein, ein Templatesystem ist nicht dazu da einzelne HTML Codeschnipsel einzusetzen, sondern um Sachen aus PHP in dein Design einzufügen ohne großartig etwas zu vermischen. Hierbei sollte man auch Logic und Entity voneinander trennen. Außerdem wird Smarty das Ganze nicht verlangsamen, denn es wird gecached und das ist auch gut so. Hier hast du übrigens mal ein kleines Beispiel, wie man damit vernünftig umgehen kann.

PHP Code:
<div id="main_top">Adminpanel</div>
<
div id="main_content">
    <
div id="shout">
        <
table class="shout">
            {foreach 
name=shouts from=$data item=shout}
                <
tr>
                    <
td style="color: #666666; width: 30px;">
                        {
$shout.time|date_format:"%H:%M:%S"}
                    </
td>
                    <
td style="width: 10px; font-weight: bold; text-align: center; {$shout.empireColor}">
                        {
$shout.channel}
                    </
td>
                    <
td style="width: 20px;">
                        <
img src="templates/img/flags/{$shout.country}.png" />
                    </
td>
                    <
td style="width: 500px;">
                        <
a href="?module=admin&action=character&id={$shout.playerId}">{$shout.name}</a> : {$shout.text}
                    </
td>
                </
tr>
            {/foreach}
        </
table>
    </
div>
    <
div class="clear"></div>
</
div
#SoNiice is offline  
Old 10/09/2013, 22:29   #25
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
Quote:
Originally Posted by Hühnchenkopf View Post
Wenn du nicht mit den Smartyfunktionen umgehen kannst ist es kein Wunder, wer daraus einen Nutzen zieht wird Smarty bevorzugen. Und nein, ein Templatesystem ist nicht dazu da einzelne HTML Codeschnipsel einzusetzen, sondern um Sachen aus PHP in dein Design einzufügen ohne großartig etwas zu vermischen. Hierbei sollte man auch Logic und Entity voneinander trennen. Außerdem wird Smarty das Ganze nicht verlangsamen, denn es wird gecached und das ist auch gut so. Hier hast du übrigens mal ein kleines Beispiel, wie man damit vernünftig umgehen kann.

PHP Code:
<div id="main_top">Adminpanel</div>
<
div id="main_content">
    <
div id="shout">
        <
table class="shout">
            {foreach 
name=shouts from=$data item=shout}
                <
tr>
                    <
td style="color: #666666; width: 30px;">
                        {
$shout.time|date_format:"%H:%M:%S"}
                    </
td>
                    <
td style="width: 10px; font-weight: bold; text-align: center; {$shout.empireColor}">
                        {
$shout.channel}
                    </
td>
                    <
td style="width: 20px;">
                        <
img src="templates/img/flags/{$shout.country}.png" />
                    </
td>
                    <
td style="width: 500px;">
                        <
a href="?module=admin&action=character&id={$shout.playerId}">{$shout.name}</a> : {$shout.text}
                    </
td>
                </
tr>
            {/foreach}
        </
table>
    </
div>
    <
div class="clear"></div>
</
div
So und jetzt sag mir mal bitte was daran gut sein soll?
Ich kann genauso alles in nem php script controller intialisieren und dann via <?= $shout->country ?> einsetzen.
Heist nur damit ich mir 3 zeichen spare, verzcihte ich auf synthax highlighting, nen übersichtlichen Quellcode und hab auchnoch n rießen Modul was ich laden darf.
Wirklich Klasse Smarty
Und das Caching von Smarty ist und bleibt bescheiden, sry ist aber so.
Habe den Scheiß im Geschäft mal mit nem Kollegen auf performance getestet und es gibt im Moment nur 1 "PHP-Framework" was noch langsamer ist.
xCPx is offline  
Old 10/09/2013, 22:37   #26
 
Mijago's Avatar
 
elite*gold: 191
Join Date: May 2009
Posts: 1,214
Received Thanks: 2,594
Mädels, beruhigt euch ôo (Es sieht so aus, als würde sich das aufschaukeln)
Statt auf euren Ideen rumzuhacken, setzt euch zusammen und lernt voneinander. Jeder von euch hat etwas interessantes zu bieten.

Aber dann mit höflichen argumenten Sei es auch nur eine nette Floskel... :c
Mijago is offline  
Thanks
2 Users
Old 10/10/2013, 00:47   #27


 
elite*gold: 0
Join Date: Feb 2010
Posts: 7,221
Received Thanks: 6,758
Micha, du behauptest schon seit Ewigkeiten, dass du für schlechten Code aus deiner Firma fliegen würdest - Das was du hier ablieferst ist grottenschlecht bis besch*ssener Code, das wird dir auch jeder ansatzweise professionelle Webdeveloper sagen können. Ich habe dir mit Absicht nur die Templatedatei gezeigt um dir zu zeigen, wie man mit Templates arbeitet - Würdest du nun noch die Logic, die Entity sowie das Modul dahinter sehen würdest du vermutlich aus dem Staunen nicht mehr herauskommen, also bitte - Versuch keine Leute schlechter zu reden, wenn man selbst keine Ahnung hat.
#SoNiice is offline  
Old 10/10/2013, 09:02   #28
 
Assassin''s Avatar
 
elite*gold: 200
Join Date: Nov 2008
Posts: 1,073
Received Thanks: 302
Man geht sogar noch einen Schritt weiter und setzt Designanpassungen ins CSS. anstelle von <td style="..."> steht dann <td class="..."> Aber das obige Beispiel reicht zur Verdeutlichung.

Sinn hinter dem ganzen ist einfach die Übersichtlichkeit. Man kann Darstellung von Logik trennen ohne dabei selber wie ein irrer zu filtern. compiled sieht die Datei aus, wie ein Irrgarten und bei der Fehlersuche darin kommt man manchmal einfach nicht weiter, wen man keine passende Software hat. Daher ist es wichtig, Darstellungsfehler beheben zu können, ohne die Logik versehentlich umzuschreiben und evtl. da einen neuen Fehler unterzubringen.

Und um es nochmal zu verdeutlichen: CMS = Content Management System
Hier muss der Endwanwender ohne irgendwelche Vorkenntnise mit ein paar Klicks möglichst das erreichen, was er möchte. Das ganze basiert auf dem Baukastenprinzip und wird auch von Netzanbietern oder gar kostenlos im Web angeboten.


DAS ist ein wirkliches CMS und beor du groß herumtönst, "ich bin Gott, ihr könnt nix und ich schreibe jetzt DAS CMS, das alles und jeden in den Schatten stellt" solltest du dir die Definition dessen klar machen und auch lernen Objektorientiert zu programmieren.
Assassin' is offline  
Old 10/10/2013, 09:20   #29
 
xCPx's Avatar
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,336
@Payla: Dass das hier nicht perfekt gecodet ist, ist mir bewusst, war nurn grundgerüst bisher.
Wie gesagt ich hab da einfach drauf los geschrieben und es nicht zuende gebracht, da mir das die Com einfach nicht wert war.
Sicherlich wäre es in Plugins übersichtlicher wenn ich zuerst einen Controller geladen hätte, welcher die Variablen Definiert, aber dazu bin ich wie gesagt nichtmehr gekommen, bzw dachte die Com rafft es dann so oder so nichtmehr.
Was du kritisierst ist die Art und weiße wie man Plugins dafür schreiben kann, was ich nicht versteh, da schreiben von Plugins zum Bereich des Webdevelopers gehört und ich es für die ohne großartiges Einlernen in eine Template-Verkorksung wie Smarty bereitstellen wollte.


@Assasin:
Wollte das CMS verhalten an sich durch den Verwaltungseditor erstellen. Diesen hab ich allerdings nicht zuende geschrieben, da mir dazu schlussendlich die Lust dafür fehlt.
Denn ihr vermischt hier irgendwie was.
Das CMS ist für den Inhalt zuständig und nur Inhaltsänderungen sollten ohne großartige Änderungen möglich sein und eben das hab ich versucht soweit hinzukriegen.
Wobei ich nur wiederholen kann, dass der Editor noch lange nicht fertig war, da ich diesen noch um einiges Benutzerfreundlicher gestalten wollte (unter anderem durch einfügen von Bestimmten Bemerkungen etc des erstellers des Templates)
Denn wenn das Design mal Prinzipiell gesetzt ist, was nunmal komplett ohne Kenntnisse nur dann geht wenn man immer den selben aufbau hat, was in der metin2 section ja nicht gerade angebracht wäre, ist das Ändern des Contents ohne weiteres für den User möglich.

mal sehen, vllt schreib ichs noch so fertig, wie ich mir das dachte, wenn ich mal Zeit und Lust dazu finde.

Grüße Micha
xCPx is offline  
Old 10/10/2013, 11:59   #30
 
Pаylasici's Avatar
 
elite*gold: 99
Join Date: Aug 2009
Posts: 4,296
Received Thanks: 5,092
Quote:
Originally Posted by xCPx View Post
@Payla: Dass das hier nicht perfekt gecodet ist, ist mir bewusst, war nurn grundgerüst bisher.
Wie gesagt ich hab da einfach drauf los geschrieben und es nicht zuende gebracht, da mir das die Com einfach nicht wert war.
Sicherlich wäre es in Plugins übersichtlicher wenn ich zuerst einen Controller geladen hätte, welcher die Variablen Definiert, aber dazu bin ich wie gesagt nichtmehr gekommen, bzw dachte die Com rafft es dann so oder so nichtmehr.
Was du kritisierst ist die Art und weiße wie man Plugins dafür schreiben kann, was ich nicht versteh, da schreiben von Plugins zum Bereich des Webdevelopers gehört und ich es für die ohne großartiges Einlernen in eine Template-Verkorksung wie Smarty bereitstellen wollte.
Ich glaub du hast da jemanden verwechselt.
Pаylasici is offline  
Reply




All times are GMT +2. The time now is 20:19.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.