• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Newsletter Widget (PHP)

sennin

Neues Mitglied
Hallo zusammen,

ich bin noch Anfänger in Programmiersprachen und vielmehr Online Marketer. Bitte berücksichtigt das bei der folgenden Anfrage.
Ich möchte ein Newsletter Widget, welches in PHP geschrieben wurde, anpassen. Das Problem besteht darin, das der Link bzw. die Aktion die auf dem "Subscribe-Button" hinterlegt ist
auf die falsche URL verweist. Einfacher: Ich möchte in dem PHP-Skript des Newsletter-Widgets nur einen Link austauschen.


So bin ich vorgegangen:

1. Originalcode angeschaut
PHP:
<?php
add_action('widgets_init', 'newsletter_load_widgets');
 
function newsletter_load_widgets()
{
                register_widget('Newsletter_Widget');
}
 
class Newsletter_Widget extends WP_Widget {
               
                function Newsletter_Widget()
                {
                               $widget_ops = array('classname' => 'widget_newsletter', 'description' => 'Newsletter widget let you display Twitter updates.');
 
                               $control_ops = array('id_base' => 'newsletter-widget');
 
                               $this->WP_Widget('newsletter-widget', '&rArr; PressLayer: Newsletter', $widget_ops, $control_ops);
                }
               
                function widget($args, $instance)
                {
                               extract($args);
                              
                               $color = $instance['color'];
                               $title = $instance['title'];
                               $text = $instance['text'];
                               $feedburner = $instance['feedburner'];
                              
                               ///echo $before_widget;
                              
                               ?>
                              
                               <div class="widget widget_newsletter white_box <?php echo $color;?>">
 
                               <div class="border_b">
                                               <div class="newsletter_inner">
                                              
                                               <h3><?php echo $title; ?></h3>
                                                               <p><?php echo $text; ?></p>
                                                              
                                                               <form action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=<?php echo $feedburner; ?>', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">
                                                                             
                                                                              <input type="text" placeholder="<?php _e('Email address','presslayer');?>" name="email" class="letter_email" />
                                                                              <input type="submit" name="submit" value="<?php _e('Ok','presslayer');?>" class="letter_submit" />
                                                                              <input type="hidden" value="<?php echo $feedburner; ?>" name="uri" />
                                                                              <input type="hidden" name="loc" value="en_US" />
                                                               </form>
                                               </div> 
                               </div></div>
                              
                              
                               <?php
 
                              
                               ///echo $after_widget;
                }
               
               
                function update($new_instance, $old_instance)
                {
                               $instance = $old_instance;
 
                               $instance['color'] = strip_tags($new_instance['color']);
                               $instance['title'] = strip_tags($new_instance['title']);
                               $instance['text'] = $new_instance['text'];
                               $instance['feedburner'] = $new_instance['feedburner'];
                              
                               return $instance;
                }
 
                function form($instance)
                {
                               $defaults = array('color'=>'blue','title' => 'Newsletter', 'text' => 'Sign up to receive email updates and to hear what\'s going on with our company!', 'feedburner' => 'presslayer');
                               $instance = wp_parse_args((array) $instance, $defaults); ?>
                              
                               <p>
                                              
                                               <label for="<?php echo $this->get_field_id('color'); ?>">Box color:</label>
                                               <select id="<?php echo $this->get_field_id('color'); ?>" name="<?php echo $this->get_field_name('color'); ?>" class="widefat follow" style="width:100%;">
                                                               <option value='blue' <?php if ('blue' == $instance['color']) echo 'selected="selected"'; ?>>Blue</option>
                                                               <option value='green' <?php if ('green' == $instance['color']) echo 'selected="selected"'; ?>>Green</option>
                                                               <option value='red' <?php if ('red' == $instance['color']) echo 'selected="selected"'; ?>>Red</option>
                                                               <option value='black' <?php if ('black' == $instance['color']) echo 'selected="selected"'; ?>>Black</option>
                                                               <option value='pink' <?php if ('pink' == $instance['color']) echo 'selected="selected"'; ?>>Pink</option>
                                                               <option value='orange' <?php if ('orange' == $instance['color']) echo 'selected="selected"'; ?>>Orange</option>
                                               </select>
                               </p>
                              
                               <p>
                                               <label for="<?php echo $this->get_field_id('title'); ?>">Title:</label>
                                               <input class="widefat" style="width: 216px;" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo $instance['title']; ?>" type="text" />
                               </p>
                              
                               <p>
                                               <label for="<?php echo $this->get_field_id('text'); ?>">Text for intro:</label>
                                               <textarea class="widefat" style="width: 216px; height:100px" id="<?php echo $this->get_field_id('text'); ?>" name="<?php echo $this->get_field_name('text'); ?>"><?php echo $instance['text']; ?></textarea>
 
                               </p>
 
                              
                               <p>
                                               <label for="<?php echo $this->get_field_id('feedburner'); ?>">Feedburner ID:</label>
                                               <input class="widefat" style="width: 216px;" id="<?php echo $this->get_field_id('feedburner'); ?>" name="<?php echo $this->get_field_name('feedburner'); ?>" value="<?php echo $instance['feedburner']; ?>" type="text" />
                                               <p style="font-size:11px"><a href="http://feedburner.google.com/" target="_blank">Register Feedburn ID?</a></p>
                               </p>
                              
                              
                <?php
                }
}
?>


2. Die entscheidende Stelle ausfindig gemacht
PHP:
<form action="http://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow" onsubmit="window.open('http://feedburner.google.com/fb/a/mailverify?uri=<?php echo $feedburner; ?>', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true">


3. Die Code-Stelle komplett ausgetauscht
PHP:
<form method="post" enctype="text/html" action="http://ymlp.com/subscribe.php?id=gbmhqmmgmgj">


4. Das Ergebnis ist folgendes
- Der Link funktioniert!
- ALLERDINGS: Gibt das Pop-Up aus, dass eine ungültige E-Mail Adresse eingegeben wurde. Durch meine Änderung kann das Widget die E-Mail im Feld nichtmehr auslesen.
D.h. er erkennt eine Eingabe im Feld "E-Mail" nicht. Wie kann ich das nun richtig umsetzen???
:???:


Für eure Hilfe wäre ich mehr als dankbar!
Bin verzweifelt!
 
Werbung:
Du hast das Ziel des Formulars

Code:
http://feedburner.google.com/fb/a/mailverify

durch

Code:
http://ymlp.com/subscribe.php?id=gbmhqmmgmgj

ersetzt. Entscheidend für die Beantwortung deiner Frage ist nun: was machen diese Ziele unterschiedliches?

Ersteres funktioniert ja mit dem Originalcode, also nehme ich an, dass das dort hinterlegte Script auch genau für dieses Widget ausgelegt ist.

Wenn Du das nun ersetzen willst, musst Du unter der neuen URL (also o.g. 2. URL) genau diese Funktionalität ebenfalls hinterlegen. Wenn Du keine Kontrolle über dieses Script unter der URL hast, dann solltest Du eher eine eigenes Script entwickeln, welches das Formular nach deinen eigenen Wünschen auswerten kann.
 
Werbung:
Die Querverweise ignorieren wir jetzt mal, denn eine Lösung des Problems wurde noch nirgendwo erzielt. :???:

@ threadi: An der Seite kann es NICHT liegen.
folgender HTML Code funktioniert nämlich in Kombination mit der Seite:

<form method="post" action="http://ymlp.com/subscribe.php?id=gbmhqmmgmgj">
Fill out your e-mail address to receive our newsletter!
E-mail address:<input type="text" name="YMP0" size="20" />
<input type="submit" value="Submit" />
</form>


Jetzt die Frage: Wie muss ich den HTML-Code umschreiben und in das vorhandene PHP-Skript einfügen (oben)
damit es funktioniert?
 
Die Querverweise ignorieren wir jetzt mal, denn eine Lösung des Problems wurde noch nirgendwo erzielt. :???:

Die ignorieren wir nicht, weil wir nicht wissen was dir in anderen Foren schon an Tipps gegeben wurden. Daher machen sich noch mehr Leute doppelt und dreifach für dich die selben Gedanken - was weder denen die dir helfen wollen noch dir etwas bringt.

@ threadi: An der Seite kann es NICHT liegen.
folgender HTML Code funktioniert nämlich in Kombination mit der Seite:

Es geht nicht um den HTML-Code sondern das Script an das das Formular abgeschickt wird.

Jetzt die Frage: Wie muss ich den HTML-Code umschreiben und in das vorhandene PHP-Skript einfügen (oben)
damit es funktioniert?

Die Frage kann man ohne das Script an das Du das Formular schickst zu kennen nicht beantworten.
 
Hmm... schwierig. Versuchen wir mal einen anderen Ansatz (exklusiv werde ich das NUR HIER fragen). ;)

Hier sieht man ein Beispiel für das Problem: NYCReisen.de - Dein Reiseführer für den Big Apple!.
Das untere Widget mit dem Namen "Newsletter" in weiß funktioniert bestens (HTML). Allerdings möchte ich das Design des oberen Widgets (PHP) übernehmen. Kann ich zumindest das Design in die HTML Variante extrahieren?

Das ist so wichtig für mich, weil der Newsletter-Bereich den Nutzer auffallen soll im Gegensatz zu einem weißen Widget.


Alternativ: Kann man zumindest die Textbox aus dem oberen Widget (PHP - Code steht hier im ersten Beitrag) entfernen?



Danke für eure Hilfe bis hierhin und darüber hinaus :)
 
Werbung:
Wenn Du die Frage gleich so gestellt hättest, hätte man dir deine Frage sicherlich schneller und besser beantworten können. Natürlich kann man das Design (das Aussehen) von HTML-Elementen nahezu beliebig an irgendeine Vorlage anpassen. In diesem Fall hier solltest Du die CSS-Eigenschaften mal mit einem Webentwickler-Tool wie Firebug untersuchen und die dafür verwendeten Klassen auf das 2. Widget übertragen. Ggfs. musst Du noch am Style-Code für dieses 2. Widget etwas ändern, da hier eine Überschrift existiert, die im ersten Widget nicht enthalten ist. Änderungen am ausgegebenen HTML-Code würde ich aber, bis auf zusätzlich eingefügten Klassennamen eher ausschließen.
 
Zurück
Oben