block in outline-header

Begonnen von danielf, 22 November 2008, 19:46:10

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

danielf

statt der suchfunktion im thema outline, hätte ich gerne, dass rechts oben im header der letzte beitrag im forum, bzw. titel des beitrags angezeigt wird,

habe jetzt hier auch schon einiges zu dem thema gelesen, da mich aber die vermutung plagt, dass es wieder von theme zu theme unterschiedlich ist, doch mal meine frage

wie kann ich (als nichtphpkenner) dass relativ pragmatisch umsetzen, dass anstelle der suchfunktion und logins im header rechts oben mir nen block letzten beitrag anzeigt?

oder ist dieses hier schon die besteinzige möglichkeit? auch fürs outline?

http://www.pragmamx.org/Forum-topic-27203.html


oder ob es block heißt, jedenfalls dass er den letzten beitrag von smf ausliest, irgendwie so


platz dafür habe ich schon geschaffen :-)
http://www.potsdamnews.de

pragmamx ist schon prima für unwissende, wie mich, aber doch ganz ohne php ists dann doch doof  :smile:

danielf

scheint ja doch gravierender als von mir angenommen zu sein, keine anleitung für dummies?

ich dachte nen code includeblabla im header hinein und fertig ist der salat, so ganz pragmatisch  :quest

danielf

letzter Versuch - Frage

gibt es jemanden der das für mich für n kleines Entgelt umsetzen könnte? nur das eben oben im Header der letzte Beitrag im smf-board gezeigt wird, der Betreff und Autor, sowie datum, wie üblich nur den einen letzten

nun dann höre ich mal auf zu nerven  :red:

Andi

Hoi :)

meinst du sowas in der Art?
http://www.pragmamx.org/SSI.php?ssi_function=recentPosts

Hatte ich hier was dazu geschrieben:
http://www.pragmamx.org/Forum-topic-27887-start-msg180994.html#msg180994

Müsste man dann nur in das Theme einbauen, Beispiel hätte ich auch hier....
schön´s Grüssle, Andi

danielf

ja, nur eben der letzte beitrag mit beitrag-betreff da nicht so viel Platz dort ist, von wem, und wann,
diese 3 angaben von dem 1 letzten post im header, rechts oben wo jetzt bei mir der login zu sehen ist

also optisch dann so:

Letzter Beitrag
Re: frage
von: danielf
heute 17:02 uhr

kurz und knackig, so dass man gleich auch wie üblich drauf klicken kann und im entsprechenden post landet,

kannst Du mir da helfen?   :)

Andi

Oki, ich gugg mal.
Ist kein grosser Act....  :)
schön´s Grüssle, Andi

Andi

Sodale, nachfolgend die Anleitung....


Wir editieren die functions.php, des Themes.
Die bisher an dem Platz angezeigte Funktion mx_theme_loginform() lassen wir unverändert, so dass man sie päter bei Bedarf einfach wieder verwenden kann. Auch den Platzhalter in der theme.html lassen wir unverändert, wobei das Umfeld bei Bedarf natürlich optisch angepasst werden kann/sollte.

Das Ersetzen des Platzhalters in der Funktion theme_define_placeholders() wird wie folgt abgeändert.
Die zeile $part[] = array("{LOGINFORM}", mx_theme_loginform());
wird auskommentiert und darunter eine etwas abgeänderte neue Zeile eingefügt. Das sieht dann so aus:
// $part[] = array("{LOGINFORM}", mx_theme_loginform());
$part[] = array("{LOGINFORM}", mx_theme_bblastpost());

Das bedeutet einfach nur, dass die alte Zeile erhalten bleibt, dass wire sie später bei bedarf reaktivieren können. Und dass der Platzhalter {LOGINFORM} in der theme.html, durch die Ausgabe der neu zu erstellenden Funktion  mx_theme_bblastpost() ersetzt wird.

Diese neue Funktion fügen wir am Ende der functions.php ein und sieht wie folgt aus:
<?php
/**
 * mx_theme_bblastpost()
 *
 * @return lastpost from SMF-Board (html)
 */
function mx_theme_bblastpost()
{
    
/* Modulname des SMF Forums */
    
$module_name 'Forum';
    
/* Foren, die nicht beachtet werden sollen, als Array() */
    
$exclude_boards null// z.B. array(2,53,44,8);

    /* Funktions-Rueckgabe initialisieren */
    
$view '';

    
/* Nur ausfuehren, wenn Forum nicht geladen und Forum fuer User erlaubt */
    
if (MX_MODULE != $module_name && mxModuleAllowed($module_name)) {
        
/* versch. Variablen global setzen, die in den SMF Dateien benoetigt werden */
        
global $db_prefix$settings$context$scripturl$mxsmf;

        
/* die SSI-Datei includen */
        
include('modules/' $module_name '/mx_SSI.php');

        
/* SSI-Funktion aufrufen, 1 Datensatz, Ausgabe als Array */
        
$data ssi_recentPosts(1$exclude_boards'array');

        
/* Ausgabe fuer pragmaMx umschreiben, z.B. die Links */
        
$data mxSmfPrepareOutput_recursive($data[0]);

        
/* folgendes einkommentieren um die Daten anzusehen */
        // mxDebugFuncVars($data); #exit;
        /* folgendes einkommentieren um die Sprachvariablen anzusehen */
        // mxDebugFuncVars($txt); #exit;

        /* wenn Daten vorhanden */
        
if (!empty($data['link'])) {
            
/* Die HTML-Ausgabe zusammen basteln */
            
$view '<div style="text-align: left"><b>' $txt['22'] . '</b>:<br />
            ' 
$data['link'] . '<br />
            ' 
$txt['107'] . ': ' $data['poster']['link'] . '<br />
            ' 
$data['time'] . '
            </div>'
;
        }
    }
    
/* Daten zurueckgeben */
    
return $view;
}
?>

Achtung! ohne <?php ?> drumrum ;)


Das war es schon :)


Die eigentliche Ausgabe ist dieser Teil:
            <div style="text-align: left"><b>' . $txt['22'] . '</b>:<br />
            ' . $data['link'] . '<br />
            ' . $txt['107'] . ': ' . $data['poster']['link'] . '<br />
            ' . $data['time'] . '
            </div>

Das kann nach belieben angepasst werden. Um die verfügbaren Daten und Sprchvariablen anzuzeigen kann man einfach die auskommentierten Debugausgaben aktivieren....


Zu beachten und ohne tiefgreifende Codeänderungen auch nicht zu ändern ist, dass die Anzeige nicht angezeigt werden kann, wenn das Forum als Modul angezeigt wird.
schön´s Grüssle, Andi

danielf

WOW

Vielen Dank Andi

hat super geklappt  :smile:


um den Block in Grenzen zu halten, kann ich da irgend ne Begrenzung einfügen, sollte der Beitrag-Betreff länger als 25 Zeichen sein meinetwegen "..." hinten dran gesetzt werden? habe es mal getestet, sonst landet der Block irgendwo im zentrum der Seite

wenn man sich im Forum befindet wird der Block im Header nicht angezeigt, aber das egal

Glückliche Grüße