{"id":473,"date":"2025-10-19T10:57:20","date_gmt":"2025-10-19T14:57:20","guid":{"rendered":"https:\/\/scootercam.net\/notes\/?p=473"},"modified":"2025-10-19T10:57:21","modified_gmt":"2025-10-19T14:57:21","slug":"scootercam-snips","status":"publish","type":"post","link":"https:\/\/scootercam.net\/blog\/scootercam-snips\/","title":{"rendered":"scootercam-snips"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">ScooterCam Weather Snips<\/h1>\n\n\n\n<p><strong>Version:<\/strong> 1.0.0<br><strong>WordPress Plugin<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Description<\/h2>\n\n\n\n<p>Curated weather forecast text snippets with a visual admin management interface. Display random, personality-filled weather commentary throughout your site.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Features<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2705 Random weather snippet display<\/li>\n\n\n\n<li>\u2705 Visual admin interface for managing snips<\/li>\n\n\n\n<li>\u2705 Add, edit, and delete snippets easily<\/li>\n\n\n\n<li>\u2705 No database required (JSON file storage)<\/li>\n\n\n\n<li>\u2705 Flexible shortcode with customization options<\/li>\n\n\n\n<li>\u2705 Real-time editing with inline forms<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Upload the <code>scootercam-snips<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n\n\n\n<li>Activate the plugin through the WordPress &#8216;Plugins&#8217; menu<\/li>\n\n\n\n<li>Go to <strong>Weather Snips<\/strong> in the WordPress admin menu<\/li>\n\n\n\n<li>Start adding your weather snips!<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Usage<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Shortcode<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip]<\/code><\/pre>\n\n\n\n<p>or<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snips]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Shortcode Attributes<\/h3>\n\n\n\n<p><strong>Custom CSS Class:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip class=\"forecast-box\"]<\/code><\/pre>\n\n\n\n<p><strong>Custom HTML Wrapper<\/strong> (default is <code>&lt;p&gt;<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip wrapper=\"div\"]<\/code><\/pre>\n\n\n\n<p><strong>Add Prefix Text:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip prefix=\"Today's Forecast: \"]<\/code><\/pre>\n\n\n\n<p><strong>Add Suffix Text:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip suffix=\" - Updated hourly\"]<\/code><\/pre>\n\n\n\n<p><strong>Custom Inline Styles:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip style=\"color: blue; font-weight: bold;\"]<\/code><\/pre>\n\n\n\n<p><strong>Combined Example:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam-snip wrapper=\"div\" class=\"weather-commentary\" prefix=\"\ud83d\udce2 \"]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Admin Interface<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Accessing the Manager<\/h3>\n\n\n\n<p>Navigate to: <strong>WordPress Admin \u2192 Weather Snips<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Managing Snips<\/h3>\n\n\n\n<p><strong>Add New Snip:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Type your weather commentary in the text area<\/li>\n\n\n\n<li>Click &#8220;Add Snip&#8221;<\/li>\n\n\n\n<li>Done!<\/li>\n<\/ol>\n\n\n\n<p><strong>Edit Existing Snip:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click &#8220;Edit&#8221; on any snip<\/li>\n\n\n\n<li>Modify the text<\/li>\n\n\n\n<li>Click &#8220;Save&#8221;<\/li>\n<\/ol>\n\n\n\n<p><strong>Delete Snip:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click &#8220;Delete&#8221; on any snip<\/li>\n\n\n\n<li>Confirm deletion<\/li>\n\n\n\n<li>Snip removed<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Snip Count<\/h3>\n\n\n\n<p>The admin page displays total number of available snips at the top.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Data Storage<\/h2>\n\n\n\n<p>Snips are stored in: <code>\/home\/scootercam\/public_html\/wx\/snips.json<\/code><\/p>\n\n\n\n<p><strong>Format:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"forecasts\": &#91;\n    \"Perfect beach weather ahead!\",\n    \"Grab an umbrella, rain's coming.\",\n    \"Bundle up, it's going to be chilly!\"\n  ]\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Examples of Good Snips<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Perfect sailing conditions expected!&#8221;<\/li>\n\n\n\n<li>&#8220;Beach day weather incoming \u2600\ufe0f&#8221;<\/li>\n\n\n\n<li>&#8220;Small craft advisory &#8211; stay ashore&#8221;<\/li>\n\n\n\n<li>&#8220;Fog rolling in, drive carefully&#8221;<\/li>\n\n\n\n<li>&#8220;Ideal conditions for outdoor activities&#8221;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress 5.0+<\/li>\n\n\n\n<li>PHP 7.4+<\/li>\n\n\n\n<li>Write permissions for <code>\/home\/scootercam\/public_html\/wx\/<\/code> directory<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Permissions<\/h2>\n\n\n\n<p>Requires <code>manage_options<\/code> capability (Administrator role) to access the admin interface.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Technical Details<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Uses AJAX for smooth inline editing<\/li>\n\n\n\n<li>jQuery-based admin interface<\/li>\n\n\n\n<li>Automatic sanitization of user input<\/li>\n\n\n\n<li>Nonce verification for security<\/li>\n\n\n\n<li>Responsive admin design<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<p><strong>&#8220;Error saving snip&#8221;<\/strong><br>Check file permissions on <code>\/home\/scootercam\/public_html\/wx\/snips.json<\/code> &#8211; should be writable by web server.<\/p>\n\n\n\n<p><strong>No snips displaying<\/strong><br>Ensure you&#8217;ve added at least one snip in the admin interface.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">License<\/h2>\n\n\n\n<p>GPL v2 or later<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Author<\/h2>\n\n\n\n<p>ScooterCam<br>https:\/\/scootercam.com<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.0.0<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Initial release<\/li>\n\n\n\n<li>Admin management interface<\/li>\n\n\n\n<li>Random snip display<\/li>\n\n\n\n<li>Flexible shortcode options<\/li>\n\n\n\n<li>JSON file storage<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>ScooterCam Weather Snips Version: 1.0.0WordPress Plugin Description Curated weather forecast text snippets with a visual admin management interface. Display random, personality-filled weather commentary throughout your site. Features Installation Usage Basic Shortcode or Shortcode Attributes Custom CSS Class: Custom HTML Wrapper (default is &lt;p&gt;): Add Prefix Text: Add Suffix Text: Custom Inline Styles: Combined Example: Admin &#8230; <a title=\"scootercam-snips\" class=\"read-more\" href=\"https:\/\/scootercam.net\/blog\/scootercam-snips\/\" aria-label=\"Read more about scootercam-snips\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-473","post","type-post","status-publish","format-standard","hentry","category-plugins"],"_links":{"self":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/473","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/comments?post=473"}],"version-history":[{"count":1,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/473\/revisions"}],"predecessor-version":[{"id":474,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/473\/revisions\/474"}],"wp:attachment":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/media?parent=473"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/categories?post=473"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/tags?post=473"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}