News:

Wondering if this will always be free?  See why free is better.

Main Menu

Modifikationen Erklärungen

Started by Ripper, April 10, 2005, 05:13:43 PM

Previous topic - Next topic

mediman

Quote from: Ripper on May 04, 2005, 04:43:48 PM
Jetzt müsst ihr mir helfen. In dem default Theme gehen alle Mods. Was habe ich vergessen zu machen? Muss ich etwa irgendwelche Dateien in mein Theme Ordner kopieren?

Wenn du per Mod in dem default Theme Dateien verändert hast, die auch in den anderen Themen exisitieren, dann musst du diese ebenfalls abändern, sonst wird der Mod in diesen Themes nicht arbeiten ...

Die Dateien würde ich nicht kopieren, da sonst dein Theme, zumindest diese Dateien betreffend, Aussehen und Funktionalität des default Themes annehmen ...

mediman
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

andrea


Andrea Hubacher
Ex Lead Support Specialist
www.simplemachines.org

Personal Signature:
Most recent work:
10 Aqua Themes for SMF



Ripper

Danke. Aber bei mir sieht das so aus: <edit file>
Sources/Display.php
</edit file>

<search>
?>
</search>

Daniel D.

Quote from: Ripper on May 06, 2005, 04:50:37 AM
Danke. Aber bei mir sieht das so aus: <edit file>
Sources/Display.php
</edit file>

<search>
?>
</search>

Und? Da muss doch noch etwas danach kommen, oder? Verstehst Du das Englisch eigentlich? Solltest Du in eine deutsche Schule gehen, dürfte das doch kein Problem sein, oder?

Ripper

Quote from: Daniel D. on May 06, 2005, 06:05:14 AM
Und? Da muss doch noch etwas danach kommen, oder?
<id>
TheBarOfExperience_11
</id>

<version>
1.1
</version>

<mod info>
Add an Experience's Bar in Post Message.
</mod info>

<author>
FaSan
</author>

<homepage>
http://www.fasan.net/smf
</homepage>


<edit file>
Sources/Display.php
</edit file>

<search>
?>
</search>

<replace>
//Bar of Experience Mod
function barExp()
{
global $txt, $db_prefix, $settings, $bar_posts, $bar_exps;

$bar_post = $bar_posts;
$bar_nextlevel = 50;
$bar_backlevel = 0;
$bar_newlevel = 50;

$check_req = db_query("
SELECT minPosts
FROM {$db_prefix}membergroups
ORDER BY minPosts ASC", __FILE__, __LINE__);

while($row_bar = mysql_fetch_array($check_req))
{
if ($bar_posts >= $row_bar['minPosts'])
$bar_backlevel = $row_bar['minPosts'];
}

$check_req = db_query("
SELECT minPosts
FROM {$db_prefix}membergroups
ORDER BY minPosts DESC", __FILE__, __LINE__);

while($row_bar = mysql_fetch_array($check_req))
{
if ($row_bar['minPosts'] > $bar_backlevel)
$bar_newlevel = $row_bar['minPosts'];
}

$bar_post -= $bar_backlevel;
$bar_nextlevel = $bar_newlevel - $bar_backlevel;

$bar_fill = 0;
$bar_exp = 0;

if ($bar_post > 0)
$bar_exp = round(sprintf(($bar_post / $bar_nextlevel) * 100),2);

$fill = (int) $bar_exp;

    if ($fill)
$bar_fill = '<img src="' . $settings['images_url'] . '/bar_fill.gif" width="' . $fill . '" height="11">';
else
$bar_fill = '';
   
$bar_empty = 100 - $bar_exp;

    if ($bar_empty)
$bar_empty = '<img src="' . $settings['images_url'] . '/bar_empty.gif" width="' . $bar_empty . '" height="11">';
else
$bar_empty = '';
   
if ($fill >= 100 || $fill < 1)
$bar_exps = '<img src="' . $settings['images_url'] . '/bar_up.gif" width="106" height="5"><br><img src="' . $settings['images_url'] . '/bar_full.gif" width="106" height="11"><br><img src="' . $settings['images_url'] . '/bar_down.gif" width="106" height="5"><br>'. $txt['bar_exp_completed'];
else
$bar_exps = '<img src="' . $settings['images_url'] . '/bar_up.gif" width="106" height="5"><br><img src="' . $settings['images_url'] . '/bar_left.gif" width="3" height="11">' . $bar_fill . '<img src="' . $settings['images_url'] . '/bar_right.gif" width="3" height="11">' . $bar_empty . '<br><img src="' . $settings['images_url'] . '/bar_down.gif" width="106" height="5"><br>&nbsp;' . $txt['bar_exp_next'] . '<br>&nbsp;' . $bar_exp . '% ( ' . $bar_post . ' / ' . $bar_nextlevel . ' )';
}

?>
</replace>


<edit file>
Sources/ModSettings.php
</edit file>

<search>
array('check', 'who_enabled'),
</search>

<replace>
array('check', 'who_enabled'),
array('rule'),
// Bar of Experience
array('check', 'bar_exp_enabled'),
</replace>

<edit file>
Themes/default/Display.template.php
</edit file>

<search>
// Show the anchor for the top and for the first message.  If the first message is new, say so.
</search>

<replace>
global $bar_exps, $bar_posts;

// Show the anchor for the top and for the first message.  If the first message is new, say so.
</replace>

<search>
}
// Otherwise, show the guest's email.
</search>

<replace>
//Bar of Experience Mod

$bar_posts = $message['member']['posts'];

barExp();

if (!empty($modSettings['bar_exp_enabled']))
$bar_exper = '<br /><br />' . $bar_exps . '<br />';
else
$bar_exper = '';

echo '
<br /><br />', $bar_exper, '<br />';
}
// Otherwise, show the guest's email.
</replace>


<edit file>
Themes/default/languages/Modifications.english.php
</edit file>

<search>
?>
</search>

<replace>
//Bar of Experience Mod
$txt['bar_exp_enabled'] = 'Enable The Bar of Experience';
$txt['bar_exp_completed'] = '100% Completed ;)';
$txt['bar_exp_next'] = 'Next Level:';

?>
</replace>


<edit file>
Themes/default/languages/Modifications.italian.php
</edit file>

<search>
?>
</search>

<replace>
//Bar of Experience Mod
$txt['bar_exp_enabled'] = 'Abilita Barra dell\' Esperienza';
$txt['bar_exp_completed'] = '100% Completato ;)';
$txt['bar_exp_next'] = 'Prossimo Livello:';

?>
</replace>

Quote from: Daniel D. on May 06, 2005, 06:05:14 AM
Verstehst Du das Englisch eigentlich? Solltest Du in eine deutsche Schule gehen, dürfte das doch kein Problem sein, oder?
Nur weil es unterrichtet wird heißt es nicht das man es versteht. Und dann noch sowas kompliziertes.

andrea

<search>
?>
</search>

<replace>
//Bar of Experience Mod
$txt['bar_exp_enabled'] = 'Abilita Barra dell\' Esperienza';
$txt['bar_exp_completed'] = '100% Completato ;)';
$txt['bar_exp_next'] = 'Prossimo Livello:';

?>
</replace>


Heisst wie es im FAQ erklärt ist:

suche nach dem String ?> und ersetze ihn durch was zwischen den <replace> Tags steht.

Andrea Hubacher
Ex Lead Support Specialist
www.simplemachines.org

Personal Signature:
Most recent work:
10 Aqua Themes for SMF



Ripper

Quote1. Entpacke das Mod Paket, und suche nach der Datei mit der Endung .mod

2. Öffne die .mod Datei mit einem beliebigen Text Editor und suche nach <edit file>...</edit file> , Du findest einen Dateinamen nach diesem Tag. Nun müssen wir nach template Dateien suchen z.B. index.template.php, BoardIndex.template.php ..etc.

3. Wenn Du einen template Dateinamen nach dem <edit file> Tag findest, so wirst Du auch den <search for> ...</search for> Tag darunter finden. Dieser enthält einen Code block der im entsprechenden Template lokalisiert werden muss.

4. Nach dem <search for> Tag, wirst Du einen dieser Tags finden:
<add after>...</add after> , fügt einen Code Block nach dem gefundenen Code ein.
<add before>...</add before> , fügt einen Code Block vor dem gefundenen Code ein.
<replace>...</replace> , ersetzt den gefundenen Code mit einem Codeblock.

Ich habe aber diese <search for> tags nicht und diese tags mit den add's auch nicht.
Und diese search tags kommen auch mehrmals for. Das verwirrt mich irgendwie.

Daniel D.

#27
Du willst mir doch nicht sagen, dass du mit deinem englisch das nicht verstehst?!? Wie kommst du den in der Internetwelt klar? Mit deinem Computer? Wie hast du in der Vergangenheit eine Anleitung gelesen? Wie ein Buch? Von unten nach oben? Von hinten nach vorne? ???

Sorry Ripper, aber wenn du ein Buch oder einen Anleitung nach der Reihe lesen kannst, dann ist das auch bei der Mod Datei möglich. Wo ist das Problem wenn du die Schritte einzeln abarbeitest? Ich verstehe das nicht... ???

Versuche einfach alles nach der Reihe abzuarbeiten. Welche Reihenfolge sollte man sonst einhalten? :-\

Ripper

#28
Davon versteh ich es immer noch nicht. Ich habe jetzt diese Datei gefunden, die zwischen den edit file Tags steht. Und was muss ich damit jetzt machen? Ich versteh das nicht. Und nach was für Template Dateien muss man suchen?

Ich glaub ich hab jetzt schon ein ganz kleines Stückchen mehr verstanden. Aber wo ist dieser search for Tag?


Also ich habe jetzt diesen Tag gefunden. Da steht: <edit file>
Themes/default/Display.template.php
</edit file>

<search>
// Show the anchor for the top and for the first message.  If the first message is new, say so.
</search>


Dann habe ich die Datei geöffnet. Dann soll man ja nach // Show the anchor for the top and for the first message.  If the first message is new, say so. suchen. Das habe ich gemacht. Und dann soll man da ja was ersetzen. Bei mir sieht der Teil, der Display.Template.php so aus: <?php
// Version: 1.0.3; Display

function template_main()
{
global $context$settings$options$txt$scripturl$modSettings;

global $bar_exps$bar_posts;

// Show the anchor for the top and for the first message.  If the first message is new, say so.
echo '
<a name="top"></a>
<a name="msg'
$context['first_message'], '"></a>'$context['first_new_message'] ? '<a name="new"></a>' '';


So jetzt mein Problem. In dem FAQ steht ja man soll das da ersetzen. Aber bei mir steht der Teil da ja schon drin. Womit soll ich das denn ersetzen und wo?

noex

Wenn du die Datei:
Themes/default/Display.template.php

bearbeitest ist es klar dass die Änderungen schon dort sind, da du ja selbst gesagt hast:
Quote from: Ripper on May 04, 2005, 04:43:48 PM
Jetzt müsst ihr mir helfen. In dem default Theme gehen alle Mods. ...

Also musst du genau diese Änderungen auch in den anderen Themes (Skins) durchführen, nur eben nicht den default Ordner beim suchen verwenden, sondern jenen welchen indem dein Theme liegt.

Bei dem Theme "SMFOne" zum Beispiel wäre es dann die Datei (besser gesagt der Pfad zur Datei):
Themes/SMFOne/Display.template.php

und in dieser Datei musst du die Anweisungen (aus der .mod Datei) anwenden.

Also eben z.B.: (in deinem Fall)
<search>
// Show the anchor for the top and for the first message.  If the first message is new, say so.
</search>

<replace>
global $bar_exps, $bar_posts;

// Show the anchor for the top and for the first message.  If the first message is new, say so.
</replace>

<search>
}
// Otherwise, show the guest's email.
</search>

<replace>
//Bar of Experience Mod

$bar_posts = $message['member']['posts'];

barExp();

if (!empty($modSettings['bar_exp_enabled']))
$bar_exper = '<br /><br />' . $bar_exps . '<br />';
else
$bar_exper = '';

echo '
<br /><br />', $bar_exper, '<br />';
}
// Otherwise, show the guest's email.
</replace>



Wenn der Mod bereits funktioniert, musst du wie gesagt nur die Template Dateien deines Themes ändern (enden alle mit template.php), die Source Dateien kannst du auslassen.
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Ripper

#30
*Hand an Kopf klatsch* Ja natürlich. Danke. Ich probiers aus.

Ich wusste das es nicht geht. Jetzt habe ich das in der Display.template.php geändert und hochgeladen. Das sieht jetzt so aus: <?php
// Version: 1.0; Display

function template_main()
{
global $context$settings$options$txt$scripturl$modSettings;
    
global 
$bar_exps$bar_posts;

// Show the anchor for the top and for the first message.  If the first message is new, say so.
echo '
<a name="top"></a>
<a name="msg'
$context['first_message'], '"></a>'$context['first_new_message'] ? '<a name="new"></a>' '';

// Show the linktree as well as the "Who's Viewing" information.


Warum funzt es denn nicht? Hab ich wieder was vergessen?

noex

Weil du in der Display.template.php auch noch das machen musst:

<search>
}
// Otherwise, show the guest's email.
</search>

<replace>
//Bar of Experience Mod

$bar_posts = $message['member']['posts'];

barExp();

if (!empty($modSettings['bar_exp_enabled']))
$bar_exper = '<br /><br />' . $bar_exps . '<br />';
else
$bar_exper = '';

echo '
<br /><br />', $bar_exper, '<br />';
}
// Otherwise, show the guest's email.
</replace>
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"


noex

???  ??? ???
in die Display.template.php deines Themes :P

dort suchst du nach:
}
// Otherwise, show the guest's email.


und ersetzt es durch:
//Bar of Experience Mod

$bar_posts = $message['member']['posts'];

barExp();

if (!empty($modSettings['bar_exp_enabled']))
$bar_exper = '<br /><br />' . $bar_exps . '<br />';
else
$bar_exper = '';

echo '
<br /><br />', $bar_exper, '<br />';
}
// Otherwise, show the guest's email.


Genau so wie du es mit der ersten Änderung auch gemacht hast.
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Ripper

#34
Ok danke. Es macht fortschritte. Jetzt werden nur keine Bilder angzeigt. Und das muss ich jetzt für alle anderen Mods auch machen? Kannst du mir vielleicht nochmal ne kleine Anleitung schreiben? Wie kann ich die Mods denn jetzt übersetzen?

noex

Ja das musst du auch für die anderen Mods machen.
Die Mods kannst du relativ einfach übersetzen. Die Mods ändern meistens die Modifications.english.php, dieselben änderungen die dort angeführt sind musst du auch für die Modifications.german.php machen.

In deinem Fall also:

<edit file>
Themes/default/languages/Modifications.english.php
</edit file>

<search>
?>
</search>

<replace>
//Bar of Experience Mod
$txt['bar_exp_enabled'] = 'Enable The Bar of Experience';
$txt['bar_exp_completed'] = '100% Completed ;)';
$txt['bar_exp_next'] = 'Next Level:';

?>
</replace>


und dann die Texte ersetzen (in der Modifications.german.php):

//Bar of Experience Mod
$txt['bar_exp_enabled'] = 'Aktiviere The Bar of Experience';
$txt['bar_exp_completed'] = '100% erreicht;)';
$txt['bar_exp_next'] = 'N&auml;chstes Level:';


die Übersetzungen dienen nur als Beispiel, da ich jetzt nicht (mehr) weiß was dieser Mod macht.
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Ripper

Ok. Danke. Kannst du mir vielleicht nochmal so ne Schnellanleitung schreiben?

noex

#37
Okay, im Grunde genommen kannst du alles bis zum ersten <edit file> weg lassen.

<edit file> gibt die Datei an in der die nachstehenden Befehle ausgeführt werden müssen - und zwar solange bis ein neuer <edit file> kommt.

Nach einem <edit file> Tag findest du meistens einen <search> Tag, nach dessen Inhalt musst du in der angegebenen Datei suchen.

Wenn du es gefunden hast findest du meistens einen <replace> Tag.
Dieser <replace> Tag gibt an, mit was du das (was im <search> steht) ersetzen musst.

Es kann natürlich vorkommen dass mehere <search> <replace> nacheinander vorkommen, dann musst du alle diese noch in der selben Datei durchführen, außer (wie gesagt) es kommt ein neuer <edit file> Tag, dann gehts natürlich in der "anderen" Datei weiter.

Außer diesen <replace> Tags kann es auch noch <add after> und <add before> geben.

Im Grunde bleibt es aber immer das gleiche System.
Zusammenfassung der Tags:
<search> = suchen
<replace> = das gefundene ersetzen
<add after> = nach dem gefunden einfügen
<add before> = vor dem gefunden einfügen

du musst natürlich bei den <edit file> angaben noch rücksicht auf deine Themes nehmen, denn die meisten Mods ändern nur das default Theme

mfg
noex

PS: siehe FAQ: Wie wende ich Mods auf andere Themen (Skins) an?  
"Jetzt, wo ich weiß wie es geht, versteh ich auch die Gebrauchsanleitung"

Ripper

#38
Super. Dankeschön. Ich hoffe ich werd das jetzt für die nächsten Mods verstehen.

Nochmal ne Frage. Ich habe jetzt ein Mod. da steht:<search for>
<tr>
<td align="right">
<b>', $txt[71], ':</b>
</search for>

Wenn ich diesen Abschnitt jetzt in der Post.Template.php suche, existiert dieser Abschnitt nicht. Was muss ich da machen?

Das ist der Mod Topic Solved. Ich habe jetzt alle Änderungen übernommen außer die, die oben stehen. Jetzt funzt es noch nicht. Wo dran kann das denn liegen?

Daniel D.

Das ein anderes Mod die Stelle schon einmal verändert hat?

Advertisement: