Zum Hauptinhalt springen
OpenID

Neu

Thema: Simple Portal (6088-mal gelesen) Vorheriges Thema - Nächstes Thema

0 Benutzer und 2 Gäste betrachten dieses Thema.
  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #30
Es gibt nun eine neuere Portal-Version bzw. ein Update dafür, im dem die bisherigen Fehler verbessert wurden:

http://www.elkarte.net/community/index.php?topic=1399.msg12734#msg12734

Trotz der Erläuterungen von Spuds verstehe ich nicht, welchen Download-Link ich nun nehmen müßte, wenn ich das Portal nochmal ganz neu installieren will?

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #31
Der Link auf die Seite https://bitbucket.org/spuds_/elk_simpleportal ist schon richtig. Nur scheint mit der Seite oder der Verlinkung gerade etwas nicht zu stimmen.
Etwa zwei Stunden vor dem letzten gab's ja schon mal ein Update, das hatte ich mir dort noch problemlos holen können, aber nun kommt auch bei mir die 404-Fehleranzeige. Ich denke aber, es wird dort bald wieder alles flutschen.


Hab eine Frage zu diesem hier:
Dieser Portalblock ist übrigens auch eine prima Alternative für "die Liste der letzten Beiträge" im Infocenter.
Diese Anzeige im Infocenter hab ich jetzt ganz deaktiviert und statt dessen - für den Footerbereich des Forums - einen Portalblock erstellt, der die fünf zuletzt aktiven Themen zeigt. Dieser Block steht also unterhalb des Infocenters.
Ich versuche das auch gerade. Bei mir landet der Block aber im Forum immer ganz oben...
Wie bekomme ich ihn ganz unten hin oder vielleicht auch zwischen die Foren-/Boardtabelle und das Infocenter?

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #32
Du kannst den Block, wenn du ihn bereits erstellt hast, einfach auf der Blockliste nach unten schieben, bis er da landet wo "Footer Blocks" steht. Die Position von Blöcken kannst du aber auch während bzw. vor der Erstellung auch schon angeben, du kannst da ja auswählen zwischen Header, links, oben, unten, rechts und Footer.

Mit den erweiterten Einstellungen kannst du genauer festlegen, wo überall ein Block im Forum gezeigt werden soll und wo nicht Diese Einstellungsmöglichkeiten siehst du auch, wenn du einen bereits erstellten Block wieder editierst.

Zitat
...oder vielleicht auch zwischen die Foren-/Boardtabelle und das Infocenter?

Das geht nicht... zwischenrein geht nix. Es geht nur ganz unten im Footer oder ganz oben im Header.

Außer du willst die Forumsseite insgesamt schmaler machen, dann kannst du auch z.B. auf der linken Seite eine schmale Reihe von mehreren Blöcken untereinander erscheinen lassen. Aber sie wären dann eben neben den Kategorien und Boards und dem Infocenter. Das Portal ist etwas, was sozusagen außenrum ums Forum gebaut ist.

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #33
Der Block ist nun unten zu sehen. Allerdings hat er sich in den Blockliste nicht in den "Footer" verschieben lassen, sondern ich musste ihn in "Untere Blöcke" hinziehen.
Der Block ist nun ja aber auf auf jeder Seite des Forums zu sehen, das gefällt mir nicht so sehr. Nur auf der Forenstartseite würde es mir besser gefallen.
Mal sehen, was ich jetzt mache. Ich warte ja noch darauf, dass das Addon "Recent Topics" weiter entwickelt und geupdated wird.
Wenn das irgendwann mal richtig funktioniert, dann werde ich wohl dieses installieren und den Block wieder rauswerfen.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #34
Der Block ist nun unten zu sehen. Allerdings hat er sich in den Blockliste nicht in den "Footer" verschieben lassen, sondern ich musste ihn in "Untere Blöcke" hinziehen.

Das ist aber seltsam. Erstelle den Block doch nochmal neu und wähle als Position gleich "Footer" aus.

Der Block ist nun ja aber auf auf jeder Seite des Forums zu sehen, das gefällt mir nicht so sehr. Nur auf der Forenstartseite würde es mir besser gefallen.

Das kannst du über die "erweiterten Einstellungen" ändern. Dort kannst du ganz gezielt angeben, wo dieser Block nicht erscheinen soll...warte mal, ich mach dir nen Screenshot davon.

Block editieren und auf "Advanced Options" (erweiterte Einstellungen) klicken...

Wenn du dann nur bei "Forum" ein Häkchen machst, dann ist der Block nur auf der Forumsseite zu sehen. Das "Forum" in dem Scrolldownmenü links meint "das ganze Forum", dann erscheint so ein Block überall.
  • Zuletzt geändert: 17. September 2014, 21:22 von Ruth

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #35
Jetzt hat's geklappt!
Ich hatte bei beiden Punkten "Forum" ausgewählt und in dem Scrolldownmenü nicht das "Portal" stehen lassen, weil ich dachte, dann würde der Block zusätzlich auch im Portal landen, wo er ja aber nicht hin sollte.
Danke für deine Hilfe! :)

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #36
Wie kann man den Code des PHP-Blocks für die neuesten Themen im Portal (siehe hier: http://support.elkarte-hilfe.de/index.php/topic,61.msg369.html#msg369) verändern, damit bei der Zeit-Anzeige, wann der Beitrag geschrieben wurde, die Monate nicht in der Lang-sondern in der Kurzform angegeben werden? Dass anstatt z.B. "September" nur "Sep" eingefügt wird.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #37
Also 100%ig klappt das mit den "erweiterten Einstellungen" immer noch nicht. Mein Block erscheint im Forum nicht überall, wo ich's angekreuzt habe. Vielleicht ändert sich das noch mit der neuen Portal-Version.

Wie das mit einer Verkürzung der Monatsbezeichnungen ist, weiß ich nicht, Lars. Die Basis für diesen Code ist die Funktion action=recent, also quasi das gleiche, wie wenn man im Forum diesen Link anklickt: http://support.elkarte-hilfe.de/index.php?action=recent ; auch die letzten Beiträge im Infocenter sind wohl ähnlich zusammengestrickt. Der Simple Portal Block "Recent Posts/Topics" basiert wohl auch darauf, bzw. zieht sich die Informationen, welche Sprach-Strings verwendet werden, vermutlich da heraus. Deshalb nehme ich an, dass für diesen Code von Spuds/Emanuele die Darstellung des Datums die gleiche ist, die auch sonst im Forum verwendet wird, also die mit den ausgeschriebenen Monatsnamen.

Vielleicht könntest du hier in diesem Code etwas ändern:

'time' => standardTime($row['poster_time']),
'timestamp' => forum_time(true, $row['poster_time']),

Oder in den Sprachdateien entsprechene Änderungen vornehmen, aber dann hättest du wohl (fast) überall im Forum verkürzte Monatsnamen. Oder dir entsprechende Stellen im Forum anschauen, aus welchen Elementen/Strings da die Zeit zusammengesetzt wird und da was ändern oder abkupfern? Keine Ahnung. :D
  • Zuletzt geändert: 18. September 2014, 11:34 von Ruth

  • Jorin
  • [*][*][*]
  • Administrator
Antw.: Simple Portal
Antwort #38
Ich vermute sehr stark, das wird über das Feld im Administrations-Center gesteuert, in welchem man forenweit das Datum- und Uhrzeitformat vorgibt.

@Ruth  Dort kann man auch ein fehlendes "... Uhr" nachtragen.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #39

@Ruth  Dort kann man auch ein fehlendes "... Uhr" nachtragen.

 :D  Ich fasse es nicht...das geht! Absolut genial, Jorin! So einfach kann es sein.

Edit: Funzt überall im Forum - nur nicht bei "gestern & heute", da gibts dann keine Uhr hintendran. Ist also nur was für Leute von vorgestern. ;) Das paßt ja zu unserem Forum ganz gut.
  • Zuletzt geändert: 18. September 2014, 12:17 von Ruth

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #40
Hallo @Ruth , ich habe ein Frage hierzu:

Weil mir die detailliertere Block-Version mit drei Zeilen lieber ist - da ist dann auch mehr Platz für die Boardtitel und es gibt nicht so schnell einen Zeilenumbruch, wenn ein längerer Username mit einem längeren Boardtitel zusammenkommt - hab ich in der portal.css einen weiteren Hintergrund eingefügt, in dem ein etwas geringerer Zeilenabstand  mit drin steht. Also z.B. so:

.portalbg3 {
padding: 10px 0;
background-color: #FDF5E6;
line-height: 1.2em;
}
Ich möchte das auch mal probieren.
Auf irgendeiner anderen Seite muss man dann doch bestimmt auch noch eintragen, dass auf .portalbg3 zugegriffen werden soll, und nicht mehr auf .portalbg oder .portalbg2.
Welche Seite ist das? Ich habe auf einigen gesucht, z.B. auf der der Portal.template.php und im PHP-Block für die neuesten Themen, aber nichts gefunden.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #41
Hallo, Lars!

Das macht man hier...(bei mir steht portalbg3 drin).

Beim Block erstellen oder beim editieren eines Blocks bei Custom Body Class die Bezeichnung eintragen, die du in der portal.css eingetragen hast.

Bleibt das Feld dort leer, dann wird die  Body Class übernommen, die du obendrüber im Scrolldown-Menü ausgewählt hast.

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #42
Danke für die Erklärung!
Es hat nun prima geklappt. :)

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #43
 :) Spuds hat nun für diesen PHP-Block den Hover-Effekt mit eingebaut, d.h. sofern man das im Adminbereich aktiviert hat, dass es in den Boards eine kleine Text-Vorschau auf den ersten oder letzten Beitrag in einem Thema gibt, wird das nun auch in diesem Portalblock angezeigt:

global $context, $settings, $scripturl, $txt, $user_info, $modSettings, $posts, $color_profile;

$db = database();

$exclude_boards = null;

// Number of items to show
$num_recent = 20;

// Show the body preview on hover
$show_preview = true;

// Show the body preview
$show_body = false;

// Number of characters to show in the preview, 0 is all
$preview_char = 128;

// First or last message for the preview
$preview_last = false;

if ($exclude_boards === null && !empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0)
$exclude_boards = array($modSettings['recycle_board']);
else
$exclude_boards = empty($exclude_boards) ? array() : $exclude_boards;

$stable_icons = array('xx', 'thumbup', 'thumbdown', 'exclamation', 'question', 'lamp', 'smiley', 'angry', 'cheesy', 'grin', 'sad', 'wink', 'moved', 'recycled', 'wireless');
$icon_sources = array();
foreach ($stable_icons as $icon)
$icon_sources[$icon] = 'images_url';

// If empty, no previews at all
if (empty($show_preview) && empty($show_body))
$preview_bodies = '';
// If 0 means everything
elseif (empty($preview_char))
$preview_bodies = ', ml.body AS last_body, mf.body AS first_body';
// else a SUBSTRING
else
$preview_bodies = ', SUBSTRING(ml.body, 1, ' . ($preview_char + 256) . ') AS last_body, SUBSTRING(mf.body, 1, ' . ($preview_char + 256) . ') AS first_body';

// Find all the posts in distinct topics.  Newer ones will have higher IDs.
$request = $db->query('substring', '
SELECT
mf.poster_time, mf.subject, ml.id_topic, mf.id_member,
ml.id_msg, b.id_board, b.name AS bName,
t.num_replies, t.num_views, t.id_first_msg, t.id_last_msg,
IFNULL(mem.real_name, mf.poster_name) AS poster_name, ' . ($user_info['is_guest'] ? '1 AS is_read, 0 AS new_from' : '
IFNULL(lt.id_msg, IFNULL(lmr.id_msg, 0)) >= ml.id_msg_modified AS is_read,
IFNULL(lt.id_msg, IFNULL(lmr.id_msg, -1)) + 1 AS new_from') . ', mf.smileys_enabled, mf.icon, mg.online_color' .
$preview_bodies . '
FROM {db_prefix}topics AS t
INNER JOIN {db_prefix}messages AS mf ON (mf.id_msg = t.id_first_msg)
INNER JOIN {db_prefix}messages AS ml ON (ml.id_msg = t.id_last_msg)
LEFT JOIN {db_prefix}boards AS b ON (b.id_board = mf.id_board)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = mf.id_member)' . (!$user_info['is_guest'] ? '
LEFT JOIN {db_prefix}log_topics AS lt ON (lt.id_topic = t.id_topic AND lt.id_member = {int:current_member})
LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:current_member})' : '') . '
LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = mem.id_group)
WHERE t.id_last_msg >= {int:likely_max_msg}
AND b.id_board = t.id_board' . (empty($exclude_boards) ? '' : '
AND b.id_board NOT IN ({array_int:exclude_boards})') . '
AND {query_wanna_see_board}' . ($modSettings['postmod_active'] ? '
AND t.approved = {int:is_approved}
AND ml.approved = {int:is_approved}' : '') . '
ORDER BY t.id_last_msg DESC
LIMIT {int:limit}',
array(
'current_member' => $user_info['id'],
'exclude_boards' => $exclude_boards,
'limit' => (int) $num_recent,
'is_approved' => 1,
'likely_max_msg' => $modSettings['maxMsgID'] - 35 * min($num_recent, 5),
'preview_char' => $preview_char,
)
);
$posts = array();
$color_ids = array();
while ($row = $db->fetch_assoc($request))
{
// Shorten and censor the body as needed
$row['body'] = '';
if (!(empty($show_preview) && empty($show_body)))
{
if (!empty($preview_char))
{
$row['body'] = strip_tags(strtr(parse_bbc($preview_last ? $row['last_body'] : $row['first_body'], false, $row['id_first_msg']), array('<br />' => "\n", ' ' => ' ')));
$row['body'] = Util::shorten_text($row['body'], !empty($modSettings['preview_characters']) ? $modSettings['preview_characters'] : $preview_char, true);
}
elseif (!empty($show_preview))
$row['body'] = strip_tags(strtr(parse_bbc($preview_last ? $row['last_body'] : $row['first_body'], false, $row['id_first_msg']), array('<br />' => "\n", ' ' => ' ')));

censorText($row['body']);
}

// Censor the subject.
$row['subject'] = preg_replace('/^' . preg_quote($txt['response_prefix']) . '/', '', $row['subject']);
censorText($row['subject']);

// Collect the color ids :)
$color_ids[$row['id_member']] = $row['id_member'];

if (empty($modSettings['messageIconChecks_disable']) && !isset($icon_sources[$row['icon']]))
$icon_sources[$row['icon']] = file_exists($settings['theme_dir'] . '/images/post/' . $row['icon'] . '.png') ? 'images_url' : 'default_images_url';

// Build the array.
$posts[] = array(
'board' => array(
'id' => $row['id_board'],
'name' => $row['bName'],
'href' => $scripturl . '?board=' . $row['id_board'] . '.0',
'link' => '<a href="' . $scripturl . '?board=' . $row['id_board'] . '.0">' . $row['bName'] . '</a>'
),
'topic' => $row['id_topic'],
'poster' => array(
'id' => $row['id_member'],
'name' => $row['poster_name'],
'href' => empty($row['id_member']) ? '' : $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => empty($row['id_member']) ? $row['poster_name'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>'
),
'subject' => $row['subject'],
'short_subject' => Util::shorten_text($row['subject'], 25),
'preview' => $row['body'],
'time' => standardTime($row['poster_time']),
'timestamp' => forum_time(true, $row['poster_time']),
'href' => $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . ';topicseen#new',
'link' => '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . '#new">' . $row['subject'] . '</a>',
'new' => !empty($row['is_read']),
'new_from' => $row['new_from'],
'icon' => '<img src="' . $settings[$icon_sources[$row['icon']]] . '/post/' . $row['icon'] . '.png" style="vertical-align: middle;" alt="' . $row['icon'] . '" />',
'views' => $row['num_views'],
'replies' => $row['num_replies'],
);
}
$db->free_result($request);

// Colorization
if (!empty($color_ids) && sp_loadColors($color_ids) !== false)
{
foreach ($posts as $key => $value)
{
if (!empty($color_profile[$value['poster']['id']]['link']))
$posts[$key]['poster']['link'] = $color_profile[$value['poster']['id']]['link'];
}
}

$context['recent_topics'] = $posts;

// Just return if we have no results
if (empty($posts))
return $txt['error_sp_no_posts_found'];

// Preview tips?
if (!empty($show_preview))
addInlineJavascript('
$(document).ready(function () {
$(".sp_custom_tr2").SiteTooltip({
hoverIntent: {
sensitivity: 10,
interval: 150,
timeout: 50
}
});
});', true);

echo '
<style>
.sp_custom_tr {display: table-cell; padding: 0 8px;border-bottom:1px dashed #6394BD;text-align: center;}
.sp_custom_tr1 {display: table-cell;border-bottom:1px dashed #6394BD;width:100%;}
.sp_custom_tr2 {font-weight: bold;}

</style>

<div>';

foreach ($posts as $post)
{
echo '
<div style="display: table-row">
<div class="sp_custom_tr centericon">
', $post['icon'], '
</div>
<div class="sp_custom_tr1" >
<a class="sp_custom_tr2" href="', $post['href'], '" title="', $post['preview'], '">', $post['subject'], '</a>
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new" rel="nofollow"><span class="new_posts"> ' . $txt['new'] . '</span></a>';

echo '
<div class="smalltext">
', $txt['by'], ' ', $post['poster']['link'], ' ', $txt['in'], ' ', $post['board']['link'], '
</br />
', $post['time'], ' | ', $txt['views'], ': ', $post['views'], ' | ', $txt['replies'], ': ', $post['replies'], '
</div>';

if (!empty($show_body))
echo '
<div class="middletext">
', $post['preview'], '
</div>';

echo '
</div>
</div>';
}

echo '
</div>';

Bei mir schaut das dann so aus, wenn ich mit der Maus den Thementitel berühre:

  • Zuletzt geändert: 24. September 2014, 12:43 von Ruth

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #44
Danke für die Info, Ruth!
Ich werd's bei mir mal ändern.