{"id":63,"date":"2010-01-05T10:36:41","date_gmt":"2010-01-05T15:36:41","guid":{"rendered":"http:\/\/blogs.wp.stage.cpanel.net\/2010\/01\/recommendations_from_the_field\/"},"modified":"2010-01-05T10:36:41","modified_gmt":"2010-01-05T15:36:41","slug":"recommendations_from_the_field","status":"publish","type":"post","link":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/","title":{"rendered":"Recommendations From The Field"},"content":{"rendered":"

Working on the front lines, I have an opportunity to see how cPanel\/WHM customizations are implemented in practice.\u00a0 Often, I encounter novel ways of assembling our hooks and APIs to provide functionality.\u00a0 However, there are times when I wonder if I saw this in the CodeSOD segment on a popular developer website that offers free stickers.<\/p>\n

You want to automate or customize cPanel, what should you do?<\/strong>
\nBefore beginning your project,\u00a0 I recommend that you ask for guidance.\u00a0 Our Developer Discussions forum is located at http:\/\/forums.cpanel.net\/developer-discussions.html<\/a>.\u00a0 Here, you can learn from the experience of others who have written similar applications and apply their insight to your project.<\/p>\n

However, we understand you may be bound by non-disclosure agreements (NDAs) and may not want to discuss your project publicly.\u00a0 In such cases, you can contact our technical analysts by visiting http:\/\/tickets.cpanel.net\/submit<\/a>.<\/p>\n

Talking to us for a few hours can save your team days or even weeks of development time.\u00a0 We can pinpoint the exact documentation you need to reference to accomplish your task.\u00a0 Utilizing our resources allow you to learn how to perform the task in a way that will work through many cPanel updates and upgrades.<\/p>\n

Our staff understands the atmosphere of non-disclosure agreements and information sensitivity.\u00a0 However, the more you can tell us about what you wish to accomplish (even in vague terms), the better we can assist you.\u00a0 We love helping people and we strongly encourage you to come to us for assistance.<\/p>\n

Branding cPanel software is not a complicated as many try to make it.<\/strong>
\nA common misconception that I often encounter is that you need to copy files, set immutable permissions, and maintain your own theme to use a customized cPanel interface.\u00a0 Our Branding Editor and branding system are feature-rich and robust.\u00a0 Our system allows you to do much more than change colors and swap logos.\u00a0 You can even change some back-end code and significantly alter cPanel\u2019s appearance.<\/p>\n

By using our branding system rather than maintaining your own base code for a theme, updates to our software will not impact your customizations.\u00a0 Additionally, any new functionality introduced by our software will automatically become available on your server and inherit your branding.<\/p>\n

Maintaining custom theme code rather than using our branding system introduces many issues.\u00a0 For example, with any newly introduced feature, you need to modify your code.\u00a0 If code is optimized by cPanel, your code does not benefit from such changes.\u00a0 If a function is dramatically improved, your custom code may break a feature.\u00a0 Overall, it is a much better idea to use our custom branding system.<\/p>\n

For those that have explored the Branding Editor but want more control over the cPanel branding system, our documentation team has assembled an Advanced Guide to Branding the cPanel Interface available at http:\/\/docs.cpanel.net\/twiki\/bin\/view\/AllDocumentation\/WHMDocs\/AdvancedBrandingGuide<\/a>.<\/p>\n

If you have already made a custom theme by the time you read this article, I recommend converting your changes to a custom style.\u00a0 While this is more work upfront, you will save yourself days of troubleshooting later.<\/p>\n

There\u2019s an API for that<\/strong>
\nWhile it has become a bit of a clich\u00e9, if you can think of performing a task with cPanel or WHM, there is probably an API to handle it.\u00a0 On many forums, I still battle the misconception that cPanel\/WHM does not have APIs for creating accounts, manipulating items within a specific cPanel account, or APIs that can access remote cPanel\/WHM servers.<\/p>\n

If you do not know, please ask rather than assuming an API does not exist.\u00a0 We have implemented many new APIs in the past few years, including the JSON API introduced in version 11.25.\u00a0 The most popular venue for asking questions about our APIs is our Developer Discussions forum<\/a>.\u00a0 These forums are monitored by knowledgeable cPanel staff and frequented by developers who build applications that work with cPanel software.<\/p>\n

In the field, I still come across many people that employ screen scraping (such as posting values to a page to trigger a result) and other crude methods of interacting with our software.\u00a0 I recommend using our APIs rather than these easily broken methods.\u00a0 By using our APIs, your software can continue to use the same code throughout many versions of cPanel\/WHM, regardless of what usability or front-end changes occur in the software.\u00a0 Screen scraping assumes our software is stagnant and will never change.\u00a0 This is a poor assumption to make, especially given the recent redesign of cPanel\u2019s mail page and the reorganization of WHM\u2019s security functionality.\u00a0 Such software improvements easily break screen scraping, but do not break scripts using our APIs.<\/p>\n

Whoops?<\/strong>
\nIf you currently employ any methods that I advised against in this article, do not worry.\u00a0 Many people have made the migration towards using our APIs.\u00a0 Feel welcome to search our
Developer Discussions forum<\/a> for similar scenarios so that you can better understand how to retrofit the code yourself.\u00a0\u00a0 If your situation is unique, feel welcome to start a new thread so that the community can assist you.<\/p>\n

Using our APIs will help ensure your customizations can be used without issue for many cPanel versions.\u00a0 By doing this now, you can curb potential support issues that may result from a new version of cPanel.<\/p>\n

— Contributed by David Grega<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"

Working on the front lines, I have an opportunity to see how cPanel\/WHM customizations are implemented in practice.\u00a0 Often, I encounter novel ways of assembling our hooks and APIs to provide functionality.\u00a0 However, there are times when I wonder if I saw this in the CodeSOD segment on a popular developer website that offers free […]<\/p>\n","protected":false},"author":77,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[49],"tags":[],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-products"],"acf":[],"yoast_head":"\nRecommendations From The Field | cPanel<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recommendations From The Field | cPanel\" \/>\n<meta property=\"og:description\" content=\"Working on the front lines, I have an opportunity to see how cPanel\/WHM customizations are implemented in practice.\u00a0 Often, I encounter novel ways of assembling our hooks and APIs to provide functionality.\u00a0 However, there are times when I wonder if I saw this in the CodeSOD segment on a popular developer website that offers free […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/\" \/>\n<meta property=\"og:site_name\" content=\"cPanel\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cpanel\/\" \/>\n<meta property=\"article:published_time\" content=\"2010-01-05T15:36:41+00:00\" \/>\n<meta name=\"author\" content=\"cPanel Community\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cPanel\" \/>\n<meta name=\"twitter:site\" content=\"@cPanel\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"cPanel Community\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/\",\"url\":\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/\",\"name\":\"Recommendations From The Field | cPanel\",\"isPartOf\":{\"@id\":\"https:\/\/devel.www.cpanel.net\/#website\"},\"datePublished\":\"2010-01-05T15:36:41+00:00\",\"dateModified\":\"2010-01-05T15:36:41+00:00\",\"author\":{\"@id\":\"https:\/\/devel.www.cpanel.net\/#\/schema\/person\/8cf97408aad4fb70cf55d11a1d4f57f8\"},\"breadcrumb\":{\"@id\":\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devel.www.cpanel.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recommendations From The Field\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devel.www.cpanel.net\/#website\",\"url\":\"https:\/\/devel.www.cpanel.net\/\",\"name\":\"cPanel\",\"description\":\"Hosting Platform of Choices\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devel.www.cpanel.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devel.www.cpanel.net\/#\/schema\/person\/8cf97408aad4fb70cf55d11a1d4f57f8\",\"name\":\"cPanel Community\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/devel.www.cpanel.net\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e1949945083b5526bb95711bd3d616b3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e1949945083b5526bb95711bd3d616b3?s=96&d=mm&r=g\",\"caption\":\"cPanel Community\"},\"description\":\"The web hosting industry's most reliable management solution since 1997. With our first-class support and rich feature set, it's easy to see why our customers and partners make cPanel & WHM their hosting platform of choice. For more information, visit cPanel.net.\",\"sameAs\":[\"https:\/\/cpanel.net\"],\"url\":\"https:\/\/devel.www.cpanel.net\/blog\/author\/cpadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recommendations From The Field | cPanel","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/","og_locale":"en_US","og_type":"article","og_title":"Recommendations From The Field | cPanel","og_description":"Working on the front lines, I have an opportunity to see how cPanel\/WHM customizations are implemented in practice.\u00a0 Often, I encounter novel ways of assembling our hooks and APIs to provide functionality.\u00a0 However, there are times when I wonder if I saw this in the CodeSOD segment on a popular developer website that offers free […]","og_url":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/","og_site_name":"cPanel","article_publisher":"https:\/\/www.facebook.com\/cpanel\/","article_published_time":"2010-01-05T15:36:41+00:00","author":"cPanel Community","twitter_card":"summary_large_image","twitter_creator":"@cPanel","twitter_site":"@cPanel","twitter_misc":{"Written by":"cPanel Community","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/","url":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/","name":"Recommendations From The Field | cPanel","isPartOf":{"@id":"https:\/\/devel.www.cpanel.net\/#website"},"datePublished":"2010-01-05T15:36:41+00:00","dateModified":"2010-01-05T15:36:41+00:00","author":{"@id":"https:\/\/devel.www.cpanel.net\/#\/schema\/person\/8cf97408aad4fb70cf55d11a1d4f57f8"},"breadcrumb":{"@id":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/devel.www.cpanel.net\/blog\/products\/recommendations_from_the_field\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devel.www.cpanel.net\/"},{"@type":"ListItem","position":2,"name":"Recommendations From The Field"}]},{"@type":"WebSite","@id":"https:\/\/devel.www.cpanel.net\/#website","url":"https:\/\/devel.www.cpanel.net\/","name":"cPanel","description":"Hosting Platform of Choices","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devel.www.cpanel.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/devel.www.cpanel.net\/#\/schema\/person\/8cf97408aad4fb70cf55d11a1d4f57f8","name":"cPanel Community","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/devel.www.cpanel.net\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e1949945083b5526bb95711bd3d616b3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e1949945083b5526bb95711bd3d616b3?s=96&d=mm&r=g","caption":"cPanel Community"},"description":"The web hosting industry's most reliable management solution since 1997. With our first-class support and rich feature set, it's easy to see why our customers and partners make cPanel & WHM their hosting platform of choice. For more information, visit cPanel.net.","sameAs":["https:\/\/cpanel.net"],"url":"https:\/\/devel.www.cpanel.net\/blog\/author\/cpadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/posts\/63"}],"collection":[{"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":0,"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"wp:attachment":[{"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devel.www.cpanel.net\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}