Hallo,
ich erkläre euch heute, was IV CMS4 ist.
IV CMS4 ist ein CMS, das in PHP aufgebaut ist.
Es hat ein ADmin bereich, der sehr übersichtlicht ist und es ist kinderleicht ein Design im cms einzubauen.
Wie Installiere ich IV CMS4
Nachdem ich in der ersten Anleitung nur die einzelnen Module beschreiben habe, beschreibe ich hier nun den weg vom Download bis zur fertigen Seite.
Schritt eins - das Downloaden
Ja, auch das sollte man erklären, denn es gibt immer wieder neue Versionen. Download link:
(download von der Offizellen Seite)
Nachdem Downloaden müsst ihr das CMS entpacken und dann auf eueren Server hochladen. Nun musst du den Ordner uploads noch erstellen und diesem sowie dem Ordner files die Rechte 777 geben.
Schritt zwei - Installation vorbereiten
Um bei der Installation zügig vorankommen zu können benötigst du folgende Daten:
Datenbank host ( Meist localhost )
Datenbank name ( ggf. eine Datenbank zuerst erstellen )
Datenbank nutzer
Datenbank passwort
Wenn du bei alle diesen Punkten die benötigten Daten hast, kannst du zu Schritt drei.
Schritt drei - die Installation
Rufe die Installationsdatei auf. DeineDomain.de/ZumCMS/install/
Nun kannst du dort alle Felder ausfüllen. Bei Prefix solltest du einen Prefix eintragen. Ein Prefix ist eine zeichenkombination, welche vor den eigentlichen Tabellen Namen geschrieben wird. Dies ermöglicht mehrfachenutzung eines IVs innerhalb einer Datenbank.
Nun musst du nurnoch auf Installieren klicken und das CMS ist fast fertig.
Schritt vier - das Arbeiten vorbereiten
Logge dich nun in das CMS ein DeineDomain.de/ZumCMS/admin.php z.Z. wird kein Capchter Code benötigt.
Gehe nun zu deinen Profieleinstellungen ( Allgemein->Profil ). Hier musst du nun unter "Einstellungen ändern" einen Syntaxeditor wählen und dann auf speichern klicken.
Schritt fünf - Desgin vorbereiten
Nun muss das Design noch vorbereitet werden.
Ein Design besteht meist aus 2 Teilen:
1. Dem Hintergrund auf dem die Boxen sitzen -> Layer
2. Die eigentlichen Boxen -> Panel
Den ersten Schritt, den ihr mit euerem Template nun durchführen müsst, ist die Panels vom Layer zu trennen. Diesen Schritt kann man nun leider nicht genau Beschreiben, da dies bei jedem Template anders ist.
Um sich die Arbeit leichter zu machen, fügt man, nachdem man die "Box" vom Template entfernt hat einen Platzhalter ein. Platzhalter {WUNSCHNAME}
Um ein Template richtig vorbereiten zu können, sollte man sich mit diesem auskennen. Man sollte nach dem Bearbeiten also nicht Platzhalter haben wie {NAVIGATION}, {WUSSTEST-DU-SCHON}, {WERBUNG}
Sondern {LINKS}.
Hier fügt man nun alle Panels nacheinander ein, man benötigt nicht für jedes einen Platzhalter.
Schritt sechs - Desgin ins CMS einbaun
Als erstes erstellen wir einen Style. Dies können wir unter Content Verwaltung -> Templates machen. Nennen wir diesen Style 1. Nun wählen wir diesen Links aus und klicken auf Layertemplates. Dort erstellen wir ein neues Template und nennen dies Haupttemplate. Hier fügen wir nun den Code ein, der mit den Platzhaltern.
Nun klicke noch auf Speichern. Danach gehe auf Paneltemplates und erstelle dort Templates wie Boxen, Content usw. Füge auch dort den enstsprechenden Code ein.
In einem Paneltemplate stehen dir folgende Platzhalter zur verfügung:
* {TITLE} Wird durch den Titel des Panels ersetzt
* {BODY} Wird durch den Inhalt des Panels erstzt
Schritt sieben - Platzhalter verfügbar machen
Nun fügen wir unter Content Verwaltung -> Panelsgroups noch die entsprechenden Platzhalter ein. Unter Name gibst du dem Platzhalter einen beliebigen Namen. Dieser begegnet dir im ganzen CMS immer wieder, wähle diesen also eindeutig. Unter Platzhalter fügst du den Platzhalter ein, wie dieser auf dem Layertemplate steht, nur ohne {}.
Nun sind wid wir der eigenen Seite schon sehr nahe.
Schritt acht - der "Hello World" Content
Nun sind wir soweit. Bei jeder Programmiersprache schreibt man am anfang das "Hello World" Programm, was nichts anderes kann als Hello World auszugeben. Da wir hier aber keine Programmiersprache lernen, und auch nicht nur Hello World sehen wollen, führen wir dies erst jetzt durch.
Gehe unter Content Verwaltung -> Content Manager auf Layer erstellen. Gebe diesem den Namen "Startseite". Erstelle nun ein Panel, direkt darunter und nenne dieses "Hello World - Panel". Wähle bei Panelgroup, die, die für den Content gedacht ist, und bei dem Paneltemplate auch dies, das für den Content gedacht ist.
Klicke nun auf Inhalt bearbeiten, und schreibe "Hello World" hinen und klicke auf Speichern, danach auf Abbrechen. Nun wähle oben bei den Optionen Startseite aus.
Rufe nun die index.php auf, dort sollte nun dein Hello World stehen, wenn nicht hast du etwas falsch gemacht. Gehe in diesem Fall die Anleitung nochmals durch.
Usermodifikationen - Was ist das?
Usermodifikationen sind "Addon´s" für euer CMS.
Es gibt verschiedene dazu.
Zum Beispiel: News System, Grußbox, Bann System oder Dj Sagt (Shoutbox system)
Dateiname: DJ-sagt Modul
Dateityp: Modul
Admin einbinden: Kein Hacken
Index einbinden: Kein Hacken
Interface einbinden: Kein Hacken
Rechtesystem: Hacken
So jetzt sucht ihr in der Dateiliste die Datei "DJ-sagt Modul" und in der Spalte "Aktionen" wählt ihr das erste Symbol von rechts aus.
Allgemeines
So, nach langem Tüfteln habe ich nun mein erstes grösseres PHP-Projekt beendet und biete ihn nun an.
Bei Fragen kann man mir eine PN zukommen lassen oder dirket im Thread fragen.
Update
Aktuelle Version: 0.1
Behebung eines Fehlers im Grundsystem (Danke an Claudio)
Installation
Installation | Downloadverzeichniss
Logge dich auf deinem FTP-Server mir deinen FTP-Daten ein.
Nun legst du im selben Verzeichniss wo sich das IV4-System befindet
ein Verzeichniss an mir dem Namen "downloads". (Ohne Klammer!)
Gib diesem Ordner per CHMOD die Rechte 777.
Installation | Downloadmanager
Erstellen der Moduldatei in "Developer Tools -> Dateiverwaltung"
Code:
Dateiname: Downloadmanager
Dateityp: Module
Admin einbinden: Kein Haken
Index einbinden: Kein Haken
Interface einbinden: Kein Haken
Rechtesystem: Haken
Hier mal mein PHP-Panel für eine simple Volltextsuche im IV-CMS 4
Code:
Features
- Volltextsuche
- Links zu Layern inklusive Namen
- JavaScript um Automatisch den Fokus auf das Formular zu setzen
- vvm.
- Unter Entwicklung -> Wünsche werden umgesetzt (Falls erfüllbar)
Code:
Changelog
[19.06.2009] Grundfunktionen sind fertig gestellt.
[20.06.2009] Zusätzlich zum Link sieht man nun auch eine Vorschau!
[20.06.2009] Kleinere Bugfixes. Danke an WitKin!
//Wenn noch keine Eingabe erfolgt ist Einleitung ausgeben
if(!isset($_GET['suche']))
echo '<p>Um '.$conf['page']['name'].' zu durchsuchen, steht dir die Suche zur Verfügung. Als Wildcard dient *.</p>';
//Wenn gesucht wurde, jedoch ohne eine Eingabe
if(isset($_GET['suche']) && empty($_GET['suche']))
echo '<p>Wer nach Nichts sucht, der findet auch Nichts!</p>';
//Wenn die Suche weniger als 3 Zeichen hat Suche abbrechen
if($_GET['suche'][3]=='' && isset($_GET['suche']))
echo '<p>Dein Suchwort sollte aus mehr als 3 Zeichen bestehen!</p>';
//Wenn gesucht wird, die Suche nicht leer ist und mehr als 3 Zeichen hat
if(isset($_GET['suche']) && !empty($_GET['suche']) && $_GET['suche'][3]!=''){
//Suche in content_variable nach dem Suchwort, führe auf Panel zurück, führe auf Layer zurück, gebe id, name und value zurück.
$results = $db->fetch_query("SELECT l.id, l.name, v.value FROM ".$prefix."content_variable v " .
"LEFT JOIN ".$prefix."content_panel p ON (v.panel = p.id) " .
"LEFT JOIN ".$prefix."content_layer l ON (p.layer = l.id) " .
"WHERE v.value LIKE '%".str_replace("*", "%", $_GET['suche'])."%' " .
"AND p.status = 0 AND l.status = 0 LIMIT 30");
//Wenn exakt 30 zurückgegeben werden, so ist es hoch wahrscheinlich, dass es noch mehr gibt
if(count($results)==30)
echo '<p>Deine Such ergab zu viele Treffer. Konkretisiere sie!</p>';
//Wenn es keine Ergebnisse gibt sind wird natürlich traurig
if(!count($results))
echo '<p>Leider ergab deine Suche keine Treffer. Konkretisiere sie, oder nutze den Wildcard *.</p>';
//Andernfalls folgt eine ausgabe
else{
foreach($results as $data){
//Wenn ein Wildcard gesetzt ist, so müssen wir erstmal das ganze Wort herausfinden
if(strpos($_GET['suche'], '*')!==false){
preg_match('~'.str_replace('*', '.*?', $_GET['suche']).'~i', $data['value'], $word);
//Hier setzen wir das gefundene Wort auf den Wert vom Get-Parameter "suche"
$_GET['suche'] = $word[0];
}
//Berechnung der Stelle an der gefunden wurde
$foundat = stripos($data['value'], $_GET['suche']);
//Wenn die Textstelle größer als 30 ist, wählen wir ein Offset, damit das gesuchte Wort im Kontext steht. Ansonsten ist der Textanfang die beste Lösung
if($foundat>30) $foundat = $foundat-30; else $foundat = 0;
//Wenn wir ein Offset wählen machen wir dies durch Punkte sichtbar
if($foundat!=0) $add = '...'; else $add = '';
//Das Suchwort machen wir fett
$textausschnitt = str_replace($_GET['suche'], '<b>'.$_GET['suche'].'</b>', substr(strip_tags($data['value']), $foundat, 75));
//Sollten wir Anzeichen von PHP finden geben wir den String aus Code-Schutz-Gründen nicht aus.
if(eregi("'", $textausschnitt) || eregi('\$', $textausschnitt)) $textausschnitt = 'Keine Volltextvorschau verfügbar.';
//Die Suchergebnisse fassen wir in ein Array zusammen um sie schön trennen zu können
$output[] = '<p><a href="index.php?page='.$data['id'].'">'.$data['name'].'</a><br />' .
$add . $textausschnitt .'...</p>';
}
//Eine klare Ausgabe der Ergebnisse
echo '<p>Deine Suche ergab die folgenden Ergebnisse:<br />'.implode("<br />", $output).'</p>';
}
}
Allgemeines:
Also ich versuchte dauernt ein Userbild zu machen dann kamm ich drauf wie man ein userbild mit url in das Profil einbauen kann.
Beschreibung:
Hiermit kannst du den User'n ermöglichen ein Userprofil Bild mit URL einzutragen.
installation:
Datenbank
Folgende Befehle in der Datenbank ausführen:
iv4 mit eurem Prefix ersetzen!
[mysql]ALTER TABLE `iv4_user_data` ADD `userpic` VARCHAR ( 255 ) NOT NULL AFTER `email`;[/mysql]
Script
Erstelle eine neue Datei unter Developer Tools -> Dateiverwaltung
Code:
Dateiname: Userbild Hochladen
Dateityp: Scripte
Admin einbinden: Kein Haken
Index einbinden: Kein Haken
Interface einbinden: Kein Haken
Rechtesystem: Haken
Script einrichten
Gebe der erstellten Datei einen Inhalt Developer Tools -> Dateiverwaltung und bei der Datei "Userbild Hochladen" auf das erste Icon (Bearbeiten) klicken!
INSERT INTO `cms_gb_stat` (`id`, `status`) VALUES
('', 1);[/mysql]
[mysql]CREATE TABLE `cms_gruse` (
`id` int(250) NOT NULL auto_increment,
`name` varchar(250) NOT NULL,
`nachricht` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
So jetzt geht ihr zu Developer Tools->Dateiverwaltung und erstellt folgende Datei:
Dateiname: Grußboxmodul
Dateityp: Modul
Admin einbinden: Kein Hacken
Index einbinden: Kein Hacken
Interface einbinden: Kein Hacken
Rechtesystem: Hacken
So jetzt sucht ihr in der Dateiliste die Datei "Grußboxmodul" und in der Spalte "Aktionen" wählt ihr das erste Symbol von rechts aus.
So jetzt geht ihr wieder zu Developer Tools->Dateiverwaltung und erstellt folgende Datei:
Dateiname: Grußboxpanel
Dateityp: Script
Admin einbinden: Kein Hacken
Index einbinden: Kein Hacken
Interface einbinden: Kein Hacken
Rechtesystem: Hacken
So jetzt sucht ihr in der Dateiliste die Datei "Grußboxpanel" und in der Spalte "Aktionen" wählt ihr das erste Symbol von rechts aus.
Hallo,
da viele von euch immer gefragt haben, ob es auch ein Nachrichten System für das Fronted zur Verfügung steht, habe ich einfach das Backend System umgecodet.
Funktion: Du das Newssystem können nun auch User auf deiner Seite Private Nachrichten schreiben.
Geht unter Developer Tools aus Daten Verwaltung und erstellt ein neues Script:
Dateinamename: Nachrichten System
Dateityp: Script
Admin einbinden: Kein Hacken
Index einbinden: Kein Hacken
Interface einbinden: Kein Hacken
Rechtesystem: Hacken
Filtert nun nach Scripte und ihr klickt auf den Bearbeitungs Button vom Nachrichten System und folgendes kommt hinein:
PHP Code:
// Per GET Titel der Boxen bestimmen
if( isset( $_GET['outbox'] ))
$titel_box = "Postausgang";
elseif ( isset( $_GET['drafts'] ))
$titel_box = "Entwürfe";
elseif( isset( $_GET['msg'] ))
$titel_box = "Neue Nachricht schreiben";
else
$titel_box = "Posteingang";
// Query für Listenausgabe
$inbox = $db->fetch_query( "SELECT msg.id, msg.subject, msg.date, msg.content, von.name 'from', an.name 'to'
FROM `".$prefix."user_msg` msg
LEFT JOIN `".$prefix."user_data` von ON ( msg.`from` = von.id ) LEFT JOIN `".$prefix."user_data` an ON ( msg.`to` = an.id )
WHERE msg.owner = ".$userdata['id']." AND msg.`to` = ".$userdata['id'] );
// NachtrÃÆâ€™¤gliche Darstellungsmanipulation der Liste (date => Datum, f_uid => Name)
foreach( $inbox as $num => $val )
$inbox[$num]['date'] = date( 'd M Y, H:i', $val['date'] );
// Query für Listenausgabe
$outbox = $db->fetch_query( "SELECT msg.id, msg.subject, msg.date, msg.content, von.name 'from', an.name 'to'
FROM `".$prefix."user_msg` msg
LEFT JOIN `".$prefix."user_data` von ON ( msg.`from` = von.id ) LEFT JOIN `".$prefix."user_data` an ON ( msg.`to` = an.id )
WHERE msg.owner = ".$userdata['id']." AND msg.`from` = ".$userdata['id'] );
// Nachträgliche Darstellungsmanipulation der Liste (date => Datum, f_uid => Name)
foreach( $outbox as $num => $val )
$outbox[$num]['date'] = date( 'd M Y, H:i', $val['date'] );
Allgemeines
Hier habt ihr jetzt das gesuchte Codesystem.
Für Verbesserungsvorschläge bin ich immer bereit!
Beschreibung
Im Adminbereich legt ihr Codes an und gebt ihnen einen Wert. Diese Codes könnt ihr nun an User weitergeben. Sie können dann den Code auf der Seite einlösen und bekommen die Punkte. In der Toplist kann man dann sehen wer am Meisten Punkte gesammelt hat.
Installation
Datenbank
Folgende Befehle in der Datenbank ausführen:
iv4 mit eurem Prefix ersetzen!
[mysql]CREATE TABLE `iv4_codes` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`code` VARCHAR( 255 ) NOT NULL ,
`status` INT NOT NULL ,
`wert` INT NOT NULL ,
`from` INT NOT NULL ,
`create_by` INT NOT NULL ,
`create_date` VARCHAR( 255 ) NOT NULL ,
`update_by` INT NOT NULL ,
`update_date` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB;
[/mysql]
[mysql]ALTER TABLE `iv4_user_data` ADD `punkte` INT NOT NULL AFTER `email`;
[/mysql]
Installation
Erstelle eine neue Datei unter Developer Tools -> Dateiverwaltung
Code:
Dateiname: Code System
Dateityp: Module
Admin einbinden: Kein Haken
Index einbinden: Kein Haken
Interface einbinden: Kein Haken
Rechtesystem: Haken
Gebe der erstellten Datei einen Inhalt Developer Tools -> Dateiverwaltung und bei der Datei "Code System" auf das erste Icon (Bearbeiten) klicken!
Füge dann diesen Code ein:
Erstelle nun wieder eine neue Datei unter Developer Tools -> Dateiverwaltung:
Code:
Dateiname: Code Panel
Dateityp: Skripte
Admin einbinden: Kein Haken
Index einbinden: Kein Haken
Interface einbinden: Kein Haken
Rechtesystem: Haken
Gebe der erstellten Datei einen Inhalt Developer Tools -> Dateiverwaltung und bei der Datei "Code Panel" auf das erste Icon (Bearbeiten) klicken!
Füge dann diesen Code ein:
PHP Code:
if (isset($_POST['code'])) {
$code = trim($_POST['code']);
$co = $db->get($prefix."codes", "code='$code' and status=1", 1, -1);
if (empty($co)) {
echo "Der Code ist nicht vorhanden oder wurde schon eingelöst.";
} else {
$neuepunkte = $userdata['punkte'] + $co['wert'];
$usersave = array( "punkte" => $neuepunkte );
$db->update( $prefix."user_data", $usersave, "id = '$userdata[id]'" );
$codesave = array( "status" => 0, "from" => $userdata[id] );
$db->update( $prefix."codes", $codesave, "id = '$co[id]'" );
echo "Du hast den Code erfolgreich eingelöst!";
Erstelle nun wieder eine neue Datei unter Developer Tools -> Dateiverwaltung:
Code:
Dateiname: Toplist Panel
Dateityp: Skripte
Admin einbinden: Kein Haken
Index einbinden: Kein Haken
Interface einbinden: Kein Haken
Rechtesystem: Haken
Gebe der erstellten Datei einen Inhalt Developer Tools -> Dateiverwaltung und bei der Datei "Toplist Panel" auf das erste Icon (Bearbeiten) klicken!
Füge dann diesen Code ein:
[Sammeltread]Alles in einem ! 04/20/2010 - Metin2 Private Server - 14 Replies Hallo Elitepvpers Com,
Ich dachte mir vllt. könnte dieser Tread nützlich sein für Elitepvpers Nutzer die NICHT mit der Sufu umgehen können.
Ich werde Komplett Alles Auflisten was ich so an Material Finden Werde !
Ich werde versuchen den Tread immer Aktuell zu halten !
Privaten Server Erstellen über Hamachi:
• http://www.elitepvpers.com/forum/metin2-pserver-gui des-strategies/342850-p-server-erstellen-etc-all-i nc.html
•...
Alles über PServer 03/15/2010 - Metin2 Private Server - 3 Replies Hallo e*pvp :D
Ich werde erneut einen server starten. Dieses Mal möchte ich aber kein hamachi mehr sondern ein homeroot. Nun welche Schritte muss ich alle befolgen? Ja ich weiss existieren tausende von threads die alles erklären und co doch ich werde diesen thread dann in eine präzise, verständliche Erklärung verwandeln.
1.0 Welche Programme sind alle nötig?
1.1 Für was dienen sie?
1.2 Welche sind für was bestimmt?
2.0 Wie muss ich anfangen?
2.1 Was muss ich alles genau beachten?
[Guide] Alles, aber wirklich ALLES über Metin SEA 10/15/2009 - Metin2 Guides & Templates - 28 Replies Die dumme Fragerei geht mir am Sack, deswegen ->
Für was steht Metin SEA?
SEA steht für South East Asia. (zu deutsch: Süd Ost Asien)
Ist Metin.sea ein Privater o. ein Offi Server?
Ist ein offizieller Server. Ein Amerikaner hat die Rechte von YMIR gekauft.