Développement web indépendant à Montpellier

Publié le mardi 30 novembre 2010 11:37:23

Création de shortcode/bbcode Wordpress

Nous pouvons déjà créer des pages personnalisées grâce aux filtres wordpress, cependant, dans le cadre de notre plugin, il peut être intéressant d'ajouter des fenêtres de chat dans les pages de notre blog... bon ok, ça sert à rien, mais c'est pour l'exemple et la science :)

C'est possible grâce à ce que l'on appelle les shortcodes wordpress. Si vous postez de temps en temps sur des forums de discussion, vous savez surement déjà qu'il est possible avec un pseudo-code d'ajouter des images, des citations ou d'autres mises en forme, on appelle souvent cela bbcode (pour bulletin board code, je crois). Par exemple, pour mettre en texte en gras, on ferait :

[b]Un texte[/b]

Concernant les shortcodes wordpress, c'est exactement le même principe, nous allons donc créer notre shortcode [wpjschat] et introduire la notion de canal de discussion dans notre chat.

Ajout du short code

Dans l'éditeur wysiwyg, nous allons donc donner la possibilité aux administrateurs de blog wordpress de créer leurs fenêtres de chat. POur cela, ils auront juste à ajouter un bbcode de ce type :

[wpjschat channel="1"]Texte initial placé dans la fenêtre de chat[/wpjschat]

Ceci affichera notre chat dans le contenu de la page.

  • wpjschat sera l'intitulé de notre shortcode,
  • channel sera l'identifiant du canal de discussion : à noter que s'il n'existe pas, nous renvoyons vers le canal de discussion 1, qui est celui de la widget wordpress que nous avons crée quelques cours auparavant.

Création de l'interface du chat

Nous créons donc l'interface du chat pour nos pages en HTML et réservant quelques variables PHP pour l'affichage des données dont nous avons besoin :

<form class="wp_jschat_widget_form" action="<?php bloginfo('wpurl'); ?>/wp-admin/admin-ajax.php" method="post">
    <div class="wp_jschat_widget_text">
        <?php for ($i = count($messages) - 1; $i >= 0; $i--): ?>
            <p><span class='author'><u><?php print $messages[$i]->pseudo; ?></u></span> : <?php print strToSmileys($messages[$i]->message); ?></p>
        <?php endfor; ?>
        <?php print $initialContent; ?>
    </div>
    <div class="wp_jschat_smileys">
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_razz.gif" alt="razz" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_lol.gif" alt="lol" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_mrgreen.gif" alt="mrgreen" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_question.gif" alt="question" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_rolleyes.gif" alt="rolleyes" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_sad.gif" alt="sad" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_wink.gif" alt="wink" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_surprised.gif" alt="surprised" /></a>
        <a href="#" class="wp_jschat_smile"><img src="<?php bloginfo('wpurl'); ?>/wp-includes/images/smilies/icon_idea.gif" alt="idea" /></a>
    </div>
    <div class="form">
        <input type="hidden" class="hasSmileys" value="<?php print $enable_smileys; ?>" />
        <input type="hidden" class="blog_url" value="<?php bloginfo('wpurl'); ?>" />
        <input type="hidden" class="wp_jschat_last_date" name="wp_jschat_last_date" value="<?php print current_time('mysql'); ?>" />
        <input type="hidden" class="wp_jschat_canal" name="wp_jschat_canal" value="<?php print $channel; ?>" />
        <input type="text" class="wp_jschat_text" name="wp_jschat_text" style="width:150px;" />
        <input type="submit" name="wp_jschat_submit" value="ok" />
        <p><a href="#" class="wp_jschat_widget_refresh"><?php _e('Rafraîchir', 'wpjschat'); ?></a></p>
    </div>
</form>

Ajout de la fonction dans la classe principale wp_jschat

Nous créons maintenant dans notre classe wp_jschat le code nécessaire à l'affichage du chat (celui qui va remplacer les shortcodes), notez que l'on fait toujours la même chose quelle que soit la tâche, c'est relativement simple.

/**
 * Affichage du chat sur la page via les shortcodes
 * @param array $args
 */
function shortcode_myJsChat($attributes, $initialContent = '')
{
    $options = get_option($this->adminOptionsName);
    $excludes = preg_split('@\s*,\s*@', $options['exclude_ips']);
    if($options['enabled']!='false' && !in_array($_SERVER['REMOTE_ADDR'], $excludes))
    {
        $enable_chat = 'true';
        $enable_smileys = 'true';
        if(!empty($user_email))
        {
            $options = $this->getUserOptions();
            $opts = explode(",", $options[$user_email]);
             if (sizeof($opts) >= 2)
            {
                $enable_chat = $opts[0];
                $enable_smileys = $opts[1];
            }
        }
        if($enable_chat!=false)
        {
            extract(shortcode_atts(array(
              'channel' => '1'
            ), $attributes));
            $messages = $this->getLastMessages($channel);
            ob_start();
            include('php/page.php');
            $chat = ob_get_contents();
            ob_clean();
            return $chat;
        }else{
            return '';
        }
    }
}

Dans un premier temps nous récupérons les attributs passés dans le shortcode (nous n'attendons que l'attribut channel, qui par défaut et à 1).
Dans un second temps, nous récupérons le code HTML de notre chat et le renvoyons.

C'est tout !

Ajout du shortcode : add_shortcode()

Il ne nous reste qu'à déclarer le shortcode à notre système, de la même manière que nous l'avons fait pour les filtres, les actions ou même l'installation du plugin :

if(function_exists('add_shortcode'))
{
    add_shortcode('wpjschat',array(&$inst_wp_jschat, 'shortcode_myJsChat'));
}

S'il est encore besoin de décrire ce type de fonction, add_shortcode() prend comme premier argument l'intitulé du shortcode (en l'occurence wpjschat nous concernant), et comme 2e argument la fonction. Comme nous sommes dans un contexte objet, il s'agit d'un tableau contenant l'instance de la classe puis le nom de la méthode (Si vous arrivez sur cet article, reportez vous sur les cours précédents, notamment les actions wordpress).

Développement d'un plugin wordpress :

  • Plugin chat Javascript pour Wordpress  

    Ce plugin de chat Javascript pour wordpress est distribué sous licence GPLv2, il est surtout développé à titre d'exemple dans le cadre d'un cours sur la création d'un plugin Wordpress.

  • Créer un plugin Wordpress 3.X  

    Créer un plugin Wordpress 3.X

  • Structure des plugins Wordpress  

    Tous les plugins wordpress seront installés dans le répertoire wp-content/plugins. Certains plugins peuvent se limiter à l'inclusion d'un seul fichier PHP, mais il est recommandé de toujours créer un dossier pour stocker les plugins....

  • Actions  

    Après avoir défini la structure de notre plugin wordpress, nous pouvons ajouter des actions, dans cet exemple, nous allons ajouter un bout de code qui va s'exécuter dans la balise <head> du blog Wordpress.

  • Filtres  

    Les filtres wordpress sont les fonctions que votre plugin peut accrocher dans le but de modifier le texte de sortie. Ce texte de sortie est généralement formaté et inséré dans une base de données, et montré à l'écran à l'utilisateur.

  • Créer le panneau d'administration d'un plugin wordpress  

    Tous les plugins devraient idéalement posséder un panneau d'administration. Créer ce panneau d'administration n'est pas très complexe, c'est donc un peu pénible de la part des auteurs de plugin de demander à leurs utilisateurs d'éditer eux-mêmes le code PHP (Ce qui n'est généralement pas une bonne idée).

  • Création d'une widget Wordpress  

    Nous allons maintenant créer une widget sous forme de plugin. Les widgets wordpress permettent d'insérer des parties de code facilement sous forme de bloc pour l'utilisateur final. Elles peuvent être ensuite ajoutées dans les barres d'outils prédéfinies selon les thèmes que vous utilisez.

  • Plugin - créer un panneau utilisateur  

    Il peut y avoir des situations où les utilisateurs peuvent être amenés à gérer leurs propres paramètres pour votre plugin : dans le cas de notre projet de chat Javascript, nous allons permettre d'une part aux utilisateur d'afficher ou non le chat, et d'utiliser les smileys ou non.

  • Installation/Désinstallation base de données | plugin Wordpress  

    Maintenant que nous savons créer des panneaux d'administration et des panneaux utilisateurs, nous allons attaquer l'accès au model : en interagissant avec la base de données. C'est une partie très importante du tutoriel wordpress, car lorsque l'on écrit un plugin, on a dans la majorité des cas besoin de stocker des données dans une base.

  • Traitement et affichage des requêtes dans base de données wordpress  

    C'est bien joli d'avoir nos tables dans base de données, maintenant, nous allons afficher les résultats de nos insertions.

  • Inclure les fichiers Javascript dans le header  

    Dans le cadre de notre application, nous aurons besoin d'inclure des fichiers Javascript dans le header des pages de notre blog Wordpress. Nous pourrions bien entendu le faire en ajoutant sauvagement du code HTML au fichier de template, mais on va éviter :)

  • Inclure les feuilles de style CSS  

    De la même manière que nous avons inclut les scripts Javascript dans le header de notre blog wordpress, nous allons maintenant inclure la feuille de style CSS de notre plugin wp_jschat. Nous allons également placer cette inclusion dans la méthode addHeaderCode() de notre classe principale créée lors de l'article sur les actions wordpress.

  • Ajax et les plugins Wordpress  

    Ajax est un protocole qui permet d'envoyer des requêtes http à partir de Javascript, si vous n'êtes pas familier avec ce protocole, vous pouvez en savoir plus sur cet article sur Ajax xmlHttpRequest.

  • Internationalisation du plugin  

    Depuis le début de cette suite d'articles, nous utilisons systématiquement les fonctions e() et __() pour afficher du texte. Nous l'avions déjà évoqué au cours d'articles précédents : c'est dans le but d'internationaliser notre plugin. Tous les textes pourrons ainsi être traduits par les utilisateurs de votre plugin dans des fichiers de langue.

  • Création de shortcode/bbcode Wordpress  

    Nous pouvons déjà créer des pages personnalisées grâce aux filtres wordpress, cependant, dans le cadre de notre plugin, il peut être intéressant d'ajouter des fenêtres de chat dans les pages de notre blog.

  • Distribuer un plugin Wordpress  

    Maintenant que votre plugin fonctionne, il a peut être vocation à être redistribué à la communauté ! Pour cela, rien de plus simple, cet article a vocation à vous expliquer comment vous y prendre.

Notez cet article !

  • Actuellement 3 sur 5 étoiles
  • 1
  • 2
  • 3
  • 4
  • 5

Note : 3/5 (1 notes attribuées)

Merci d'avoir participé !

Vous avez déjà noté cette page, vous ne pouvez la noter qu'une fois !

Votre note a été changée, merci de votre participation !

Bonne résolution ! j'arrête d'alourdir mes pages avec des boutons de partage, mais vous pouvez continuer de partager :-)

Commentaires

  1. webroot.com - Webroot is one of the global computer security software companies that have been working since years for proving a defensive layer to the users’ data against all the online threats like virus attacks, spyware, malware and many more, that might harm the personal as well as the professional data of the users and misuse it. To do so, Webroot has developed various security software (like webroot Change Control, webroot SiteAdvisor, and webroot VirusScan) that have been equipped with the number of advanced features, making these a better than other antivirus products. Thus, the users need to download, install and activate the Webroot antivirus products on the device to enjoy all the advanced security features involved in the products.
    http://.../com-safe/

  2. operation... | Operations Management Coursework Help | TheOperationsManagement.com |

    Those Who Come To Read Your Article Will Find Lots Of Helpful And Informative Tips

  3. wisozkr@g... | Write My Medical Dissertation Writing Service |

    This Is Really Great Work. Thank You For Sharing Such A Good And Useful Information Here In The Blog For Students.

  4. McAfee is one of the global computer security software companies that have been working since years for proving a defensive layer to the users’ data against all the online threats like virus attacks, spyware, malware and many more, that might harm the personal as well as the professional data of the users and misuse it.
    http://...om/mcafee/

  5. Select from preprogrammed wash cycles and also completely dry cycles, or download and install much more cost-free specialized cycles from the application.

  6. www.trend... | www.trendmicro.com/bestbuy |

    We can help you detect and remove malicious threats, malware and spyware by performing a quick scan on all files and folders. With our robust technology, we can destroy suspicious programs and infected files from your system.
    http://...m/bestbuy/

  7. usa.kaspe... | usa.kaspersky.com/kisdownload |

    usa.kaspersky.com/kisdownload Website Protect your data, devices, and your family With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with usa.kaspersky.com/kisdownload.
    http://...sdownload/

  8. Whenever you’re online – shopping, banking, surfing & socializing – you need to make sure you’re safe from Internet attacks, infections & cybercrime.
    http://...ersky.org/

  9. www.bitde... | www.bitdefender.com/central |

    Bitdefender Total Security 2018 delivers multiple layers of protection against ransomware. It uses behavioural threat detection to prevent infections, and protects your most important documents from ransomware encryption. With Bitdefender Total Security 2018, you can stop worrying about losing your data or money, and start enjoying life.
    http://...m/central/

  10. eset Support provides all-round assistance for eset Antivirus. As soon as you register yourself for the use of Internet facility and get the advantage of surfing the World Wide Web, you are open to innumerable threats transmitted to your system due to online browsing sessions.
    http://...-activate/

  11. After purchasing AVG Antivirus users need to open www.avg.com/retail on browser. With the development of Digital Era,Online protection is biggest concern.It is extremely Important to protect your PCs,Mac Computers as well as Mobile devices and tablets. This can be done with the help of effective AVG Internet Security,Antivirus and PC Tune up products from AVG that safeguards all devices used on digital platforms.
    http://...etail.com/

  12. Looking an antivirus to safeguard your computer and other devices from online Trojan risk, cyber-attacks or peripheral virus exchanges etc. then install updated version of AVG antivirus. The Anti-Virus Guard offers multiple security assets to protect your device from any malware risk. To access advanced features of the antivirus, you need to have purchased a subscription depending on your requirement.
    https:/...om/retail/

  13. Webroot.com/safe- Experience next-generation Security level with Webroot on your all devices. Install and activate webroot from www.webroot.com/safe and don’t forget to run webroot safe scan to feel secure anywhere.webroot.com/safe is a computer security software program for Microsoft Windows users that combine software as a service cloud protection with traditional Antivirus and anti-spyware desktop technologies. Built into the suite is a two-way firewall, a registry cleaner, Email anti-spam, secure browsing, anti-phishing and a password management service. The suite was initially released on July 26, 2010, as the 2011 version of the product.

  14. Webroot.com/safe- Experience next-generation Security level with Webroot on your all devices. Install and activate webroot from www.webroot.com/safe and don’t forget to run webroot safe scan to feel secure anywhere.webroot.com/safe is a computer security software program for Microsoft Windows users that combine software as a service cloud protection with traditional Antivirus and anti-spyware desktop technologies. Built into the suite is a two-way firewall, a registry cleaner, Email anti-spam, secure browsing, anti-phishing and a password management service. The suite was initially released on July 26, 2010, as the 2011 version of the product.
    http://...t.com/safe

  15. I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people.

  16. criminal... | criminal appeal attorneys |

    Your music is amazing. You have some very talented artists. I wish you the best of success.

  17. This is such a great resource that you are providing and you give it away for free. I love seeing websites that understand the value of providing a quality resource for free. It is the old what goes around comes around routine.

  18. Your music is amazing. You have some very talented artists. I wish you the best of success.

  19. Norton Security have the complete set of features that can protect you from harmful viruses and internet hackers, Norton not only helps to protect your PC but also it can stable your computer speed and always notify you if there any suspicious activity.
    http://...oncom.com/

  20. Microsoft Office 365 is an integral part of complete package which is widely used by professionals and non-professionals. There is a simple activation process of activation by entering account credentials and product key.Visting microsoft office website can help you if you face any issue while activation of application.
    http://...setup.com/

  21. One of such kind is the Norton Antivirus Software. It protects the systems, laptops, etc. from viruses, spyware, worms and Trojan horses. It continuously scans the computer as the user surfs various websites, so that it can provide a constant protection against viruses.
    http://...setup.com/

  22. www.trend... | www.trendmicro.com/getmax |

    The Trendmicro Threat Intelligence platform is a cloud based feature that aids every business with accuracy, context organizations and vendors that is needed to protect themselves as well as their customers across all online activities. Trendmicro Setup install helps you with antivirus installations.
    http://...om/getmax/

  23. Whenever you’re online – shopping, banking, surfing & socializing – you need to make sure you’re safe from Internet attacks, infections & cybercrime.
    http://...ersky.org/

  24. trendmicr... | trendmicro.com/bestbuypc |

    Home users can compare each of these products, read reviews and go for customized protection for one or all of your devices according to your requirement and budget. Trendmicro offers real time anti-phishing defense to protect all your personal information and data that can be easily accessed on any of your devices
    http://...bestbuyPC/

  25. www.trend... | www.trendmicro.com/getmax |

    Trend Micro Support provides all-round assistance for Trend Micro Antivirus. As soon as you register yourself for the use of Internet facility and get the advantage of surfing the World Wide Web, you are open to innumerable threats transmitted to your system due to online browsing sessions. Encounter perfect malware blocking with Trend Micro Antivirus.
    http://...om/getmax/

  26. Mcafee Security have the complete set of features that can protect you from harmful viruses and internet hackers, Mcafee not only helps to protect your PC but also it can stable your computer speed and always notify you if there any suspicious activity.
    http://...rg/mcafee/

  27. www.mcafe... | www.mcafee.com/activate |

    With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with www.mcafee.com/activate. This can be done with the help of effective internet security and anti-virus products from www.mcafee.com/activate that safeguards all devices used on digital platforms.
    http://...mactivate/

  28. www.trend... | www.trendmicro.com/bestbuy |

    Trend Micro Support experts can lend their hand to download, install and update Trend Micro Spy Sweeper Antivirus on your system. We can also repair all errors that may crop up while installing and configuring Trend Micro Antivirus on your PC.
    http://...m/bestbuy/

  29. Ukrayna K... | Ukrayna Kiev Teknik Ьniversitesi |

    Its a great pleasure reading your post.Its full of information I am looking for and I love to post a comment that "The content of your post is awesome" Great work.

  30. www.trend... | www.trendmicro.com/getmax |

    With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with trendmicro.com/bestbuypc. This can be done with the help of effective internet security and anti-virus products from trendmicro.com/bestbuypc that safeguards all devices used on digital platforms. Trendmicro is a private American company that provides comprehensive internet security solutions for consumers as well as businesses with various products. These services are available for home based computers, small offices as well as large business enterprises by preventing potential dangers in real time whenever they connect in the digital space for both personal and professional purposes.



    http://...om/getmax/

  31. www.trend... | www.trendmicro.com/bestbuy |


    With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with trendmicro.com/bestbuypc. This can be done with the help of effective internet security and anti-virus products from trendmicro.com/bestbuypc that safeguards all devices used on digital platforms. Trendmicro is a private American company that provides comprehensive internet security solutions for consumers as well as businesses with various products. These services are available for home based computers, small offices as well as large business enterprises by preventing potential dangers in real time whenever they connect in the digital space for both personal and professional purposes.

    http://...m/bestbuy/

  32. www.mcafe... | www.mcafee.com/activate |

    With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with www.mcafee.com/activate. This can be done with the help of effective internet security and anti-virus products from www.mcafee.com/activate that safeguards all devices used on digital platforms.

    http://...mactivate/

  33. Gürcistan... | Gürcistan Üniversitesi |

    Pretty nice post. I just stumbled upon your weblog and wanted to say that I have really enjoyed browsing your blog posts. After all I’ll be subscribing to your feed and I hope you write again soon!

  34. www.trend... | www.trendmicro.com/bestbuy |

    Trendmicro is a private American company that provides comprehensive internet security solutions for consumers as well as businesses with various products. These services are available for home based computers, small offices as well as large business enterprises by preventing potential dangers in real time whenever they connect in the digital space for both personal and professional purposes.
    http://...m/bestbuy/

  35. welcome to avg.com/retail website With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with avg.com/retail. This can be done with the help of effective internet security and anti-virus products from avg.com/retail that safeguards all devices used on digital platforms.
    https:/...om/retail/

  36. webroot.c... | webroot.com/safe to get webroot safe setup |

    Experience next generation Security level with Webroot in your all devices. Install and activate webroot from www.webroot.com/safe and don’t forget to run webroot safe scan to feel secure anywhere.
    https:/...-com-safe/

  37. webroot s... | webroot secureanywhere activation page |

    Need to Have Advanced Technology internet Security software from webroot Software company with the following Link www.webroot.com/safe that help to protect all device from virus, malware and other online threats. Webroot Safe is a American company which has good trust image in the world it comes up with different types of security software like Webroot Antivirus, Webroot Internet Security, Webroot Anti malware etc. Webroot Service are Available for Home Based Computer, Office based Computers, Small Offices and Large Offices by preventing From Online dangers, Threats from Hackers.
    https:/...-safe.net/

  38. Install a... | Install and Activate Webroot safe |

    www.webroot.com/safe is a computer security software program for Microsoft Windows users that combine software as a service cloud protection with traditional Antivirus and anti-spyware desktop technologies. Built into the suite is a two-way firewall, a registry cleaner, Email anti-spam, secure browsing, anti-phishing and a password management service .The suite was initially released on July 26, 2010 as the 2011 version of the product.
    http://...omsafe.us/

  39. Www.Webroot.com/safe | Webroot Safe (1-844-833-0610) is the Quickest &amp; Easiest Way to Protect your All Device Click www.webroot.com/safe to open Webroot Console and add new device. For first Webroot scan follow 5 simple steps mentioned on website.
    http://...-safe.org/

  40. www.trend... | www.trendmicro.com/getmax |

    With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with www.trendmicro.com/getmax. This can be done with the help of effective internet security and anti-virus products from www.trendmicro.com/getmax that safeguards all devices used on digital platforms. Trendmicro is a private American company that provides comprehensive internet security solutions for consumers as well as businesses with various products. These services are available for home based computers, small offices as well as large business enterprises by preventing potential dangers in real time whenever they connect in the digital space for both personal and professional purposes.



    http://...micro.com/

  41. Install T... | Install Trend Micro Activation Code |

    With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with www.trendmicro.com/activation. This can be done with the help of effective internet security and anti-virus products from www.trendmicro.com/bestbuy that safeguards all devices used on digital platforms.
    http://...micro.com/

  42. www.norton.com/setup gives support for setup of Norton Security Products. Norton products are sold in the form of retail cards which help in easy setup of the security product through internet instead of setup with the help of a CD. If Norton detects any virus or worm, it immediately alerts the user and blocks/isolates the said virus.
    http://...oncom.com/

  43. Yurtdışı... | Yurtdışı Eğitim Afyonkarahisar |

    If you set out to make me think today; mission accomplished! I really like your writing style and how you express your ideas. Thank you.

  44. Good article, but it would be better if in future you can share more about this subject. Keep posting.

  45. usa.kaspe... | usa.kaspersky.com/kisdownload |

    usa.kaspersky.com/kisdownload having trouble with kaspersky activation code. We are here to fix your Kaspersky Activation and installation issues for united states and canada online by Live Chat
    http://...sdownload/

  46. computer security software program for Microsoft Windows users that combine software as a service cloud protection with traditional Antivirus and anti-spyware desktop technologies. Built into the suite is a two-way firewall, a registry cleaner, Email anti-spam, secure browsing, anti-phishing and a password management service .The suite was initially released on July 26, 2010 as the 2011 version of the product.
    http://...omsafe.us/

  47. Webroot is a private American company that provides comprehensive internet security solutions for consumers as well as businesses with various products. These services are available for home based computers, small offices as well as large business enterprises by preventing potential dangers in real time whenever they connect in the digital space for both personal and professional purposes. Here a few common indications that your computer has run into trouble.
    http://...-safe.net/

  48. I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.

  49. refrigera... | refrigerator repair service near me |

    You have done a great job on this article. It’s very readable and highly intelligent. You have even managed to make it understandable and easy to read. You have some real writing talent. Thank you.

  50. Great articles and great layout. Your blog post deserves all of the positive feedback it’s been getting.

  51. welcome to avg.com/retail website With the development of the digital world, online protection is crucial. It is extremely important to protect your PCs, Mac, computers as well as mobile devices and tablets with avg.com/retail. This can be done with the help of effective internet security and anti-virus products from avg.com/retail that safeguards all devices used on digital platforms.

  52. Visit www.norton.com/setup for setup, download, reinstall, enter and activate your norton product key to setup your account.Step-by-Step guide for Norton setup key, Download &amp; installation from norton.com/setup website.

  53. Your blog provided us with valuable information to work with. Each & every tips of your post are awesome. Thanks a lot for sharing. Keep blogging..

  54. Thanks for the valuable information and insights you have so provided here...

  55. https://n... | https://namsonauto.vn/cam-bien-lui |

    Nice post. I was checking constantly this blog and I’m impressed! Extremely useful info specially the last part I care for such information a lot. I was seeking this certain info for a long time. Thank you and good luck.

  56. Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!THANKS!!!!!!

  57. An essential hotspot for the gathering of people that makes the peruser stride by step.

  58. The blog is exceptionally splendid. Just love the way how all the writing has been put.

  59. What could possibly make someone’s day other than reading such beautifully crafted blog such as this.

  60. It additionally has an attribute that could permit you making faster ways to surprise setup displays which are normally not available.

  61. The blog is written in simple English with no aspiration towards literature.

  62. This is really nice to read..informative post is very good to read..thanks a lot!

  63. sf@gmail.com | Tallahassee Car Title Loans |

    This blog does a thing of bridging the gap between reader and writer.

  64. This blog has expressed its meaning in a very short but clear way, so succinct.

  65. The diary is formed in essential English with no desire towards composing.

  66. Those who come to read your article will find lots of helpful and informative tips

  67. A delightful perusing for any individual who cherishes perusing online journals.

  68. sf@gmail.com | http://www.zerobones.com/make-your-skin-glowing-with-the-help-of-the-melanotan-tanning-creams/ |

    The blog is created in essential English with no longing towards composing.

  69. In this time of false love, the creator has formed each word with everything that is in him filled it.

  70. as soon as the sub-topics are resolved, the subsequent level is to make the framework with a view to drive the actual synthesis. What should fill any individual's coronary heart with joy aside from perusing such perfectly created weblog, as an instance, this?

  71. Dissertat... | Dissertation Writing Service UK |

    that is possible due to meant WordPress brief codes. inside the event which you present from time on time on communicating loads up, your maximum in all likelihood definitely comprehends that it's far doable with pseudo-code to include photos, websites or different designing, it's far often known as bb code. preserve it up and proportion the greater maximum associated put up.

  72. What could fill somebody's heart with joy other than perusing such perfectly created blog, for example, this.

  73. Once the sub-subjects are resolved, the following stage is to make the framework that will drive the real sythesis.

  74. Composing an examination paper can be an overwhelming errand. This is no exploratory writing piece or sentiment paper; this is not kidding business

  75. df@gmail.com | buick enclave car covers |

    Self confident and astounding in equivalent measures, an unquestionable requirement read.

  76. This is conceivable because of supposed WordPress short codes. In the event that you present from time on time on talk loads up, you most likely definitely realize that it is conceivable with pseudo-code to include pictures, cites or other designing, it is frequently called bb code.

  77. Enjoyed every detail of this impressive blog. Specially how the writer has instilled life to it.

  78. Dekono | La taille sur une page |

    Salut, j'ai remarque que la taille de la fenetre du chat ne pouvait pas etre modiee, ou alors faudrait'il ajoute Heigh:350px au niveau de style?

    <input type="text" class="wp_jschat_text" name="wp_jschat_text" style="width:150px;" />

    merci