Kein strrpos, strtok, substr, ... in eigener Funktion!

Thema wurde von Manni_HB, 18. Mai 2011 erstellt.

  1. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Bevor ich mich nun endlich dem Wahnsinn hingebe ein letzter Hilferuf an die versammelte Expertenschar:

    Ich habe in "newsletter.php" ein paar Zeilen zum zerlegen und zusammenschrauben eines Strings geschrieben. Soweit sehr schön - es funktioniert.
    Da diese Zeilen aber unverändert in mehreren Files vorkommen werden, habe ich eine eigene Funktion "/inc/mbr_color_alert.php" erschaffen und ich der "newsletter.php" mit "require_once (DIR_FS_INC.'mbr_color_alert.php')" eingebunden. Funktioniert einwandfrei ... mit dem dem kleinen Schönheitsfehler, das keine der o.g. Stringfunktionen in der Funktion bekannt sind!
    Nun gut - "require_once ....." dann eben in die "application_top.php" - Ergebnis datt gleiche!

    Da nun sowohl mein Latein als auch meine Nerven sich dramtisch dem Nullpunkt nähern, hoffe ich stark auf fachkundige Hilfe.
    Besten Dank dafür bereits an dieser Stelle!
     
  2. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Hallo Manfred,

    das ist ja echt seltsam! Es wäre hilfreich, wenn du die gesamte Fehlermeldung und die mbr_color_alert.php hier veröffentlichst.
     
  3. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    #3 Manni_HB, 18. Mai 2011
    Zuletzt bearbeitet: 18. Mai 2011
    Hallo Moritz,

    Fehlermeldungen gibbet keine - es geschieht hat "nur" nix! <grrrrrr>
    Hier die Funktion:
    Code:
    <?php
    
    function mbr_color_alert($msg_text) {
    
    $pos_first = stripos($info_message, '@');
    if ($pos_first !== false) {
    	$pos_last		= strrpos($info_message, '@');
    	$mbr_css		= strtok($info_message, "@");			//	---- Farbangabe für alert-css Datei
    	$info_message	= substr($info_message, $pos_last+1);	//	---- Farbangaben aus Message-String entfernen
    } else {$mbr_css = 'normal';}							//	---- keine Farbangaben im Message-String, dann normale CSS
    
    
    ?>
    <link rel="stylesheet" type="text/css" href="<?php echo 'templates/' . CURRENT_TEMPLATE . '/javascript/alert_'.$mbr_css.'.css'; ?>" />
    <?php
    
    	return $info_message;
    }
    ?>
    Zerlegt bloß die $info_message, die bei mir als erstes Angaben (@red@blablaMessagetext) für verschiedene CSS-Dateien haben. In der "newsletter.php" arbeitet datt Gerät einwandfrei!?!?

    In der "newsletter.html" kommt es dann zum Einsatz:
    Code:
    	
    	{$FORM_ACTION}	
    	{if $info_message}		
    		{php}
    			$popuptext = $this->get_template_vars('info_message');
    			echo "<body onload=\"javascript:alert('Bitte beachten Sie...','".$popuptext."',{button_title:'Gelesen und verstanden.'})\">";
    		{/php}
    	{/if}
    	
    ... und macht verschiedenfarbige, mit CSS formierte ALERT-Meldungen.
    Bisher nur in der Newletter-An/Abmeldung, aber dennoch zu besichtigen: www.kartoffel-mueller.de
     
  4. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Der Parameter der Funktion muss $info_message heißen.
     
  5. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    MORITZ ...

    ... Du hast Dir ein/zwei/... Freibier verdient!! Heute Abend, .... Schlachte?? :)