Zum Hauptinhalt springen
OpenID

Neu

Thema: Zusätzliche eigene Seiten (1012-mal gelesen) Vorheriges Thema - Nächstes Thema

0 Benutzer und 1 Gast betrachten dieses Thema.
Zusätzliche eigene Seiten
Da eine eigene Seite etwas individuelles ist, möchte ich kein Addon erstellen. Deswegen eine Schritt für Schritt Anleitung.
Auf ElkArte.net wurde bereits ein Thema von Jorin erstellt. emanuele empfahl dies mit Einfügen von einer einzigen .php Datei. Dies ist für mich nicht die optimale Lösung. Demo => http://elkarte.scaricare.de/
Wichtig! Ich habe als Bezeichnung MyPage, mypage verwendet. Ersetzt dies überall mit eurer Bezeichnung.

1. Dateien erstellen
a) MyPage.controller.php einfügen in => root/sources/controllers/
<?php

/**
 * Handles the moving of topics from board to board
 *
 * @name      ElkArte Forum
 * @copyright ElkArte Forum contributors
 * @license   BSD http://opensource.org/licenses/BSD-3-Clause
 *
 * This software is a derived product, based on:
 *
 * Simple Machines Forum (SMF)
 * copyright: 2011 Simple Machines (http://www.simplemachines.org)
 * license: BSD, See included LICENSE.TXT for terms and conditions.
 *
 * @version 1.0
 *
 */

if (!defined('ELK'))
die('No access...');

class MyPage_Controller extends Action_Controller
{
/**
* Default action handler: just help.
*
* @see Action_Controller::action_index()
*/
public function action_index()
{
$this->action_mypage();
}

/**
* Prepares the help page.
* Uses Help template and Manual language file.
* It is accessed by ?action=help.
*/
public function action_mypage()
{
global $txt, $context, $language, $scripturl;

loadTemplate('MyPage');
loadLanguage('Addons');
       
        $context['linktree'] = false;

// Lastly, set up some template stuff.
$context['page_title'] = $txt['mypage_index'];
}
}
Soll Breadcrumbs (Zeigt an wo man sich aktuell im Forum befindet) angezeigt werden, entfernt
        $context['linktree'] = false;
b) MyPage.template.php einfügen in => root/themes/default/
<?php

/**
 * @name      ElkArte Forum
 * @copyright ElkArte Forum contributors
 * @license   BSD http://opensource.org/licenses/BSD-3-Clause
 *
 * This software is a derived product, based on:
 *
 * Simple Machines Forum (SMF)
 * copyright: 2011 Simple Machines (http://www.simplemachines.org)
 * license:  BSD, See included LICENSE.TXT for terms and conditions.
 *
 * @version 1.0
 *
 */

function template_main()
{
global $context, $txt;

// your content     
echo '       
       <div id="helpmain" class="windowbg2 content">
<h2>', $txt['mypage_content'], '</h2>
</div>';
}
ersetzt
// your content      
echo '       
       <div id="helpmain" class="windowbg2 content">
<h2>', $txt['mypage_content'], '</h2>
</div>';
mit eurem eigenem Inhalt.

2. Sprachstrings
öffnet root/themes/default/languages/german  ~/andere Sprachen
am Anfang oder am Ende einfügen. Für andere aktivierte Sprachen, in dem entsprechendem Ordner/Datei  einfügen. Für weitere Texte fügt dann eigene Sprachstrings ein.
//MyPage
$txt['mypage_index'] = 'Home';
$txt['mypage_content'] = 'Hier entsteht demnächst neuer Inhalt!';

3. Seite in das System intigrieren
öffnet root/sources/SiteDispatcher.class.php
findet (je nach Bezeichnung der Seite, kann nachdem Alphabet der Code eingefügt werden)
            'movetopic2' => array('MoveTopic.controller.php', 'MoveTopic_Controller', 'action_movetopic2'),
dannach einfügen
            'mypage' => array('MyPage.controller.php', 'MyPage_Controller', 'action_mypage'),

4. Button
Falls die eigene Seite als Startseite genutzt werden soll, diesen Abschnitt überspringen und mit Punkt 5. fortfahren

öffnet root/sources/Subs.php
findet (je nachdem wo der Button eingefügt werden soll)
a) Am Anfang vor "Forum"
		// Start things up: this is what we know by default
require_once(SUBSDIR . '/Menu.subs.php');
       
$buttons = array(
b) Am Ende nach "Neue Antworten"
			'contact' => array(
'title' => $txt['contact'],
'href' => $scripturl . '?action=contact',
'data-icon' => '',
'show' => $user_info['is_guest'] && !empty($modSettings['enable_contactform']) && $modSettings['enable_contactform'] == 'menu',
),
a) b) danach je einfügen
 		    mypage' => array(
    'title' => $txt['mypage_index'],
    'href' => $scripturl . '?action=mypage',
    'data-icon' => 'xxx;',
    'show' => true,
    ),
xxx ersetzen mit => &#xf039 oder  Mehr icons => http://fortawesome.github.io/Font-Awesome/cheatsheet/. Dieses wird für die mobile Ansicht benötigt.

5. Startseite
Bei aufrufen der Webseite erscheint die Seite zuerst (www. meinforum. de)

Datei erstellen
.htaccess einfügen in => root/
#
# Uncomment the statement below if you want to make use of
# HTTP authentication and it does not already work.
# This could be required if you are for example using PHP via Apache CGI.
#

DirectoryIndex index.php?action=startpage index.php index.html index.htm
öffnet root/sources/Subs.php
findet
function setupMenuContext()
{
global $context, $modSettings, $user_info, $txt, $scripturl, $settings;
ersetzt mit
function setupMenuContext()
{
global $boardurl, $context, $modSettings, $user_info, $txt, $scripturl, $settings;

    $parsed = parse_url($boardurl);
findet
		// Start things up: this is what we know by default
require_once(SUBSDIR . '/Menu.subs.php');
       
$buttons = array(
danach einfügen Danke TE  :)
		'mypage' => array(
'title' => $txt['mypage_index'],
'href' => $parsed['scheme'] . '://' . $parsed['host'] . (!empty($parsed['port']) ? ':' . $parsed['port'] : '') . '/',
'data-icon' => xxx;',
'show' => true,
),
xxx ersetzen mit => &#xf039 oder  Mehr icons => http://fortawesome.github.io/Font-Awesome/cheatsheet/. Dieses wird für die mobile Ansicht benötigt.

6. Buttons aktiv setzen
nicht unbedingt notwendig, wenn nach obigen Anweisungen erstellt wurde

öffnet root/sources/Subs.php
findet
	elseif ($context['current_action'] == 'moderate' && $context['allow_admin'])
$current_action = 'admin';
danach einfügen
	if ($context['current_action'] == 'mypage')
$current_action = 'mypage';

Zu guter Letzt, Gestaltung
Da ja viele mittlerweile viele Mobil online gehen, gestaltet in der Breite nicht zu viel Inhalt. Nur 2 statt 3 Spalten. Gestaltet euren Inhalt Responsive. Hier noch ein paar Links:

Achtet aber darauf, je mehr ihr .css Codes einfügt, können andere überschrieben werden.

Um Rückmeldung wird gebeten, ob Negativ oder Positiv. Danke   :)
Gruß Stephan

Je suis Paris!

Antw.: Zusätzliche eigene Seiten
Antwort #1
Hallo Wintstar,
bei Zeiten versuche ich es mal, umzusetzen und denke, das bekomme ich hin. Ich weiss wie wichtig im Forum solche Seiten wie Impressum und Datenschutz sind und habe es zwar mit einem Addon umgesetzt, aber schön ist es, wenn es Menüpunkte in der Header-Navigation sind. Das ist dann mit dem Forum Eins.
Forum: Hier
Blog: Hier
Wiki: Hier

Antw.: Zusätzliche eigene Seiten
Antwort #2
Ich arbeite derzeit meine SMF Modifikation Impressum für ElkArte zu potieren. Demo siehst du hier => http://experiri.scaricare.de/index.php?action=imprint. Aber erst werde ich mein Addon ElkArte Ajax Chat fertig stellen.

Zur obigen Anweisung werde ich noch ein paar Verbesserungen posten. Und zwar wie man das als Hook intigrieren kann. Das hat dann den Vorteil, das man diese Seite nicht nach einem Foren-Update neu intigrieren muss.
  • Zuletzt geändert: 12. September 2015, 12:55 von wintstar
Gruß Stephan

Je suis Paris!