Zum Hauptinhalt springen
OpenID

Neu

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

0 Benutzer und 1 Gast betrachten dieses Thema.
  • Lars
  • [*]
Simple Portal
Hallo,
die aktuelle - offenbar erste - Version des Simple Portals scheint noch ein paar kleine Macken zu haben.
Wie Ruth in einem anderen Forum anmerkte, ist die Reihenfolge der "Themen mit den neuesten Antworten" total durcheinander.
Kann man das auf einfache Weise irgendwie selber in den Griff bekommen?
Anfangs dachte ich, die chronologische Auflistung sei einfach nur umgekehrt. Also dass anstatt von oben neu nach unten alt die Themen jetzt von alt nach neu sortiert sind.
Aber noch nicht mal das ist jetzt so. Die Daten scheinen wahllos durcheinander zu sein. Bei meinen 10 angezeigten Themen sieht es vom Datum her aktuell so aus:

16. August
17. August
Heute
Heute
18. August
18. August
Heute
Gestern
Gestern
20. August

:o  Das sieht so nicht besonders gut aus...
Woran kann das liegen? Hat das vielleicht was mit den "Gestern"- und "Heute"-Fehlern zu tun, die es bei ElkArte teils noch zu geben scheint?

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #1
Auf diese Idee kam ich noch gar nicht, Lars. Vielleicht hängt es auch damit zusammen.

Der Block "Recent Topics/Posts" hat bei Simple Portal aber noch nie so ganz richtig funktioniert, z.B. wurden unter SMF fixierte Themen dort gar nicht gelistet - die sind da jetzt zwar mit dabei, aber die übrigen zuletzt aktiven Themen werden zeitlich irgendwo zwischenrein geschoben.

Zudem ist jetzt die Reihenfolge grundsätzlich falschrum. Die aktuellsten Themen stehen zuunterst, nicht zuoberst, wo sie sein sollten - und wenn es weitere Themen/Beiträge gibt, die über die gesetzte Maximalzahl hinausgehen, dann erscheinen sie gar nicht mehr auf der Liste.

Ich habe bei SMF für die aktuellen Themen immer einen eigenen PHP-Block benutzt, der gut funktioniert und auch deutlich hübscher aussieht. Wahrscheinlich wäre etwas in dieser Art wieder die bessere Lösung. Das Script funktioniert unter ElkArte natürlich nicht.

Man könnte es bestimmt entsprechend abändern - aber zunächst mal müßte die Abfrage der Themen richtig funktionieren und daran scheint es noch zu hapern. Jorin wollte demnächst noch wegen der Fehlermeldungen bei mir im Forum etwas zusätzliches einbauen, danach möchte ich das Simple Portal nochmals installieren und schauen ob es besser funktioniert als vorher. Bei mir war da ja einiges im Argen..

Wenn u.a. dieser Block dann immer noch so seltsam ausschaut, sollten wir da vielleicht mal direkt nachfragen.

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #2
Sehr merkwürdig, dass es dieses Problem wohl bereits schon lange gibt und dass niemand es bisher lösen konnte - oder wollte.

Es wundert mich, dass im Forum von elkarte.net im dortigen Thema zum Simple Portal noch niemand was wegen der Sortierung geschieben hat. Da gibt es schon drei Seiten zum Portal, auf denen viele andere Dinge oder Fehler besprochen wurden, aber niemand hat mal die völlig verdrehte Reihenfolge erwähnt.
Gibt's die vielleicht nur, wenn das Forum auf die deutsche Sprache umgestellt ist? Aber ich kann mir nicht vorstellen, dass das was mit der verwendeten Sprache zu tun haben könnte.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #3
Bist du dort registriert, Lars? Sprich das Problem doch mal an. Der zuständige Entwickler von SP ist da ja vor Ort, soweit ich weiß.

In Simple Portal gibt es noch kaum Themen die die Kombination von ElkArte mit SimplePortal betreffen, sonst hätte ich da neulich schon mal nachgefragt. Aber ich war mir nicht sicher, warum das Portal bei mir nicht richtig funktioniert hat. Wenn du da aber den selben Murks - zumindest in diesem Block - hast, dann scheint wohl grundsätzlich noch was nicht zu stimmen.

Schau mal, so schaut der der vorgefertigte Block für die aktuellen Themen unter SMF aus - zumindest so ungefähr sollte das unter ElkArte auch wieder hinkommen. Der 2. Screenshot ist der selbst erstellte PHP-Block, der beispielsweise die verschiedenen Icons der Themen zeigt, was der vorgefertigte Block nicht kann.
  • Zuletzt geändert: 01. September 2014, 23:16 von Ruth

  • Jorin
  • [*][*][*]
  • Administrator
Antw.: Simple Portal
Antwort #4
Woran kann das liegen? Hat das vielleicht was mit den "Gestern"- und "Heute"-Fehlern zu tun, die es bei ElkArte teils noch zu geben scheint?

Das würde mich sehr wundern. Bei ElkArte fehlt in den Profilen ja lediglich ein Wort, nämlich das "Heute" bzw. "Gestern" vor der Uhrzeitangabe. Das ist ein einfacher, dummer Text, der mit dem Portal nichts zu tun hat.

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #5
Ich habe bei SMF für die aktuellen Themen immer einen eigenen PHP-Block benutzt, der gut funktioniert und auch deutlich hübscher aussieht. Wahrscheinlich wäre etwas in dieser Art wieder die bessere Lösung. Das Script funktioniert unter ElkArte natürlich nicht.
Hallo Ruth, die Screenshots sehen gut aus. So ein PHP-Block scheint nicht schlecht zu sein. Hatte dir jemand das Script für das SMF erstellt? Vielleicht könnte diese Person ja irgendwann auch mal eins für ElkArte entwerfen... ;)

Ich war ein wenig fleißig und habe schon mal deutsche Sprachdateien für die ElkArte-Version des SimplePortals angefertigt.
Das heißt, ich habe die bereits vorhandenen deutschen vom SMF genommen und mit den englischen des ElkArte verglichen.
Ein bisschen was konnte dabei gelöscht werden, dafür kam aber auch ein wenig Neues hinzu. Außerdem hatte ich ein paar kleinere Rechtschreibfehler entdeckt, die ich bei dieser Gelegenheit korrigiert habe, und ich habe ein paar Begriffe ausgetauscht sowie auch mal kleinere Sätze etwas umformuliert.
Wer Interesse an den drei deutschen Seiten hat (SPortal.german.php, SPortalAdmin.german.php, SPortalHelp.german.php), kann sich gerne die angefügte Zip-Datei downloaden. Der Zeichensatz ist übrigens utf-8.

Bei mir im Forum bzw. vom Portal wird aber erst auf die zugegriffen, seitdem ich sie unter "languages" auch ins englische Verzeichnis geladen und dort von z.B.  "SPortal.german.php"  in  "SPortal.english.php"  umbenannt habe.
Auf die Dateien im german-Verzeichnis greift das Portal aus irgendeinem Grund nicht zu. Hmm....

2. EDIT am 11.10.14:
Mittlerweile gab es bereits schon ein zweites Update der Portal-Software. Die deutschen Sprachdateien können nun ganz normal ins deutsche Sprachverzeichnis hochgeladen werden, soweit ein solches bei euch existiert. Es muss auch nichts mehr umbenannt werden!
Im Anhang befinden sich nun die aktuellen deutschen Sprachdateien für die Version 2.4 des SimplePortal (Stand vom 11.10.14).
  • Zuletzt geändert: 11. Oktober 2014, 22:41 von Lars

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #6
Hallo Ruth, die Screenshots sehen gut aus. So ein PHP-Block scheint nicht schlecht zu sein. Hatte dir jemand das Script für das SMF erstellt? Vielleicht könnte diese Person ja irgendwann auch mal eins für ElkArte entwerfen... ;)

Der Inhalt für diesen PHP-Block war eine "Gemeinschaftsarbeit" im Forum von SimplePortal. ;) Irgendjemand hatte dort mal den  Block "Recent Posts" umgeschrieben( bzw. die entsprechenden Funktionen aus den vorhandenen Dateien so zuammengestellt, dass der Code in einem PHP-Block genutzt werden konnte), so dass er nicht mehr alle Posts zeigte, sondern nur noch einen pro zuletzt aktivem Thema.  Diesen Basis-Code fand ich in irgendeinem Uralt-Thema dort. In Folge haben dann noch mindestens vier Leute daran herumgebastelt und ihn ausgefeilt, bis er so aussah und funktionierte, wie wir uns das wünschten.

Ich setze hier mal das Script rein, vielleicht kann ja jemand den Block-Inhalt für ElkArte umschreiben. Ich kann sowas nicht.

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

$exclude_boards = null;
$num_recent = !empty($parameters[0]) ? $parameters[0] :  (isset($_GET['limit']) ? (int) $_GET['limit'] : 20);

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';

// Find all the posts in distinct topics.  Newer ones will have higher IDs.
$request = $smcFunc['db_query']('','
SELECT
m.poster_time, ms.subject, m.id_topic, m.id_member, m.id_msg, b.id_board, t.num_replies, t.num_views, b.name AS bName,
IFNULL(mem.real_name, m.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)) >= m.id_msg_modified AS is_read,
IFNULL(lt.id_msg, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ', LEFT(m.body, 384) AS body, m.smileys_enabled, mf.icon
FROM ({db_prefix}messages AS m, {db_prefix}topics AS t, {db_prefix}boards AS b, {db_prefix}messages AS ms)
INNER JOIN {db_prefix}messages AS mf ON (mf.id_msg = t.id_first_msg)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.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:id_member})
LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:id_member})' : '') . '
WHERE t.ID_LAST_MSG >= ' . ($modSettings['maxMsgID'] - 35 * min($num_recent, 5)) . '
AND t.id_last_msg = m.id_msg
AND b.id_board = t.id_board' . (empty($exclude_boards) ? '' : '
AND b.id_board NOT IN ({array_int:exclude_boards})'). '
AND {raw:query_see_board}
AND ms.id_msg = t.id_last_msg
ORDER BY t.id_last_msg DESC
LIMIT {int:limit}',
array(
'id_member' => $user_info['id'],
'exclude_boards' => $exclude_boards,
'query_see_board' => $user_info['query_wanna_see_board'],
'limit' => (int) $num_recent,
)
);
$posts = array();
$colorids = array();
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br />' => '')));
if ($smcFunc['strlen']($row['body']) > 128)
$row['body'] = $smcFunc['substr']($row['body'], 0, 128) . '...';

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

//Collect the color ids :)
$colorids[$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'] . '.gif') ? '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' => shorten_subject($row['subject'], 25),
'preview' => $row['body'],
'time' => timeformat($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'] . '.gif" align="middle" alt="' . $row['icon'] . '" border="0" />',
'views' => $row['num_views'],
'replies' => $row['num_replies'],
);
}
$smcFunc['db_free_result']($request);

// Load recent topic posts colors =)
if(!empty($colorids) && sp_loadColors($colorids) !== false)
foreach($posts as $k => $p)
if(!empty($color_profile[$p['poster']['id']]['link']))
$posts[$k]['poster']['link'] = $color_profile[$p['poster']['id']]['link'];

$context['recent_topics']=$posts;

// Just return it.
if (empty($posts))
return $posts;

echo '
<div class="tborder">
<table cellspacing="0" width="100%">
<tr class="catbg">

</tr>
<tr>
<td style="padding: 5px;">
</td> ';
foreach ($posts as $post)
echo '
<tr>
<td align="center" valign="middle" nowrap="nowrap">
', $post['icon'], '
</td>
<td valign="middle" width="%100">
<div style="font-size: 12px;"><b>
<a href="', $post['href'], '">', $post['subject'], '</a>
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '</b></div><div style="font-size: 9px;">in ', $post['board']['link'], ' von ', $post['poster']['link'], '  am ', $post['time'], '
</font><hr>
</td>
</tr>';
echo '
</table></div>';

In diese Zeile schreibt man hinein, wieviele Themen angezeigt werden sollen, hier sind es 20:

$num_recent = !empty($parameters[0]) ? $parameters[0] :  (isset($_GET['limit']) ? (int) $_GET['limit'] : 20);

Und hier unten bestimmt man die grafische Erscheinung und die Anordnung von Themenbetreff, Poster, Datum, etc. Das ist die Kurzform, wie sie oben auf dem 2. Screenshot vom Meerschweinchenforum zu sehen ist:

<td valign="middle" width="%100">
<div style="font-size: 12px;"><b>
<a href="', $post['href'], '">', $post['subject'], '</a>
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '</b></div><div style="font-size: 9px;">in ', $post['board']['link'], ' von ', $post['poster']['link'], '  am ', $post['time'], '
</font><hr>
</td>

Und dies hier ist an dieser Stelle eine ausführlichere Variante mit mehr Informationen und für Foren geeignet, in denen die Board- und Thementitel zumeist ein bisschen länger sind:

<td valign="middle" width="%100">
<div style="font-size: 11px;"><b>
<a href="', $post['href'], '">', $post['subject'], '</a>
', $post['new'] ? '' : '<a href="' . $scripturl . '?topic=' . $post['topic'] . '.msg' . $post['new_from'] . ';topicseen#new"><img src="' . $settings['images_url'] . '/' . $context['user']['language'] . '/new.gif" alt="' . $txt['new'] . '" border="0" /></a>', '</b></div><div style="font-size: 9px;">von ', $post['poster']['link'], ' in ', $post['board']['link'], ' </br> ', $post['time'], '

| Klicks: ', $post['views'], ' | Antworten: ', $post['replies'], '</font><hr>
</td>

Der Block würde dann so ausschauen:

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #7
Beim Portal hat sich wohl noch irgendwas geändert, bzw. der Downloadlink funktionierte nicht mehr? Hab gestern "drüben" irgend so etwas gelesen. Die Version von Simple Portal ist auch nicht die neueste, glaub ich?

Ja, es scheint so, als gäbe es bereits eine neuere. Wenn die dann mal zum Download bereit steht, werde ich die alte Version updaten oder das ganze Portal noch mal komplett neu installieren.
Ich hoffe sehr, dass danach die "neuesten Themen" eine vernünftige chronologische Reihenfolge haben werden...

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #8
Das wird von alleine nicht passieren, Lars. Warum schreibst du da nicht etwas dazu? Ich glaube nicht, dass bislang viele das Portal bzw. diesen Block "recent posts/topics" nutzen, da fällt so ein Fehler in diesem einen Block vielleicht gar nicht auf.

Ich würde ja was dazu schreiben, nur hab ich das Portal mit ElkArte ja selber gerade nicht installiert, kann keine Screenshots machen, etc.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #9
Ich schreibe gerade "drüben" was dazu, Lars. Hab gesehen, du bist da gar nicht registriert? Das mit der Sprachdatei für's Portal schreibe ich nicht, mir ist nicht ganz klar, wie da die Zusammenhänge sind, warum das bei dir nicht funktioniert.

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #10
Bis jetzt bin ich "drüben" noch nicht registriert, aber ich werde das gleich mal tun.
Hier ist schon mal der Screenshot, den ich dort dann ebenfalls einfügen werde. Auf dem kann man gut sehen, wie durcheinander die Einträge vom Datum her sind.

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #11
Spuds hat den Aktuelle-Themen-Code für einen PHP-Block für ElkArte angepaßt, Lars...
Das finde ich sooo nett von ihm. :)

Magst du den Code mal ausprobieren und einen Screenshot davon machen, wie er umgesetzt aussieht?

Ich kann das Portal derzeit nicht installieren.

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

$db = database();

$exclude_boards = null;
$num_recent = !empty($parameters[0]) ? $parameters[0] : (isset($_GET['limit']) ? (int) $_GET['limit'] : 20);
$show_body = !empty($parameters[1]) ? $parameters[1] : 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';

// Find all the posts in distinct topics.  Newer ones will have higher IDs.
$request = $db->query('', '
SELECT
m.poster_time, ms.subject, m.id_topic, m.id_member, m.id_msg, b.id_board, t.num_replies, t.num_views, b.name AS bName,
IFNULL(mem.real_name, m.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)) >= m.id_msg_modified AS is_read,
IFNULL(lt.id_msg, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from') . ', LEFT(m.body, 384) AS body, m.smileys_enabled, mf.icon
FROM ({db_prefix}messages AS m, {db_prefix}topics AS t, {db_prefix}boards AS b, {db_prefix}messages AS ms)
INNER JOIN {db_prefix}messages AS mf ON (mf.id_msg = t.id_first_msg)
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = m.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:id_member})
LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:id_member})' : '') . '
WHERE t.id_last_msg >= ' . ($modSettings['maxMsgID'] - 35 * min($num_recent, 5)) . '
AND t.id_last_msg = m.id_msg
AND b.id_board = t.id_board' . (empty($exclude_boards) ? '' : '
AND b.id_board NOT IN ({array_int:exclude_boards})') . '
AND {raw:query_see_board}
AND ms.id_msg = t.id_last_msg
ORDER BY t.id_last_msg DESC
LIMIT {int:limit}',
array(
'id_member' => $user_info['id'],
'exclude_boards' => $exclude_boards,
'query_see_board' => $user_info['query_wanna_see_board'],
'limit' => (int) $num_recent,
)
);
$posts = array();
$color_ids = array();
while ($row = $db->fetch_assoc($request))
{
// Shorten the body if needed
if ($show_body)
{
$ellip = '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.0" title="' . $row['subject'] . '">...</a>';
$row['body'] = Util::shorten_html(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), 128, $ellip, false);
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' => $show_body ? $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'];

echo '
<div>';

foreach ($posts as $post)
{
echo '
<div style="display: table-cell; padding: 0 8px" class="centericon">
', $post['icon'], '
</div>
<div class="" style="display: table-cell">
<a href="', $post['href'], '">', $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="middletext">
', $txt['by'], ' ', $post['poster']['link'], ' ', $txt['in'], ' ', $post['board']['link'], '
</br />
', $post['time'], ' | ', $txt['views'], ': ', $post['views'], ' | ', $txt['replies'], ': ', $post['replies'], '
</div>';

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

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

echo '
</div>';
  • Zuletzt geändert: 11. September 2014, 16:50 von Ruth

  • Lars
  • [*]
Antw.: Simple Portal
Antwort #12
Ich werde es mal probieren, aber heute wird's wahrscheinlich nicht mehr klappen. Muss gleich weg zum Fußballtraining und danach gibt's noch eine kleine Feier. Und morgen früh muss ich erst mal zur Arbeit.

Außerdem muss ich das Portal wohl doch noch mal neu installieren. Gestern hab ich versucht ein paar Blöcke zu ändern (deaktivieren, wieder aktivieren und verschieben) und dabei sind alle, die ich dabei angerührt habe, danach völlig verschwunden gewesen. Durch aktivieren kommen sie jetzt nicht mehr herbei.
Hat wohl doch was mit dem ElkArte-Upgrade zu tun und die Verbindungen zum Portal sind dabei "gestört" worden.

Schreib mir aber bitte schon mal, auf welcher Seite und welcher Stelle ich den Code des PHP-Blocks einfügen muss!

  • Ruth
  • [*]
Antw.: Simple Portal
Antwort #13
O je...das hört sich aber seltsam an...

Zum Erstellen von einem eigenen Block gehst du unter Simple Portal auf "Blöcke" bzw. auf "Block hinzufügen".
Dann hast du so eine große Seite vor dir, wo du alle möglichen vorgefertigten Blockarten auswählen kannst.
Ganz unten auf der Seite sind die drei Blockarten, die man selber gestalten kann: BBC-Block, HTML-Block und PHP-Block.

Den PHP-Block brauchst du dafür, er müßte ganz unten rechts sein. Den ankreuzen und darunter auf "Wähle Blockart" klicken. Dann geht ein Editor auf, da dann einfach diesen  Code einfügen.

Die optische Gestaltung und die Vergabe der Rechte funktioniert genauso wie bei den anderen Blöcken auch.


  • Lars
  • [*]
Antw.: Simple Portal
Antwort #14
Irgendwie ist auf einmal der Wurm drin. Gestern Abend war dann auf einmal noch die komplette rechte Blockspalte verschwunden und im Mittelteil war nur noch das Begrüßungsfeld zu sehen, das sich dann bis an den rechten Rand hinzog.
Hab das Portal gerade noch mal neu installiert, aber es sieht immer noch alles so wie gesten Abend aus. :o
Möglicherweise war vor der Neuinstallation nicht alles vom alten Portal entfernt worden oder ich habe gestern schon manuell irgendwo einen Fehler gemacht. Hm.

Unter dem Begrüßungsfeld ist jetzt ein neues kleines Feld, in dem diese Fehlermeldung steht:
Fatal error: Call to undefined function shorten_text() in /www/htdocs/w00f7be5/for-elchtest/sources/subs/PortalBlocks.subs.php on line 1300

Der Code dort auf der Seite sieht so aus:
		// Shorten the text if needed and try and fix the errors it causes.
if (!empty($length))
{
require_once(SUBSDIR . '/Post.subs.php');
$row['body'] = shorten_text($row['body'], $length, true);
preparsecode($row['body']);
}

Und die gemeinte Zeile davon ist diese hier:
$row['body'] = shorten_text($row['body'], $length, true);

Was kann da plötzlich falsch sein? Ich habe dort nichts verändert. Der ganze Code sollte derselbe wie vorher sein, als das Portal noch funktionierte.