Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
max. Anzahl Zeichen für Gäste im Post
#1
Hallo,

gibt es die Möglichkeit für Gäste die Threads zwar aufmachen zu können, jedoch nicht den ganzen Thread lesen zu können, sondern nur eine max. Anzahl von Zeichen im Eingangs thread zu lesen.

So wie im Pro Portal mit den Ankündigungen nur ohne [mehr lesen] ?

VG
Carsten
Zitieren
#2
Hallo,

Evtl. gibt es ein Plugin dazu.

Ansonsten, mal so ins Blaue überlegt, könnte man in der showthread.php für den Gast entweder nur den ersten Beitrag laden oder, falls der Thread an der Stelle bereits geladen ist, den Rest aus dem Array entfernen.

Die Anzahl der Zeichen, bekommst Du leicht mit substr() gelöst.

Wäre gedanklich mein erster Ansatz. Wo es da noch Komplikationen gibt, kann ich Dir adhoc nicht sagen.
Aber ich denke in die Richtung müsste was möglich sein.

Gruß Arne
PHProcks! - Eine Initiative der deutschen PHP Community
Den mir geposteten Core-Anpassungen sind Plugins nach Möglichkeit immer vorzuziehen!
Zitieren
#3
Plugin wäre natürlich die eleganteste Lösung, aber wo und nach was muß ich da suchen?

Proggen bekomme ich leider noch nicht so hin, einfache Sachen gehen aber wenn dann schon ein Fehler kommt steh ich komplett auf dem Schlauch.
Zitieren
#4
Wonach Du für ein Plugin suchen musst, wüsste ich auch grad nicht, aber das könnten Dir die MyBB-Spezies sicher sagen, nehme ich mal an. Vielleicht weiß sogar jemand eines.

Beim selber entwickeln könnte ich Dir unter die Arme greifen, sollte nicht groß schwierig sein.
Kannst ja erstmal schauen, ob Du ein Plugin findest, sonst sagst mir einfach Bescheid bei Interesse.

Gruß
Arne
PHProcks! - Eine Initiative der deutschen PHP Community
Den mir geposteten Core-Anpassungen sind Plugins nach Möglichkeit immer vorzuziehen!
Zitieren
#5
ich habe ein Plugin, in dem man nur die Threadüberschriften lesen kann als Gast, kann man das da eventuell einbauen?

Hier mal der Code des Plugins:


<?php
$plugins->add_hook('showthread_start', 'gcvt_thread');
$plugins->add_hook('archive_thread_start', 'gcvt_thread');

function gcvt_info()
{
    return array(
        'name'            => 'Guests Can\'t View Threads',
        'description'    => 'Guests cannot view threads.',
        'website'        => 'http://mybbplug.in/',
        'author'        => 'Jammerx2',
        'authorsite'    => 'http://mybbplug.in/',
        'version'        => '1.1',
        'guid'        => '8ac34edb831b6a420c48602ed5384b59'
    );
}

function gcvt_activate()
{
}

function gcvt_deactivate()
{
}
function gcvt_thread()
{
    global $db, $mybb,$lang, $thread;

                    if($mybb->user['uid'] == 0)
                    {
                        error("Registriere Dich um das Thema zu lesen","Du bist Gast");
                    }
        
        
    
    $lang->send_thread = "";
}
?>
Zitieren
#6
Evtl., müsste ich mir genauer ansehen.

EDIT: Hast Du das folgende Plugin mal getestet? Könnte mir vorstellen, daß man das dahingehend anpassen kann.
https://www.mybb.de/erweiterungen/18x/pl...m-guests2/
PHProcks! - Eine Initiative der deutschen PHP Community
Den mir geposteten Core-Anpassungen sind Plugins nach Möglichkeit immer vorzuziehen!
Zitieren
#7
Cool, das laß ich genau so wie es ist.

Vielen Dank
Zitieren
#8
Ok, nur der Vollständigkeit halber, um für Gäste nur den ersten Beitrag sichtbar zu machen, passt Du einfach die Query in der showthread.php an.

In diesem Block:
PHP-Code:
// Get the actual posts from the database here.
$posts '';
$query $db->query("
SELECT u.*, u.username AS userusername, p.*, f.*, eu.username AS editusername
FROM "
.TABLE_PREFIX."posts p
LEFT JOIN "
.TABLE_PREFIX."users u ON (u.uid=p.uid)
LEFT JOIN "
.TABLE_PREFIX."userfields f ON (f.ufid=u.uid)
LEFT JOIN "
.TABLE_PREFIX."users eu ON (eu.uid=p.edituid)
WHERE 
$pids
ORDER BY p.dateline
"
); 

Setzt Du als erstes, direkt nach dem Kommentar diese Zeilen ein:
PHP-Code:
if ( (integer)$mybb->user['uid'] === ) {

$pids 'p.replyto=0 AND p.tid=' $tid;



Dadurch lädt er nur den ersten Beitrag.
Jetzt kannst Du noch hergehen, und bspw. die Anzahl der Zeichen mit substr() begrenzen, oder was auch immer.

Gruß
Arne
PHProcks! - Eine Initiative der deutschen PHP Community
Den mir geposteten Core-Anpassungen sind Plugins nach Möglichkeit immer vorzuziehen!
Zitieren
#9
Hilfe könntest Du mir noch zeigen wie ich substr() genau einsetze wenn ich sagen wir mal 100 Zeichen haben möchte?
Zitieren
#10
Hallo,

Je nachdem, wie Du den Text vorliegen hast.
Willst Du das in PHP machen, musst Du an der entsprechenden Stelle so was setzen:
PHP-Code:
$post['message'] = substr$post['message'], 0100 ); 

Ich persönlich würde allerdings die Query anpassen ( da ich eh kein Verständnis für * in Queries habe ) und die benötigten Spalten im Select aufzählen.
Dann kann nämlich MySQL das auch, bspw. so:
Code:
SELECT p.pid, SUBSTRING(p.message, 1, 100) AS message FROM posts p
( Beispiel-Query )

Dann brauchst Du PHP nicht damit "belasten".


Gruß Arne
PHProcks! - Eine Initiative der deutschen PHP Community
Den mir geposteten Core-Anpassungen sind Plugins nach Möglichkeit immer vorzuziehen!
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Avatar für Gäste setzen + Avatare für Gäste verstecken windkind 34 10.064 29.12.2021, 00:54
Letzter Beitrag: SvePu
  Beschränkung der Anzahl frei lesbarer Beiträge für Gäste Enemy 2 1.496 29.08.2014, 22:26
Letzter Beitrag: Enemy
  Ads after first post Plugin nur für Gäste hlds12 6 4.083 27.03.2011, 17:46
Letzter Beitrag: hlds12
  Gäste können nur eine bestimmte Anzahl an Posts sehen Danny 4 2.460 21.05.2010, 22:32
Letzter Beitrag: Danny
  Übersicht: Nach Anzahl von Zeichen "..." Aki 2 1.880 05.08.2008, 17:11
Letzter Beitrag: Aki