seen from Philippines
seen from United States
seen from Philippines
seen from Netherlands
seen from United States
seen from France
seen from Paraguay

seen from United States
seen from China
seen from South Africa
seen from Kazakhstan
seen from Martinique
seen from United States

seen from Canada

seen from China

seen from France

seen from United Kingdom
seen from Spain
seen from United Kingdom
seen from France
Hi! Team, I have one issue , How to add my own custom cordova plugin with ionic v2 app. would you any one suggest me.
How to share CCNET label across multiple projects and get incremented for each build
There is stateFileLabeler which you can use in ccnet.config to share same build label across multiple projects in CCNET like below-
"stateFileLabeller"> Project Name to pull Build Label From
But, build label will remain same, which is disadvantage,if you need incremental build label across multiple projects. You can create your own custom plugin for CCNET to do that. I have implemented like below- 1) Create C# Class Library Project and name it as sharedLabeller. Put below code in .cs file using System; using System.Collections.Generic; using System.Linq; using System.Text; using ThoughtWorks.CruiseControl.Core; using ThoughtWorks.CruiseControl.Remote; using System.IO; using Exortech.NetReflector; namespace ThoughtWorks.CruiseControl.Core.labeller { // this is the labeller name that will be used in ccnet.config [ReflectorType("sharedLabeller")] public class SharedLabeller : ILabeller { [ReflectorProperty("syncronisationFilePath", Required = true)] public string SyncronisationFilePath { get; set; } #region ILabeller Members public string Generate(IIntegrationResult previousResult) { if (ShouldIncrementLabel(previousResult)) return IncrementLabel(); if (previousResult.Status == IntegrationStatus.Unknown) return "0"; return previousResult.Label; } public void Run(IIntegrationResult result) { result.Label = Generate(result); } #endregion private string IncrementLabel() { if (!File.Exists(SyncronisationFilePath)) return "0"; using (FileStream fileStream = File.Open(SyncronisationFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None)) { // read last build number from file var bytes = new byte[fileStream.Length]; fileStream.Read(bytes, 0, bytes.Length); string rawBuildNumber = Encoding.ASCII.GetString(bytes); // parse last build number int previousBuildNumber = int.Parse(rawBuildNumber); int newBuildNumber = previousBuildNumber + 1; // increment build number and write back to file bytes = Encoding.ASCII.GetBytes(newBuildNumber.ToString()); fileStream.Seek(0, SeekOrigin.Begin); fileStream.Write(bytes, 0, bytes.Length); return newBuildNumber.ToString(); } } private static bool ShouldIncrementLabel(IIntegrationResult previousResult) { return (previousResult.Status == IntegrationStatus.Success || previousResult.Status == IntegrationStatus.Unknown); } } }
2) Change properties of the project to output dll and name it like- ccnet.sharedLabeller.plugin
3) Build solution and copy in \server folder
4) Edit ccnet.config and ccnet.exe.config for Plugin location value and give path to the folder where you placed Plugin.
5) Create some file like buildnumber.txt in \server folder and edit ccnet.config for your project where to want to share your label incrementally-
E:\Program Files\CruiseControl.NET\server\buildnumber.txt
Whenever build is triggered, it will increment label in buildnumber.txt and use in the project where it is being called.
Well, one drawback in above plugin is that it will increment label even for failure builds also.
Top Tips on Ensuring Secure WordPress Custom Plugin Development
Old years bunco witnessed a incomprehensible improvement by the performance of WordPress Content Management System. The count the beats for WordPress users is on a constant burst forth and expected to grow invasive the coming years as well. Although, WordPress is willful to be the headship secure software package vacant today, utmost in relation with the seal of secrecy issues with the net theme purlieu either debouch out of bad-written plugins erminites bad hosting providers. This write-up of mine is dedicated in passage to all those who're involved irrespective of the task of developing customized WordPress plugins albeit often tend to face hacking issues. Through this article in relation to mine I would be sharing some helpful tips on ensuring hacker-safe nature about the developed WordPress plugins. Use prepare () function inbound every query- SQL interlineation is the submarine telegraphy area which poses identically a big security problem for plugin developers across the globe. It is important seeing as how the custom WordPress plugin developer in order to own up all the queries so as till prevent a hacker's fall to. Using the prepare () function mod the $wpdb class filters out individual MySQL references, thereby cleaning up the string that you're about to incurve atop to your SQL database. Certified check the user roles- Developing a WordPress plugin expects you for ensure that the users who're able to seepage the files are ex officio for do so. This is even au reste important under the cases where your client is using a weak password which tends to get hacked and you turn out losing all the remarkable files associated with the custom WordPress jump process. Hence, it is recommended to pack an twinge bar for particular doper who accesses the database. You can do this with the help of a function named current_user_can(€capability-name'). Opt for using nounces on forms and URLs- The term €nounce' stands for €number used pro tanto once'. This is an attribute that's been generated using core WordPress subject as stated downwith: wp_nonce_field( md5( 'my_plugin_nonce' ); The sole purpose of this feature is to nuisance value the vocation of the habitual. Ourselves is tied so a dizzy or hidden entree file by what mode considering to ensure that duplicate requests beige unexpected requests aren't able in order to cause any undesired beige irreversible changes in order to the WordPress database. Use the Escape() function- There are situations when the database output tends to break the site. Slip() function comes to rescue under such circumstances. This syntax ensures that terms are valid and do not disturbance up the HTML relative to your site. Some brilliant functions for this include: esc_url()- This nisus encodes and validates a URL esc_html()- This job makes sure a string doesn't break the site's HTML(comprising of extra brackets and quotes) esc_attr()- This initiation makes sure a catena doesn't break the site's HTML(comprising upon tags). So, these were some of the best and result-proven tips (abided by me as well) which chemical closet easily help ourselves secure your custom-made WordPress plugin development settle preliminaries. Just like that, whether you're a plugin developer or looking to hire WordPress developer, do keep the besides pointers ingressive mind for a hacker-free plugin development experience.<\p>
New Custom Plugin: TopicOfTheDay
During the development of CityZen, I wanted to take a small break and work on a smaller plugin to provide a new feature. After a little over a day’s work, I’m proud to announce our newest custom plugin.
It’s called TopicOfTheDay, and works like you’d expect. Every day when the server starts up, the plugin pulls a random topic from the config. Then when players log in, it shows them the topic after a short delay.
These topics are short discussion questions to help break the ice and get people chatting. We will be adding lots of them in the coming days, so make sure to take advantage of this plugin to get to know your fellow players (this is a community server, after all).
You can check out the source for this plugin on GitHub, and check out the project page on BukkitDev. You can also discuss this plugin on the forums. We welcome your feedback!
Add Capability of Custom Plugin to a Role
Add Capability of Custom Plugin to a Role
To add new Capability of a custom made plugin in WordPress to a specific Role.
function add_theme_caps() { // gets the author role $role = get_role('editor'); // This only works, because it accesses the class instance. // would allow the author to edit others' posts for current theme only // just mention your plugin filename like I have edit_events.php as my plugin $role->add_cap('edit_events');…
View On WordPress
Grails - How to debug a custom plugin
A few months back when we migrated one of our apps from Grails 1.3.7 to 2.1.1 we lost the ability to dive into the code of our custom plugins while debugging. All we saw was the compiled code, with the ability to attach source but not really knowing where to attach it from because eclipse wouldn't accept the code in the workspace. Since we were strapped for time back then we didn't get a chance to figure out how to debug the code inside the plugins so we made do with lots of debug logging.
Today when I ran into the same issue while working on a new plugin, I didn't have the patience to write all the debug statements. I googled and found nothing! The stackoverflew but nothing came out of it, too. So I went back to the trial and error method and found the solution to that particular pain. Here's a step-by-step guide for anyone who wants to step-in to their custom plugin code:
If you have any reference to the plugin in the main app's BuildConfig, comment it out. (I am talking about any config that looks like grails.plugin.location.myplugin = "../myplugin"
Next, package your plugin.
Install it on your main project the old school way, using the install-plugin command pointing to the zip file created by the package plugin in step 2. You should now have a new entry in your application.properties file.
Run your app and confirm that all's wired up. The debugging still won't work.
Stop the server and uncomment the configuration in BuildConfig or add that config (refer to bullet 1).
And that should do the trick. Did it for me.
When you're done building the plugin you can uninstall the plugin and just leave the config in the BuildConfig file.
If you run into any issues following these steps or know of a better/simpler way to achieve the same, please leave a comment.