Writing robust code that uses fields, in Drupal 7

In Drupal 7, the direct access to entity fields (CCK in d6) is different. In Drupal 6 you write:

<?php
$field_val
= $node->field_yourfield[0]['value'];
?>

in Drupal 7 you have to write:

<?php
$field_val
= $node->field_yourfield[LANGUAGE_NONE][0]['value'];
?>

(this is a way suggested by core docs).
So, we have different languages here now.

I haven’t built any d7 multilanguage websites yet, so I don’t know if that approach makes it really easy to create language-aware code for i18n websites (I hope it does!), but for regular single language websites this approach just adds some headaches to the developers.

The problem here is that you can’t rely on LANGUAGE_NONE! if website admin enables locale module, and English language is active, you’ll have to change your code to something like:

<?php
$field_val
= $node->field_yourfield['en'][0]['value'];
?>

Obviously, we need some general way to access fields, with locale languages enabled.

First approach: field_language()

First approach that I’ve tried is to detect active content language of the node.
http://api.drupal.org/api/drupal/developer—globals.php/global/language_…
There is also field language:

http://api.drupal.org/api/drupal/modules—field—field.multilingual.inc/…

But it didn’t work in the way I expected - when nodes are just created, if the node is created in English language, you still have to use LANGUAGE_NONE constant. (I can’t give 100% guarantee that this works exactly like I say, since I don’t use the language variable for a while already)

<?php
$language
= field_language('node', $node, 'field_yourfield');
$field_val = $node->field_yourfield[$language][0]['value'];
?>

I googled and I found

Second approach: field_get_items()

http://www.davereid.net/content/hlkd7fotw-field-get-items

<?php
$field_val
= field_get_items('node', $node, 'field_yourfield');
?>

which is fine. but this approach is not perfectly functional, since you can’t access, say, second element in multi-valued field, in one string (I mean, you can’t do field_get_items(‘node’, $node, ‘field_yourfield’)[1] - well, until php5.4) .
also, if you need quick access to five fields, you have to call field_get_items five times, so your code looks like crap.

and here is the third approach I found, which looks like the best way for field work:

Third approach: entity_metadata_wrapper

entity_metadata_wrapper is a helper object from great Entity module (fago is my hero)

here is how you use it:

<?php
$obj
= entity_metadata_wrapper('node', $node);
$field = $obj->field_yourfield->value();
?>

well, that is clean enough, but not so exciting. What IS exciting, is how you can use entity_metadata_wrapper to load referenced objects on the fly:

<?php
$involved_users
= array();
//grab usernames from user reference field of a node
$project = entity_metadata_wrapper('node', $node);
// field_users is user reference field
foreach ($project->field_users as $acc) {
 
$involved_users[] = $acc->value()->name;
}

var_dump($involved_users);
?>

when you call value() method here, entity_metadata_wrapper knows that the field is a user reference field, and loads appropriate user account on the fly. In Drupal 6, the same code looks like this:

<?php
// Drupal6 code
$involved_users = array();
//grab usernames from user reference field of a node

// field_users is user reference field, $project is node
foreach ($project->field_users as $acc) {
 
$acc_object = user_load($acc['uid']);
 
$involved_users[] = $acc_object->name;
}

var_dump($involved_users);
?>

Also, what is interesting, is that $project->field_users is not a regular array, it is an object, so for example you can call $project->field_users->value() to get an array of all users accounts from the field.
At the same time, this object supports array access, and you can do $project->field_users[0] or you can user foreach like in the example above. Talking in PHP5 language, this field object class implements IteratorAggregate, ArrayAccess and Countable interfaces.

More examples from Entity module readme:

<?php
$wrapper
->author->mail = 'sepp@example.com';
?>

In order to force getting a textual value sanitized for output one can use,
 e.g.

$wrapper->title->value(array(‘sanitize’ => TRUE));

to get the sanitized node title. When a property is already returned
sanitized by default, like the node body, one possibly wants to get the
not-sanitized data as it would appear in a browser for other use-cases.
To do so one can enable the ‘decode’ option, which ensures for any sanitized
data the tags are stripped and HTML entities are decoded before the property
is returned:

$wrapper->body->value->value(array(‘decode’ => TRUE));

That way one always gets the data as shown to the user. However if you
really want to get the raw, unprocessed value, even for sanitized textual
data, you can do so via:

$wrapper->body->value->raw();

You can also save the modified node:

<?php
$node
= node_load(323);
$wrapper = entity_metadata_wrapper('node', $node);
$wrapper->title = 'New title for the node';
$wrapper->save();
?>

This approach works for nodes and all other entities.

For entities creation (which is a separate story) you can try to use entity_create() or shortcut - entity_property_values_create_entity

I made my choice and I use third approach (entity_metadata_wrapper) in my d7 field-related code.

UPD from Tom Nightingale:
It should be noted though that it will only work with fields that correctly describe themselves to Entity API via its property_info hooks.
A lot of contrib field modules still need to implement this.

UPD from author (summer, 2012):
We have a lot of experience building internationalized projects in Drupal 7 now :)

It seems like latest versions of Drupal core now use LANGUAGE_NONE in fields even if you have several content languages active in your website. At least, if you use node-driven translation approach from i18n (and you have separate node to hold each language translation).

so, from now on, you have to deal with this kind of syntax (with ‘en’ key instead of LANGUAGE_NONE):

<?php
$field_val
= $node->field_yourfield['en'][0]['value'];
?>

ONLY if you use field-translation approach (when single node holds translations of fields for all languages). It is done via Entity Translation module.
In other cases (for all single-language projects, and internationalized projects with i18n translation, but without entity translation module), it looks like you’re safe using LANGUAGE_NONE syntax in your code.

Comments

I think you misunderstood field_get_items() - it gives you an array with all values.

$items = field_get_items('node', $node, 'field_yourfield');
$second_value = $items[1];

24 August, 2011

Why do you think I misunderstood the function? I’m not saying you can’t access second value. I’m saying you can’t access it with single string of code - you have to put it in some variable and use this variable to access the child element.

24 August, 2011

I thought field_get_items gives you the field in the appropriate language?

25 October, 2011

The entity_metadata_wrapper approach is really nice, thanks for pointing this out!
It should be noted though that it will only work with fields that correctly describe themselves to Entity API via its property_info hooks.
A lot of contrib field modules still need to implement this.

24 August, 2011

That is fair point! thanks.

25 August, 2011

Can you please show some examples of property info hooks? I am building my own fields (for a social field module) and I'd love to have them properly declared...

04 September, 2011

I think the best way to find info on hooks is to dig into entity api module code.

entity/entity.api.php is a good place to start.

06 September, 2011

A good point of reference on this is AddressField. It defines properties for the street address, locality, country, etc.

26 September, 2011

haven’t built any d7 Multilanguage yet hence I am not aware of the fact you had mentioned here but as you are a senior to this field you have a very good experience that supports my knowledge far better than what I know

05 February, 2014

very nice info!!

Thanks for shearing this

23 November, 2011

I thought field_get_items gives you the field in the appropriate language?

23 November, 2011

but for normal single speech websites this approach just add some headache to the developers.

04 January, 2012

How would you get for instance the timezone on a date field?


<?php
$field = $obj->field_date->value();
?>

and the uri value for a picture?


<?php
$field = $obj->field_picture->value();
?>

09 February, 2012

I am not sure about timezone, because I never configure my dates to worry about that. I always just go by server time. Not a wise practice, I know..

As for files, I believe it would be $obj->field_picture->uri->value(), but that is a guess. What I always do when trouble shooting a field is using the getPropertyInfo() method. This will give you a listing of what values you can call. I usually will use a kpr() of that or dsm().

So kpr($obj->field_picture->getPropertyInfo());

Hope this helps.

21 May, 2012

It ends up being
$wrapper->field_image->file->value()->uri

08 November, 2013

Very nice article, I come back often, well every time I forget how to use it. On a related note, in the last example, it should be :

$wrapper = entity_metadata_wrapper('node', $node);
instead of
$wrapper = entity_metadata_wrapper('node', $wrapper);

Thanks again

06 November, 2012

Thanks Pierre. the example was fixed.

06 November, 2012

Hey, how to work with empty fields with wrappers?

I'm always getting the exceptio when the field is empty:

EntityMetadataWrapperException:
Unable to get the data property [prop name (amount)] as the parent data structure is not set.

Here is my code:
$order_wrapper->owner->field_discount_limit->amount->value() // field_discount_limit is empty

18 December, 2013

I found that a check using 'empty()' was sufficient, except where accessing an entity reference field where I was looking for an nid or uid. For nid or uid, I'd use 'is_numeric()', otherwise I'd get the error you mention (ie 'parent data structure is not set...')

Here's example code:

$public_email = $wrapper->field_public_email_address->value();
if(!empty($public_email)) { // only need to used 'empty()' here
// $public email exists, so do something with it...
}

if(is_numeric($wrapper->field_director->uid)) { //is_numeric() needed to check entity ref. uid
$director = $wrapper->field_director->uid->value();

if(!empty($director)) {
$tbl_project['project_director_user_code'] = $director;
}
}

05 March, 2014

ik zijn browsen online: meer dan drie uur
vandaag , toch heb ik nooit gevonden een interessant artikel als
de uwe . Het is vrij moeite waard genoeg voor mij .
In mijn ogen , web-eigenaren en bloggers die goede content zoals je
deed , de internet zal veel meer zijn nuttiger dan ooit tevoren .
|
I kon niet onthouden van commentaar . Well geschreven! |
Ik zal onmiddellijk snatch rss feed als ik kan niet
in het vinden e-mail abonnement link of e-nieuwsbrief service.
Heeft je hebt enig ? Gelieve allow weet opdat
I misschien net abonneren . Bedankt. |
Het is de beste tijd om wat plannen voor de toekomst
te maken en het is het is tijd om gelukkig te
zijn . ik heb lees dit bericht en als ik kon ik wilt raden u sommige
interessante dingen of tips . Misschien
u kunnen schrijven naast artikelen in verband met dit artikel .
I wilt lees meer dingen over ! |
Het is de beste tijd om een paar plannen voor de toekomst en het is tijd
om gelukkig te zijn . ik heb leren dit bericht
en als ik kunnen wilt raadsman u sommige fascinerende problemen of tips
. Misschien u zou schrijven volgende
met betrekking tot dit artikel . I wilt lezen
meer dingen over it! |
Ik heb zijn surfen online groter dan drie uur nu , maar I nooit gevonden aandachttrekkende artikel als de uwe .
Het is prachtig prijs genoeg voor mij. Persoonlijk , website-eigenaren en bloggers gemaakt uitstekend content
materiaal als je deed , net zijn veel meer
nuttig dan ooit tevoren . |
Ahaa , zijn gezellig dialoog betrekking
dit artikel op deze plaats dit website , ik
heb gelezen dat alles, dus nu me ook commentaar op deze plaats
. |
Ik weet zeker dat dit geschrift heeft aangeraakt alle internet
bezoekers , zijn echt heel leuk goed artikel op het opbouwen van nieuwe
weblog . |
Wow, dit Bericht wordt goed , jongere zus
analyseert dit soort dingen , zo ik ga informeren haar .
|
Bewaard als favoriet , ik uw site ! |
Way cool! Sommige heel geldige punten! Ik waardeer je penning dit schrijf - up en rest van de website is
echt goed. |
Hoi , ik geloof Dit is een geweldige website .

Ik StumbledUpon it ;) ik ga rendement Nog weer sinds ik bookmark werd
het. Geld en vrijheid is de grootste manier om te veranderen , kan je rijk
worden en blijven help anderen . |
Woah ! Ik ben echt liefdevolle de template / thema
van deze website . Het is simpel , maar effectief .
Vaak is het erg moeilijk moeilijk om dat " perfecte balans " tussen gebruiksvriendelijkheid en visuele aantrekkingskracht .

Ik moet zeggen je uitstekend werk met deze . ook , de blog laadt extreem fast voor mij op
Safari . Excellent Blog ! |
Dit zijn echt prachtig fantastische ideeën in op het
onderwerp van bloggen. dingen Hier heb je enkele goed kieskeurig mooie aangeraakt .

Enigerlei wijze houden wrinting . |
Iedereen houdt wat jullie zijn ook omhoog . Dit soort knap werk en
rapportage ! Blijf op de fantastisch werkt jongens die ik heb opgenomen dat jullie blogroll .
|
Hey ! Iemand in mijn Facebook groep deelde deze site
bij ons , dus ik kwam neem een ​​kijkje .
Ik ben zeker genieten de informatie . Ik ben boek-markering
en zal tweeten aan mijn volgelingen! Nog te ontvangen blog en prachtig
ontwerp . |
I love wat jullie neiging om ook omhoog . Dergelijke knap werk
en rapportage ! Blijf op de groot werkt jongens
die ik heb toegevoegd dat jullie mijn eigen blogroll .
|
Howdy zou je het erg delen welke blog platform je behulp ?

Ik gaan om mijn eigen blog binnenkort te starten, maar ik
heb een harde beslissen tussen BlogEngine / Wordpress/B2evolution en Drupal .
De reden dat ik vraag is omdat je ontwerp lijkt
anders dan de meeste blogs en ​​ik ben op zoek naar
iets volstrekt uniek . PS Mijn excuses voor zijn off - topic , maar ik moest vragen !
|
Hi there zou je het erg me te laten weten welke webhost u
werken met ? Ik heb uw blog geladen in 3 totaal verschillende
webbrowsers en ik moet zeggen dat dit blog laadt een stuk sneller sneller dan de meeste .

Kunt u suggereren een goede hosting provider op een eerlijke prijs ?
Veel dank , Ik waardeer het! |
Iedereen houdt van het wanneer individuen elkaar te krijgen en delen gedachten .

Grote website , stok met het ! |
Dank u voor de goed writeup . Het was in feite een pretpark
rekening het. Kijk geavanceerde naar meer
toegevoegd aangename van u! By the way , hoe
kan we communiceren ? |
Hey there wilde alleen maar om u een snelle heads- up . De text in uw bericht lijken te draaien van het scherm in Opera .
Ik weet niet zeker of dit is een opmaak issue of iets te
maken met browser compatibiliteit, maar ik dacht dat
dacht ik post naar u te laten weten . De stijl en design kijk geweldig hoor
! Hoop dat je de probleem opgelost binnenkort.
Kudos |
Dit is een onderwerp dat is dicht bij Zorg !
Waar zijn uw contactgegevens hoewel? |
Het is heel eenvoudige om uit te vinden materie op web
ten opzichte van studieboeken , want ik vond dit Bericht op deze
website . |
Heeft uw blog hebben een contact pagina ?

Ik heb problemen lokaliseren maar , zou ik graag sturen e .
Ik heb wat creatieve ideeën ideeën voor uw blog u misschien geïnteresseerd in het
gehoor. Hoe dan ook , grote blog en ik kijk uit naar het meer groeien in de tijd.
|
Hi ! Ik heb volgende blog voor een lange tijd nu en eindelijk de moed moed om verder
te gaan en geven u een schreeuw van Houston Tx ! Enkel gewild
zeggen keep up the grote werk ! |
Groeten uit Florida ! Ik ben dood vervelen vervelen op het werk dus ik
besloot om Favorieten uw site op mijn iphone tijdens de lunchpauze .

I liefde de kennis u aanwezig hier en kan niet wachten om
een kijkje te nemen als ik thuiskom . Ik ben verbaasd hoe snel
je blog geladen op mijn mobiele telefoon .. ik ben niet eens met
behulp van WIFI , gewoon 3G .. Anyways , great site !

|
Haar zoals u leren mijn gedachten ! U lijken te begrijpen veel over deze , als jij schreef het boek gids
in het of iets . Ik denk dat je gewoon kunnen met
wat procent te kracht het bericht huis een beetje
, in plaats van dat , dat is groot blog.
Een fantastische lezen . ik zal zeker terug .
|
Ik bezocht verschillende webpagina's
echter de audio kwaliteit voor audio songs huidige op dit website is echt
prachtig . |
Hello , ik lees je blog soms en ik zelf een soortgelijk en ik was gewoon benieuwd als je veel spam opmerkingen ?
Zo ja, hoe denkt u voorkomen het, elke plugin of wat je maar kunt
adviseer ? Ik krijg zo veel de laatste tijd is me
mad dus elke hulp wordt zeer gewaardeerd .
|
Groeten ! Zeer nuttig in dit specifieke bericht
! Het is de produceren veranderingen de grootste .
Thanks a lot for sharing! |
Ik ben helemaal liefde uw site .. Groot kleuren en thema.
Wist u ontwikkelen deze site jezelf? Gelieve te antwoorden terug als
ik proberen mijn eigen website en willen uitzoeken waar je deze kreeg van of wat de is vernoemd .
Waarderen ! |
Howdy ! Dit artikel kon niet worden geschreven beter !
Kijkend naar dit bericht doet me denken aan mijn vorige kamergenoot !
Hij voortdurend preken over dit. ik verstuur
dit artikel hem . Vrij bepaalde hij zal hebben een goede
lezen . Bedankt voor delen! |
Wow ! Deze blog ziet er precies net als mijn oude!
Het is op een compleet anders onderwerp maar het heeft vrijwel hetzelfde layout en design. Nog te ontvangen kleurkeuze !
|
Er is zeker veel te weten over onderwerp . I love alle punten die u gemaakt
. |
Je hebt gemaakt goed punten daar. I keek op het
net voor aanvullende informatie over de kwestie en vond de meeste
mensen zullen mee te gaan met uw mening over deze website .
|
Hello , lees blog zoals elke week . Uw humoristische
stijl ontzagwekkende , up the good work ! |
I simpelweg kon niet vertrekken uw site voordat suggereren dat ik echt hield de
gebruikelijke info een persoon levering om je bezoekers
? Is ga zijn terug regelmatig te inspecteren nieuwe berichten |
Ik moet om u te bedanken voor deze geweldige uitstekend te lezen !
I zeker hield elk beetje het. ik heb je
bookmark om te kijken naar nieuwe dingen die je posten ...
|
Hi there , wilde alleen maar vermelding
, graag dit artikel . Het was inspirerende
. Keep on posting ! |
I laat een reactie I waarderen een bericht op een website of als ik iets naar toevoegen aan de discussie .
Het is getriggerd door de sincerness gecommuniceerd in het
artikel I bekeken . En na dit bericht % BLOG_TITLE % .

I was eigenlijk verplaatst enthousiast genoeg om opmerking
toe :-) I weldegelijk dienen een paar vragen voor u als je niet
geest . Is het alleen mij of doet het geven de indruk
als een paar van de reacties tegengekomen alsof ze uit hersendood
mensen ? : - P En , als je detachering at andere sociale sites , ik zou follow
u . Kan maak een lijst het volledige urls van
alle publiek sites zoals je twitter voer, Facebook
pagina of linkedin profiel ? |
Hallo , ik geniet van het lezen van alle Bericht
. I als om in een kleine toelichting om u te
ondersteunen schrijven . |
I telkens bracht mijn half uur om dit te lezen website 's artikelen dagelijks
samen met een cup koffie. |
I continu deze gemaild website na pagina aan al mijn friends , sinds als
willen lezen daarna contact zal ook.
|
Mijn ontwikkelaar probeert te overtuigen overtuigen mij om te verhuizen naar net van PHP .
. Ik heb altijd een hekel aan het idee vanwege de kosten .
Maar hij tryiong niettemin . Ik heb met behulp van Movable type op een aantal websites voor ongeveer een jaar en ben
bang over te schakelen naar een ander platform . Ik heb gehoord uitstekend goede dingen over blogengine.net .
Is er een manier waarop ik kan import al mijn wordpress content in het?
Elke vorm van hulp zou zeer gewaardeerd! |
Hi there ! Ik zou zweren dat ik geweest om deze website vóór maar
na bekijkt veel van de artikelen ik besefte het is nieuw voor mij.

Ongeacht , ik ben zeker blij ik tegenkwam het
en ik zal boek - markering het en regelmatig terug frequent !

|
Groot werk ! Dat is de soort informatie die moet worden gedeeld over de netto .
Disgrace op Google voor nu niet indienen bovenste !
Come on over en bespreek met website .
Bedankt = ) |
Heya ik ben voor de eerste keer hier . I stuitte
dit forum en ik vind het echt handig & het hielp me veel .
Ik hoop iets terug te geven en hulp anderen zoals jij geholpen mij.
|
Hi , ik geloof uw website kon worden met internet browser compatibiliteit issues .
Wanneer ik een kijkje nemen op uw website in Safari , het ziet er prima maar toen opening in
IE , het is enige overlapping kwesties . Ik
wilde geven u een snelle heads-up ! Afgezien van dat , uitstekende
website ! |
Somebody wezen assisteren te aanzienlijk te berichten
ik zou staat . Dit is allereerste keer dat ik bezocht uw website pagina en
tot nu ? I verrast met de analyse u aan creëren deze feitelijke indienen
verbazingwekkende . Fantastic vacatures ! |
Heya Ik ben voor de primaire keer hier . I stuitte dit
forum en ik in het vinden Het echt behulpzaam en het hielp me veel
. Ik hoop aan te bieden iets weer en help zoals u geholpen mij.

|
Howdy ! ik gewoon wilt bieden u een grote voor uw groot
info je hebt hier op dit bericht. Ik ben
terugkeren naar uw blog voor meer binnenkort. |
I altijd gebruikt om lezen paragraaf in kranten ,
maar nu als ik ben een gebruiker van net dus vanaf nu gebruik ik net voor
inhoud , dankzij web . |
Uw methode van veelzeggende het hele ding geschrift
is in feite kieskeurig , ieder kunnen
eenvoudigweg begrijpen , Heel erg bedankt .

|
Hello er , Ik ontdekte website door middel van tegelijk als
zoeken naar gerelateerd onderwerp , uw site kreeg hier up, het ziet er lijkt te zijn als great .
Ik heb bladwijzer in mijn google bookmarks.
Hallo er , net werd bewust van uw blog thru , en gelegen het is echt informatief.
ik ben ga wees voorzichtig voor brussel . Ik zal
dankbaar als je overgaan deze in toekomst .
Veel mensen kan geprofiteerd van je schrijven. Cheers !

|
Ik ben benieuwd wat bloggen platform je toevallig
behulp van ? Ik ervaren enkele kleine security problemen
met mijn laatste blog en ik zou graag iets meer vinden beveiligde .
Heeft u aanbevelingen ? |
ik ben echt onder de indruk van uw schrijfvaardigheid
en ook met de lay-out op uw weblog . Is dit een betaald thema of heb je
wijzigen het zelf ? Anyway keep up the uitstekende kwaliteit van het schrijven ,
het is zeldzaam om een ​​ great zie blog zoals
deze vandaag . |
ik echt inspiratie samen met uw schrijven talenten en ook met de layout
in je weblog . is dat dit een betaalde onderwerp of heb je aanpassen je
zelf ? Anyway blijven de leuk hoge kwaliteit
schrijven, het is ongewoon to peer een mooi blog zoals deze tegenwoordig ..
|
Hello , Neat bericht . Er is een probleem samen met uw website in web ontdekkingsreiziger , zou proef dit?
IE nog is de markt leider en een grote element van andere mensen zal weglaten je groot vanwege dit probleem.
|
Ik ben niet zeker waar u om uw info , maar grote
onderwerp . Ik moet wat tijd besteden aan het leren meer of begrip meer .
Bedankt voor uitstekende info Ik was op zoek naar deze info voor mijn missie .
|
Hello , ik denk dat ik je zag bezocht mijn website dus
kwam ik op " terug te keren de gunst " ik ben .
proberen dingen te vinden om te verbeteren verbeteren mijn !

website ik veronderstel dat het ok om te gebruiken een paar van uw
ideeën ! |
Hi , ik voel opgevallen u bezocht mijn website
zo i hier kreeg naar terug de verlangen ? . ik ben probeert
vinden problemen naar verbeteren mijn website ik denk !
haar adequate gebruiken een paar van uw ideeën
! |
Hallo er , net werd alert uw blog via Google , en vond
dat het echt informatief. Ik ben ga kijk uit
voor brussel . ik waarderen als u deze in de toekomst voortzetten. Veel
mensen zullen worden geprofiteerd van uw schrijven .

Cheers ! |
Ik ben nu niet zeker waar u om uw
info , echter maar grote onderwerp . I moet besteden een tijdje leren meer of uitwerken meer
. Dank voor prachtig info ik vroeger op zoek naar
info voor mijn missie . |
Hello mijn geliefde ! I wil zeggen dat deze bericht wordt
geweldig , groot geschreven en ongeveer vitale info .

ik zou als zien meer berichten als deze. |
hello , I love ! uw schrijven dus veel !

percentage communiceren extra over uw bericht op AOL ?
Ik need een expert in deze omgeving
te lossen mijn probleem . Misschien dat is u!

Na een blik vooruit om u . |
ik ben echt genieten het thema / ontwerp van uw weblog .
Heb je ooit in een browser compatibiliteit problemen ?
Een paar publiek hebben geklaagd over mijn website bewerking
correct in Explorer , maar ziet er geweldig uit in Firefox .

Heeft u advies te helpen dit op te lossen
kwestie ? |
Zeer goed info . Lucky me Ik ontdekte uw site
per ongeluk ( stumbleupon ) . Ik heb bladwijzer het
voor later ! |
Het is fantastische dat u gedachten uit deze Bericht evenals van onze argument
gemaakt op dit moment . |
Als u willen te groeien vertrouwdheid net houden een bezoek aan deze webpagina en worden bijgewerkt
met de nieuwste nieuwste nieuws geplaatst hier . |
Wat is Happening ik ben nieuw op dit , ik struikelde over deze Ik heb gevonden Het absoluut behulpzaam en het heeft
geholpen geholpen me uit belastingen.
Ik hoop te bijdragen & assisteren andere gebruikers net als zijn geholpen mij.

Goed job . |
Hoera , ​​dat is wat ik zoek voor , wat een gegevens !

present hier op deze blog , dankzij admin van deze
web page . |
Als u wilt te te veel uit deze artikel dan moet je solliciteren dergelijke technieken uw won
website . |
Het is een verbazingwekkende geschrift ten gunste van de online
mensen ; zij zullen te voordeel van het Ik ben er zeker van .

|
Ik heb gelezen aantal goed spul hier
. Zeker waard bookmarking voor langskomen .

Yes!

. . . .

Laat het me weten .

my web page: spiderman

22 October, 2014

Post new comment

Private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

Note for potential spammers: all links in your comment will not be indexed by search engines.

Anton Sidashin

Anton Sidashin senior developer, Pixeljets co-founder

I'm a web developer specializing in PHP and Javascript, and Drupal, of course. I'm building Drupal projects since 2005, and I was working as full-time senior engineer in CS-Cart for a while, building revolutionary e-commerce software. In my free time, I enjoy playing soccer, building my body in gym, and playing guitar.

Drupal.org ID: restyler
Drupal association member