. .
pragmaMx Support Forum 09 Januar 2009, 04:44:08 *
Willkommen Gast. Bitte einloggen oder registrieren.


Einloggen mit Benutzername und Passwort
News:
Brauchen Sie Hilfe? Bitte nutzen Sie unsere Suchfunktion bevor Sie Beiträge oder Fragen ins Board schreiben! Viele Fragen wurden bereits gestellt und beantwortet. Danke!
 
Übersicht Hilfe Forenregeln / Boardrules
 
Suche
Seiten: [1]   Nach unten
Drucken
Autor Thema: strlen im content block, wie?  (Gelesen 5897 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
-eSmeR-
neu hier
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14



« am: 01 Juli 2006, 08:41:18 »

hallo, ich hab mein content-block bisschen umgebaut... er ruft mir jetzt die tabelle page_header aus der datenbank mit raus... dabei kommt ja das bild mit dem page_header text... das sieht gut aus aberrrr

.....

ich hätte gern das er mir den page_header text was er da komplett ausgibt, nur einen kleinen teil ausgibt.. z.b 120 zeichen vom anfang. Das ist doch mit der funktion strlen möglich oder?

habs zumindest gelesen bei php-manual aber ich bekomm das net hin, könnt ihr mir helfen vielleicht? Wie kann ich es realisieren?

hier der code...

Code: [Select]  
// Blockcache ermoeglichen
$mxblockcache = TRUE;

// Modulname
$module_name = 'Content';

// Anzahl der angezeigten Links, 0 um alle Links anzuzeigen
$limit = 15;


/************************************************************************/

if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

global $prefix;
$limit = ($limit) ? ' LIMIT '.intval($limit) : '';
$content = '';
$result = sql_query("SELECT pid, title, signature, page_header FROM ".$prefix."_pages WHERE active='1' ORDER BY date ".$limit."");
while(list($pid, $title, $signature, $page_header) = sql_fetch_row($result)) {

$content .= '
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td></td>
</tr>
<tr>
<td><a href="modules.php?name='.$module_name.'&amp;pa=showpage&amp;pid='.$pid.'"><b>'.$signature.'</b></a></td>
</tr>
<tr>
<td><a href="modules.php?name='.$module_name.'&amp;pa=showpage&amp;pid='.$pid.'"><b>'.$title.'<br>'.$page_header.'</b></a></td>
</tr>
</table>';
}

?>
Gespeichert
bajazzo
Administrator
******
Offline Offline

Geschlecht: Männlich
Beiträge: 487



WWW
« Antworten #1 am: 01 Juli 2006, 13:32:02 »

ich hätte gern das er mir den page_header text was er da komplett ausgibt, nur einen kleinen teil ausgibt.. z.b 120 zeichen vom anfang. Das ist doch mit der funktion strlen möglich oder?

Nicht ganz, strlen() gibt die Länge einer zk zurück. Du kannst abfragen wie lang ist deine zk, und dann ausgeben genau das was du haben willst, z.B. die ersten 120 Zeichen mit substr().
Code: [Select]  
if ((strlen($variable))<=120)
    {
       $ausgabe = $variable;
    }
    else
    {
      $ausgabe = substr($variable, 0,120);
    }
Gespeichert

Genie ist die grenzenlose Bereitschaft, sich Mühe zu geben.
Musicman75
Teammitglied
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1.644


WWW
« Antworten #2 am: 01 Juli 2006, 13:34:39 »

wieso so umständlich?

einfach an der Stelle, wo die ausgabe erfolgt folgendes einsetzten:

Code: [Select]  
mxCutString($title,40," ...",'')

jetzt wird der titel nach 40 Zeichen abgeschnitten und drei punkte werden angehängt.
Gespeichert

Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!
-eSmeR-
neu hier
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14



« Antworten #3 am: 01 Juli 2006, 16:28:46 »

danke für die schnelle antwort...

hab mal so gemacht wie ihr es gesagt habt, aber ehm geht net, er zeit mir immer noch von $page_header den kompletten inhalt an...

ist das falsch?

Code: [Select]  
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

global $prefix;
$limit = ($limit) ? ' LIMIT '.intval($limit) : '';
$content = '';
$result = sql_query("SELECT pid, page_header, signature FROM ".$prefix."_pages WHERE active='1' ORDER BY date ".$limit."");

if ((strlen($page_header))<=120)
    {
       $ausgabe = $page_header;
    }
    else
    {
      $ausgabe = mxCutString($page_header,40," ...",'');
    }

while(list($pid, $page_header, $signature) = sql_fetch_row($result)) {
$content .= '
Gespeichert
Musicman75
Teammitglied
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1.644


WWW
« Antworten #4 am: 01 Juli 2006, 17:52:25 »

lass dieses ganze strlen geraffel weg. einfach mxcutstring reinsetzten, wo die ausgabe erfolgen soll. alles was kürzer ist wird eh nicht abgeschnitten.

setzt statt 40 einfach 120 rein, dann hast den gleichen effekt.
Gespeichert

Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!
-eSmeR-
neu hier
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14



« Antworten #5 am: 01 Juli 2006, 18:27:26 »

hää versteh nur noch bahnhof... *verwirrt*
Gespeichert
Musicman75
Teammitglied
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1.644


WWW
« Antworten #6 am: 01 Juli 2006, 18:50:17 »

wenn ich jetzt mal deinen code aus dem beitrag nehme, sieht das dann so aus:

Code: [Select]  
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

global $prefix;
$limit = ($limit) ? ' LIMIT '.intval($limit) : '';
$content = '';
$result = sql_query("SELECT pid, page_header, signature FROM ".$prefix."_pages WHERE active='1' ORDER BY date ".$limit."");

$content .= '".mxCutString($page_header,40," ...",'')."';

while(list($pid, $page_header, $signature) = sql_fetch_row($result)) {
$content .= '
Gespeichert

Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!
-eSmeR-
neu hier
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14



« Antworten #7 am: 01 Juli 2006, 20:09:34 »

hab das mal eingefügt... jetzt gib der mir parse error aus Sad((((

Code: [Select]  
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\xampp\htdocs\cms\blocks\block-Content.php on line 40

und in der 40 Zeile steht das hier:

Code: [Select]  
while(list($pid, $page_header, $signature) = sql_fetch_row($result)) {
$content .= '

ich hab mal den block als anhang angefügt... hab ich da was anderes falsch gemacht?




[gelöscht durch Administrator]
Gespeichert
Musicman75
Teammitglied
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1.644


WWW
« Antworten #8 am: 01 Juli 2006, 22:04:36 »

wie gesagt, es muss dort rein, wo der text ausgegeben werden soll. genau dort.

schmeiss das oben raus und setz es in die tabelle rein, wo jetzt nur das pageheader steht.

also muss die zeile so aussehen:
Code: [Select]  
<td><div class="boxbox"><font face=arial size=1><a href="modules.php?name='.$module_name.'&amp;pa=showpage&amp;pid='.$pid.'">'.mxCutString($page_header,40," ...",'').'</div></a></font></td>
Gespeichert

Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!
-eSmeR-
neu hier
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14



« Antworten #9 am: 01 Juli 2006, 22:24:34 »

okay vielen dank... so gibt er zwar keine fehler aus, aber der $page_header ist immer noch nicht zu sehen... da ist das feld einfach leer... ohne ausgabe... :S woran kann das liegen?

so sieht der code zur zeit aus, so zeigt er auch das block an ohne fehler, nur halt wie gesagt, er gibt es nicht aus.

Code: [Select]  
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

global $prefix;
$limit = ($limit) ? ' LIMIT '.intval($limit) : '';
$content = '';
$result = sql_query("SELECT pid, page_header, signature FROM ".$prefix."_pages WHERE active='1' ORDER BY date ".$limit."");
while(list($pid, $page_header, $signature) = sql_fetch_row($result)) {


$content .= '<div class="boxbox"><font face=arial size=1><a href="modules.php?name='.$module_name.'&amp;pa=showpage&amp;pid='.$pid.'">'.mxCutString($page_header,40," ...",'').'</div></a></font>';
}

?>
Gespeichert
Musicman75
Teammitglied
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1.644


WWW
« Antworten #10 am: 02 Juli 2006, 11:57:37 »

Versuch mal das hier, das funktioniert bei mir. Es muss natürlich auch etwas drin stehen in den Feldern.
Code: [Select]  
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");

global $prefix;
$limit = ($limit) ? ' LIMIT '.intval($limit) : '';
$content = '';
$result = sql_query("SELECT pid, title, page_header, signature FROM ".$prefix."_pages WHERE active='1' ORDER BY date ".$limit."");
while(list($pid, $title, $page_header, $signature) = sql_fetch_row($result)) {

$content .= '<div class="boxbox"><font face=arial size=1><a href="modules.php?name='.$module_name.'&amp;pa=showpage&amp;pid='.$pid.'">'.mxCutString($title,40," ...",'').'</div></a></font>';
$content .= '<div class="boxbox"><font face=arial size=1><a href="modules.php?name='.$module_name.'&amp;pa=showpage&amp;pid='.$pid.'">'.mxCutString($page_header,40," ...",'').'</div></a></font>';
$content .= '<hr noshade size="1" width="90%">';
}

?>
Gespeichert

Unaufgeforderte Support PMs & Emails werden ignoriert

Immer erst die Boardsuche verwenden und gegebenenfalls einen neuen Threat eröffnen, wenn das Problem noch nicht behandelt wurde!
-eSmeR-
neu hier
*
Offline Offline

Geschlecht: Männlich
Beiträge: 14



« Antworten #11 am: 02 Juli 2006, 17:34:17 »

jawohl sir, jetzt geht es inwandfrei Smiley ich dank dir vielmals musicman75... *freu* Smiley thumbup
Gespeichert
Seiten: [1]   Nach oben
Drucken
 
Gehe zu:  

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
design by hENNE, layout based on YAML