Categorie

cPanel plugin: Installer voor WordPress

26 mei 2011 14:22 | Geplaatst door Marcel

Op mijn werk heb ik kortgeleden een WordPress installer geschreven om te integreren in cPanel. Ik heb er een pagina aan gewijd, en versie 1.0 uitgebracht.

Op mijn werk heb ik kortgeleden een WordPress installer geschreven om te integreren in cPanel. Ik heb er een pagina aan gewijd, en versie 1.0 uitgebracht.
Verder lezen...

Popup contact formulier in WordPress

10 mrt. 2011 11:25 | Geplaatst door Marcel

Het is mogelijk een contact formulier aan te maken wat via een popup getoond wordt. Vergelijkbaar met een lightbox popup. Er is geen plugin in WordPress die dat mogelijk maakt, dus ik heb met html/css en javascript zelf wat gemaakt.

Javascript

Als eerste laat ik de javascript zien die de popup mogelijk maakt. Deze javascript code kun je plaatsen in header.php van je wordpress template.

<script type="text/javascript">
function latenzien() {
document.getElementById('contact_overlay').style.display = 'block';
jQuery('#contact_overlay').animate({opacity:'1.0'}, 1000);
}
function verstoppen() {
document.getElementById('contact_overlay').style.display = 'none';
document.getElementById('contact_overlay').style.opacity = '0.0';
}
</script>

Je ziet dat er bij het aanroepen van de functie latenzien(), dat er een divje op display:block gezet wordt, en met een animatie in jQuery wordt hij ondoorzichtig gemaakt. Om de overlay maar voor 80% ondoorzichtig te maken heb ik als achtergrond van de div een half-transparante png gebruikt.

HTML

De html code kan geplaatst worden aan het eind van footer.php, net binnen de body.
Let op de shortcode van Contact Form 7, er zitten voor de juiste weergave nu wat spaties in.

<div id="contact_overlay"> <!-- contact form -->
<div id="contact_container">
<div id="contact_popup">
<h3>Neem contact op.</h3>
<?php echo do_shortcode(' [ contact-form 1 "Contact" ] '); ?>
<div id="contact_sluiten">
<a href="#" onClick="verstoppen()">Sluiten <strong>X</strong></a>
</div>
</div>
</div>
</div>

Om de code zichtbaar te maken plaatsen we een button of link ergens in ons template, met een onclick event. Wanneer deze link geklikt wordt zal de popup verschijnen.

<div id="contact">
<a href="#contact_" onClick="latenzien()"></a>
</div>

CSS

De CSS code is wat uitgebreider.

div#contact_overlay
{display: none;
opacity:0.0;
filter:alpha(opacity=0);
height: 1000px;
width: 100%;
position: absolute;
top: 0;
background-image: url('/images/contact_overlay.png');}

div#contact_container
{width: 760px;
margin: 100px auto 0;
position: relative;}

div#contact_popup
{height: 660px;
width: 570px;
padding: 30px 45px 0;
margin: 0 auto;
-moz-border-radius: 15px 15px 15px 15px;
-webkit-border-radius: 15px 15px 15px 15px;
border-radius: 15px 15px 15px 15px;}

div#contact_sluiten {
text-align: right;
width: 570px;
height: 30px;
font-size: 1.8em;}

Je ziet hier dat de contact_overlay een position absolute krijgt, en dus over het gewone document heenvalt. De top:0; plaatst hem dan bovenaan.

IE6 – IE8

In IE6 t/m 8 is het probleem dat de transparante png compleet zwart is, en niet meer doorzichtig. Dit komt doordat IE6 – IE8 een probleem met opacity heeft. Verander je de opacity van een transparante png, dan wordt het transparante deel zwart.
Dit is te omzeilen door een gif te gebruiken voor IE. Ik kreeg een halftransparante gif echter ook niet goed, en heb het anders opgelost. Ik heb een gif gebruikt van 4 pixels, waarvan er 3 zwart zijn en 1 volledig transparant. In een stylesheet die voor IE6 – IE8 werkt is dit vervolgens toe te voegen.

Het is mogelijk een contact formulier aan te maken wat via een popup getoond wordt. Vergelijkbaar met een lightbox popup. Er is geen plugin in WordPress die dat mogelijk maakt, dus ik heb met html/css en javascript zelf wat gemaakt.…
Verder lezen...

Custom zoekresultaten in WordPress

24 feb. 2011 09:52 | Geplaatst door Marcel

Binnen WordPress kun je een widget gebruiken om te zoeken binnen de website. Vaak zijn de standaard zoekresultaten in WordPress voldoende. Soms echter wil je de zoekopties verfijnen. Dit kan op een simpele manier door extra velden mee te geven in het formulier.

De functie get_search_form() heeft standaard als output in WordPress 3.0 het volgende:

<form role="search" method="get" id="searchform" action="/" >
<div><label class="screen-reader-text" for="s">Zoeken naar:</label>
<input type="text" value="zoektest" name="s" id="s" />
<input type="submit" id="searchsubmit" value="Zoeken" />
</div>
</form>

De enige variabele die hier meegegeven wordt is “s” met de waarde van de zoekopdracht, in dit geval “zoektest”. Je kunt echter vele verfijningen toevoegen. Bijv. dat in de resultaten alleen berichten worden weergegeven. Dit doe je met de volgende toevoeging:

<input type="hidden" value="post" name="post_type" id="post_type" />

Hier geven we de waarde “post” mee, oftewel alleen berichten. Standaard staat dit op “any”.
Zo zijn er veel toevoegingen. Met een var_dump() van het object $wp_query kun je aan het begin de standaardwaardes van alle zoekvariabelen zien. Met een var_dump() van $wp_query->query kun je de huidige query uitlezen.

Searchform.php

Je kunt dit geheel aan input-velden de standaard zoekfunctie maken door een searchform.php aan te maken in je theme map. De searchform.php kan er dan als volgt uitzien:

<form role="search" method="get" id="searchform" action="/" >
<div><label for="s">Zoeken naar:</label>
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />
<input type="hidden" value="post" name="post_type" id="post_type" />
<input type="submit" id="searchsubmit" value=" " />
</div>
</form>

Iedere keer dat je nu de functie get_search_form() aanroept komt het juiste formulier tevoorschijn.

Binnen WordPress kun je een widget gebruiken om te zoeken binnen de website. Vaak zijn de standaard zoekresultaten in WordPress voldoende. Soms echter wil je de zoekopties verfijnen. Dit kan op een simpele manier door extra velden mee te geven…
Verder lezen...

jQuery plugins in WordPress

03 dec. 2010 13:53 | Geplaatst door Marcel

WordPress is origineel opgebouwd rond een andere javascript library, Prototype. In latere instantie is er pas jQuery aan toegevoegd. De gebruikte jQuery is echter licht aangepast om niet te conflicteren met Prototype. Veel plugins gebruiken ook deze jQuery.
Probleem kan echter zijn dat de eigen toegevoegde jQuery scripts niet goed werken wanneer de jQuery van WordPress wordt gebruikt. Er is een goede oplossing hiervoor.

De oplossing

De oplossing houdt in dat we de eerste regel van onze eigen jQuery scripts aanpassen.
De regel die eruit ziet als:

$(document).ready(function()

Veranderen we in:

jQuery(document).ready(function()

Zo wordt in het script dat we gebruiken ook jQuery daadwerkelijk aangeroepen.
De oorzaak ligt er namelijk in dat het $ teken gebruikt wordt om jQuery aan te roepen binnen een script, maar omdat WordPress rond Prototype gebouwd is wordt dat binnen Prototype juist aangeroepen. En dat werkt niet.

We kunnen deze aanpassing loslaten op alle “$” tekens in het betreffende javascript. Dus simpelweg een Zoek-en-vervang van $ door jQuery.

WordPress is origineel opgebouwd rond een andere javascript library, Prototype. In latere instantie is er pas jQuery aan toegevoegd. De gebruikte jQuery is echter licht aangepast om niet te conflicteren met Prototype. Veel plugins gebruiken ook deze jQuery. Probleem kan…
Verder lezen...