Selasa, 14 Februari 2017

TOC Plugin: Show Automatic Table Of Contents With JavaScript

TOC Plugin: Show Automatic Table Of Contents With JavaScript

Link to My Blogger Tricks

TOC Plugin: Show Automatic Table Of Contents With JavaScript

Posted: 14 Feb 2017 08:12 AM PST

Wikipedia loves adding "Automatic Table Of Contents" for each article it publishes because it engages readers more by providing more accessibility and better navigation. Google prefers high-quality content which is well organized and formatted. Adding elements like tables, numbered sections, and an auto-generated TOC is a big bonus for ranking high in SERPS.

TOC Plugin: Automatic Table of Contents using JavaScript

In this article, we will share a lightweight TOC plugin written in pure JavaScript to automatically generate a table of contents from the section headings of a web page. 

DEMO: The contents table bellow is dynamically created on page load using this TOC Script.

    What is Table Of Contents or TOC?

    In websites, a table of contents abbreviated as TOC or ToC, is a link list, usually found on a web page placed right after the first paragraph. Each anchor link inside a TOC takes you to a specific section of the web page.

    An HTML table of contents provides a quick way to jump to the desired section of a page. It usually includes the titles of the first-level headers (headings) or second level headers(subheadings).

    Table Of Contents of a wikipedia page

    In printable work, a table of contents refers to the index page of the book which contains the page number to each chapter. TOC for books are more in-depth and comprehensive, containing not only section titles but descriptions, author names, and subheadings.

    table of contents of a drawing book

    What Is TOC Plugin?

    TOC plugin developed by MBT, is an automatic solution to the tedious method of creating a table of contents manually for each web page. It auto-generates a user-friendly table of contents for your lengthy blog articles. It is coded in pure JavaScript and loads lightening fast. Contents table generated using TOC plugin is easily crawled and indexed by search robots.

    • Read this interesting article by MOZ which mentions SEO support for all JS methods that we have used so far in building TOC plugin.

    I have not included lower level heading tags (i.e. h3/h4/h5/h6) in TOC plugin because a blog post is neither a wiki nor a long lengthy book, it is best to show only major headlines for simplicity and accessibility. Adding subheadings or lower inside a table of contents only makes it longer in length thus pushing down your main content and destroying visibility.

    Automatic Table Of Contents for blogger blogs

    So far many developers have written a dynamic table of contents script but most of these scripts are either coded in jQuery or they are render-blocking JS eating up your page load time. You may even find table of contents generator but these scripts again lack flexibility and ease of customization.

    Table of contents should be added only to those articles which are lengthy or contain at least four headings. On contrary, some TOC generators will add a table of contents on all your pages whether containing several headings or just a single heading, which of course is not a sensible thing to do.

    jQuery table of contents is much slower compared to this TOC plugin built with traditional pure JS. JavaScript is executed much faster by browsers compared to a JS library (jQuery) that needs to be imported first.

    Features of Table Of Contents (TOC) Plugin:

    It is the first JavaScript plugin of its kind that is unique in several ways as mentioned below:

    • Coded in pure JavaScript - just 10 lines of code!
    • Lightweight and fast.
    • SEO Friendly
    • Adds unique ID to each section automatically.
    • Creates both ordered or unordered list
    • Contains a Toggle button
    • Show on any location you choose
    • Easily Customized
    • Mobile responsive
    • Executes only when invoked!

    Pseudo Code Of TOC Plugin

    Understand how the TOC Script works in plain English. The numbered list below is the pseudo code for our TOC plugin. It is a simplified description of the JavaScript code we wrote.

    Table Of Contents for blogspot blogs

    1. Create a function to print headline links
    2. Count the number of heading sections on a page
    3. Run a loop equivalent to the number of heading sections
    4. Extract text content from the heading titles
    5. Give each heading a different ID
    6. Convert the heading text into an anchor link
    7. Print the heading anchor links inside a bullet list
    8. Find the location by TOC ID to display the list
    9. End the loop
    10. Trigger the function only when invoked inside the page

    Table Of Contents with show/hide button

    Following is the pseudo code for the toggle button which shows or hides the table of contents.

    1. Create a new function to show/hide the TOC.
    2. Show the TOC by default
    3. Use a conditional statement to check if TOC is hidden or visible.
    4. Use CSS to show or hide the TOC
    5. Trigger the function only when button is clicked

    How To Install TOC Plugin in Blogger Blogs?

    I am sharing below the method of adding TOC plugin in Blogspot blogs but you can apply almost the exact same method for installing TOC plugin on any website you want, may it be hosted on Wordpress or anywhere else.

    Follow these steps to install TOC plugin in BlogSpot:

    1. Sign in Blogger > Template
    2. Backup your template
    3. Click "Edit HTML"
    4. Just above </head> tag paste the following source links:
             

      <link href='http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css' rel='stylesheet'/>
      <link href='http://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'/>

      <script type='text/javascript'>
      //<![CDATA[

      //*************TOC plugin by MyBloggerTricks.com
      function mbtTOC() {var mbtTOC=i=headlength=gethead=0;
      headlength = document.getElementById("post-toc").getElementsByTagName("h2").length;for (i = 0; i < headlength; i++)
      {gethead = document.getElementById("post-toc").getElementsByTagName("h2")[i].textContent;document.getElementById("post-toc").getElementsByTagName("h2")[i].setAttribute("id", "point"+i);mbtTOC = "<li><a href='#point"+i+"'>"+gethead+"</a></li>";document.getElementById("mbtTOC").innerHTML += mbtTOC;}}function mbtToggle() {var mbt = document.getElementById('mbtTOC');if (mbt .style.display === 'none') {mbt .style.display = 'block';} else {mbt .style.display = 'none';}}
      //]]>
      </script>

      Note that I am adding source links to Oswald font and Font-Awesome for styling purposes. You may or may not wish to add them. The code inside purple highlighted lines is the major TOC script in no more than 10 lines!

    5. Next search ]]></b:skin> and just above it paste the following CSS code:
            

      /*####Automatic TOC Plugin by MyBloggerTricks####*/
      .mbtTOC{border:5px solid #f7f0b8;box-shadow:1px 1px 0 #EDE396;background-color:#FFFFE0;color:#707037;line-height:1.4em;margin:30px auto;padding:20px 30px 20px 10px; font-family:oswald, arial;display: block;width: 70%;}
      .mbtTOC ol,.mbtTOC ul {margin:0;padding:0;}
      .mbtTOC ul {list-style:none;}
      .mbtTOC ol li,.mbtTOC ul li {padding:15px 0 0; margin:0 0 0 30px;font-size:15px;}
      .mbtTOC a{color:#0080ff;text-decoration:none;}
      .mbtTOC a:hover{text-decoration:underline; }

      .mbtTOC button{background:#FFFFE0; font-family:oswald, arial; font-size:20px;position:relative; outline:none;cursor:pointer; border:none; color:#707037;padding:0 0 0 15px;}
      .mbtTOC button:after{content: "\f0dc"; font-family:FontAwesome; position:relative; left:10px; font-size:20px;}

      Make these color changes if you want:

      • To change background color of TOC box edit #FFFFE0
      • To change border color of TOC box edit #f7f0b8
      • To change font color of TOC headline text edit #707037
      • To change anchor link color edit #0080ff
      • To change font size of anchor links edit 15px
      • To change font size of TOC headline text edit 20px
    6. Finally search for <data:post.body/> and replace it with the code below:

      Note: You will find two or more occurrences of this code so replace all its instances with the code below:

      <div id="post-toc"><data:post.body/></div>
    7. Save your template and you are all done!

    Show Table Of Contents Automatically in Blog Posts

    Each time you may want to display TOC inside a specific post, follow these two steps.

    Step #1  Mention Location Of TOC Container

    It is best to display TOC right after your starting paragraph or show it before the first heading on your blog post.

    To do this, switch to "HTML" mode of blogger editor and then paste the following HTML code just before the first heading or anywhere else you may want.

    <div class="mbtTOC">       <button onclick="mbtToggle()">Contents</button>       <ol id="mbtTOC"></ol>       </div>  
    • You can replace the text "Contents" with any other text you may like.
    • If in case your headings already contain numbers in beginning then replace ol with ul.

    Add Table Of Contents automatically in blog posts

    Step #2    Activate TOC Plugin

    Finally, its time to invoke the plugin so that it could auto-generate a TOC on page load,

    To do this, paste the following JS code at the bottom of your blogger editor where your post ends:

    <script>mbtTOC();</script>  

    Invoke TOC plugin

    Publish your post and see the magic! :)

    TOC Plugin Copyrights

    Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

    © 2008-2017 MyBloggerTricks.com
    Version: 1.0  2017/02/14

    Table Of Contents (TOC) Plugin by MyBloggerTricks (MBT) is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

    You are most welcomed to share the plugin with your readership as long as you attach attribution link back to this page. You are most welcomed to use the plugin in your commercial products as long as you keep the source credits intact.

    Need Help With TOC Plugin?

    I tried my best making this tutorial as easy as possible but if there is anything you could not understand then please feel free to post your queries below in the comment section. I would love to answer as soon as possible.

    I hope it adds a positive impact on your SERPS ranking and help you in making your content more search-friendly. I will develop the plugin with time, adding more features and functionalities if required. Till then, I would love to hear your feedback on this.  :)

    Selasa, 24 Januari 2017

    Headlines News Widget For Blogger With Tooltips

    Headlines News Widget For Blogger With Tooltips

    Link to My Blogger Tricks

    Headlines News Widget For Blogger With Tooltips

    Posted: 23 Jan 2017 11:28 AM PST

    Headlines News Widget is an awesome, super lightweight plugin for Blogger blogs, which shows headlines of your recent posts as a scrolling text, floating from left to right. It's a horizontal auto scrolling recent posts widget for blogger that is responsive and automatic. It's built using Blogger JSON Feeds API and jQuery News Ticker plugin.

    headlines news widget for blogger with tooltips Scrolling headline news widget surely makes your introductory texts standout and noticeable as soon as a visitor lands on your blog. It's the best way to draw visitors attraction towards your featured content.

    What is a Headlines News Widget For Blogger?

    Headlines News widget is basically a news ticker plugin which shows latest headlines of your blogspot blog as a horizontal scrolling text. It's the first news ticker of its kind for blogger blogs that does not only display your title links like ordinary tickers found across the web but also shows post info such as:

    • Author Name
    • Author Avatar
    • Comments Link
    • Comments Count
    • Published Date
    • Featured Thumbnail
    • Post description/summary snippet

    [Desktop View]

    headlines news widget for blogspot with tooltips

    You can choose to display recent posts by label by specifying a particular category or you can simply choose to show latest posts. It can easily be customized to change its background colors and fonts. Headline news widget is mobile responsive and fits perfectly to different screen sizes.

    [Mobile View]

    news headlines widget - mobile responsive

    We have already released its simplest version but today we will add some more features to it like CSS3 tooltips to display description and featured image. To add a simple news gadget for blogger without tooltips then please check the following tutorial:

    If in case you want a simple news widget to display text, custom html or even RSS/Atom feed then try our jQuery Announcement widget, where you can display headline news in vertical scroll.

    Is Headlines News Ticker Standards-Compliant?

    Headlines News ticker widget uses CSS and jQuery to create the scrolling text animation. It does not uses the <marquee> tag. We are using standards-compliant jQuery script and CSS3 to make the text scroll across the screen. The text animation is controlled used navigation such as play/pause and Next/Previous buttons, which makes it really easy for website visitors to navigate between scrolling headlines. 

    headlines news ticker widget for blogger

    The marquee tag is a non-standard HTML element which causes text to scroll up, down, left or right automatically. This feature is obsolete now and its use is discouraged by W3C.

    Features of Headlines News Widget

    Headlines News Ticker is an advanced widget equipped with these features:

    • Author Avatar
    • Displays latest posts dynamically
    • Displays recent posts from a specific category/label
    • Tooltips support
    • Shows Post Description/Summary
    • Shows Featured Thumbnail Image
    • Scrolling text with two animations: reveal & fade
    • Clickable Comments Count
    • Custom Date Format
    • Title Length is adjustable
    • Fully Customizable - Multi Colors!
    • Responsive and mobile friendly
    • Controls Navigation. Play/Pause, Next/Previous
    • Support all browsers: Firefox, Chrome, IE, Safari etc.
    Headlines News Widget Specs
    Created Dec 10, 2016
    Last Update Jan 23, 2017
    Compatible Browsers IE9, IE10, IE11, Firefox, Safari, Opera, Chrome, Edge
    Technology Used JSON, CSS3, HTML4, jQuery, JavaScript
    Layout Mobile Responsive
    Platform Support Google Blogger 1.0
    Text Direction LTR

    How To add Headlines News Widget In Blogger?

    Follow these easy steps:

    1. Go To Blogger > Template
    2. Backup your template
    3. Click "Edit HTML"
    4. Just below <head> tag paste the following JS and CSS source links:

      <link href='http://fortawesome.github.io/Font-Awesome/assets/font-awesome/css/font-awesome.css' rel='stylesheet'/>
      <link href='http://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'/>

    5. Next search ]]></b:skin> and just above it paste the following code:

      /*--------------Headlines News Widget By MyBloggerTricks.com----------*/

      .ticker-wrapper.has-js{margin:20px 0;padding:0 20px;width:780px;height:32px;display:block;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;background-color:#f8f0db;font-size:.75em}
      .ticker{width:710px;height:23px;display:block;position:relative;overflow:hidden;background-color:#f8f0db}
      .ticker-title{padding-top:9px;color:#900;font-weight:700;background-color:#f8f0db;text-transform:uppercase}
      .ticker-content{margin:0;padding-top:9px;position:absolute;color:#1F527B;font-weight:700;background-color:#f8f0db;overflow:hidden;white-space:nowrap;line-height:1.2em}
      .ticker-content a{text-decoration:none;color:#1F527B}
      .ticker-content a:hover{text-decoration:underline;color:#0D3059}
      .ticker-swipe{padding-top:9px;position:absolute;top:0;background-color:#f8f0db;display:block;width:800px;height:23px}
      .ticker-swipe span{margin-left:1px;background-color:#f8f0db;border-bottom:1px solid #1F527B;height:12px;width:7px;display:block}
      .ticker-controls{padding:8px 0 0;list-style-type:none;float:left}
      .ticker-controls li{padding:0;margin-left:5px;float:left;cursor:pointer;height:16px;width:16px;display:block}
      .ticker-controls li.jnt-play-pause{background-image:url(../images/controls.png);background-position:32px 16px}
      .ticker-controls li.jnt-play-pause.over{background-position:32px 32px}
      .ticker-controls li.jnt-play-pause.down{background-position:32px 0}
      .ticker-controls li.jnt-play-pause.paused{background-image:url(../images/controls.png);background-position:48px 16px}
      .ticker-controls li.jnt-play-pause.paused.over{background-position:48px 32px}
      .ticker-controls li.jnt-play-pause.paused.down{background-position:48px 0}
      .ticker-controls li.jnt-prev{background-image:url(../images/controls.png);background-position:0 16px}
      .ticker-controls li.jnt-prev.over{background-position:0 32px}
      .ticker-controls li.jnt-prev.down{background-position:0 0}
      .ticker-controls li.jnt-next{background-image:url(../images/controls.png);background-position:16px 16px}
      .ticker-controls li.jnt-next.over{background-position:16px 32px}
      .ticker-controls li.jnt-next.down{background-position:16px 0}
      .js-hidden{display:none}
      .no-js-news{padding:10px 0 0 45px;color:#F8F0DB}
      .left .ticker-controls,.left .ticker-content,.left .ticker-title,.left .ticker{float:left}
      .left .ticker-controls{padding-left:6px}
      .right .ticker-controls,.right .ticker-content,.right .ticker-title,.right .ticker{float:right}
      .right .ticker-controls{padding-right:6px}
      /*########Default Style by MBT#########*/
      .ticker-wrapper.has-js{margin:0 0 -200px;padding:0;width:98%;min-height:242px;display:block;border-radius:0;background-color:#fff;border:0 solid #eee;font-size:12px;overflow:hidden}
      .ticker{width:80%;height:42px;display:block;position:relative;overflow:visible;background-color:#fff}
      .ticker-title{background:#71db00;padding:9px 10px;color:#FFF;font-size:16px;font-family:oswald;text-transform:uppercase;text-shadow:1px 1px 6px #666}
      .ticker-title:after{left:90px;top:10px;height:0;width:0;position:absolute;content:" ";pointer-events:none;margin-left:0;margin-top:1px;border-left:13px solid #71db00;border-top:10px solid transparent;border-bottom:10px solid transparent;-moz-transform:scale(.9999)}
      .ticker-content{background-color:#fff;margin-left:18px!important;color:#444;margin-top:1px!important;overflow:visible!important; padding-top: 2px!important;}
      .ticker-swipe{background-color:#fff;position:relative;top:6px;left:110px!important}
      .ticker-swipe span{margin-left:1px;background-color:#fff;border-bottom:1px solid #333;height:12px;width:7px}
      .ticker-controls{padding: 0px!important;margin: 17px 0 0 10px!important;list-style-type:none;position:relative;right:-50px}
      .ticker-controls li{padding:0;margin-left:5px;float:left;cursor:pointer;height:16px;width:16px;display:block}
      .ticker-controls li a{border:0px!important; padding:0px!important;}
      .ticker-controls li.jnt-play-pause,.ticker-controls li.jnt-play-pause.paused,.ticker-controls li.jnt-play-pause.paused.over,.ticker-controls li.jnt-prev,.ticker-controls li.jnt-play-pause.over,.ticker-controls li.jnt-next{position:absolute;background:none}
      .ticker-controls li.jnt-play-pause:after,.ticker-controls li.jnt-play-pause.over:after{content:"\f04c";font-size:13px;color:#71db00;font-family:fontAwesome;position:relative;left:1.8em}
      .ticker-controls li.jnt-play-pause.paused:after,.ticker-controls li.jnt-play-pause.paused.over:after{content:"\f04b";font-size:13px;color:#71db00;font-family:fontAwesome;position:relative;left:1.8em}
      .ticker-controls li.jnt-prev:after{content:"\f04a";font-size:13px;color:#71db00;font-family:fontAwesome;position:relative;left:0}
      .ticker-controls li.jnt-next:after{content:"\f04e";font-size:13px;color:#71db00;font-family:fontAwesome;position:relative;left:3.6em}
      .ticker .iauthor:before, .ticker .icomments:before, .ticker .idate:before{font-family:fontAwesome;position:relative;padding-right:8px;color:#fff}
      .ticker .iauthorpic{width:17px!important;height:17px!important;border-radius:50%;float:none;display:inline-block!important;margin-right:3px;position:relative;
      top: 6px;border: 1px solid #eeeeee;
          -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
          -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
          box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
          padding: 3px;
      }
      .ticker span {padding-right:5px; font-family:Oswald; font-weight:normal}
      .ticker .icomments a{color:#71db00;font-size:11px}
      .ticker .icomments a:hover{text-decoration:underline}
      .ticker .icomments:before{content:'\f086';padding:0 3px 0 0px;color:#777;position:relative; top:-1px}
      .ticker .idate{font-size:11px;padding-right:7px;}
      .ticker .idate:before{content:'\f073';padding:0 5px;color:#777; position:relative; top:-1px}
      .ticker .mbttitle{font-family:oswald;font-size:14px;color:#71db00!important;font-weight:400;text-decoration:none;}
      .ticker .mbttitle:hover{text-decoration:underline}

      /*------ CSS3 Tooltip by MBT -------------*/
      .ticker .tooltip{outline:none;text-decoration:none!important;position:relative}
      .ticker .tooltip strong{line-height:30px}
      .ticker .tooltip > span{width:290px; white-space: normal; padding:15px 15px 0px 15px;opacity:0;top:170%;visibility:hidden;z-index:10;position:absolute;font-family:Arial;font-size:12px;font-style:normal;border-radius:2px;box-shadow:2px 2px 5px #999;-webkit-transition-property:opacity,margin-top,visibility,margin-left;-webkit-transition-duration:0.4s,0.3s,0.4s,.3s;-webkit-transition-timing-function:ease-in-out,ease-in-out,ease-in-out,ease-in-out;transition-property:opacity,margin-top,visibility,margin-left;transition-duration:0.4s,0.3s,0.4s,.3s;transition-timing-function:ease-in-out,ease-in-out,ease-in-out,ease-in-out}
      .ticker .tooltip > span img{float:right;width:130px;margin:0 0 30px 10px;padding: 0;border: none;}
      .ticker .tooltip:hover > span{opacity:1;text-decoration:none;visibility:visible;overflow:visible;display:inline;margin-left:0px}
      .ticker .tooltip span b{width:15px;height:15px;margin-left:20px;bottom:-9px;display:block;position:absolute;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);display:none\0/;*display:none}
      .ticker .tooltip > span{color:#fff; background:#71db00;border:1px solid #94fb26}
      .ticker .tooltip span b{margin-top:-19px;top:10px;background:#71db00;border-top:1px solid #94fb26;border-right:1px solid #94fb26;border-bottom:1px solid #71db00;border-left:1px solid #71db00}

      @media only screen and (max-width:480px) {
      .ticker-content {margin-left: -5px!important;padding-top: 4px!important;}.ticker-title{font-size:10px!important;padding:5px!important;}
      .ticker-controls, .ticker .icomments, .ticker .idate, .ticker .iauthor, .ticker .iauthorpic, .ticker-title:after {display:none;}}

      Make these custom changes

      • To change the green color theme of the News Ticker simply replace the green highlighted color codes with color of your choice. Use our  Color Code Generator.
    6. Save your template.
    7. Now go to Blogger > Layout
    8. Select "Add a Gadget"
    9. Choose "HTML/JavaScript" gadget
    10. Keep the title field empty and then paste the following code inside it:

      <!-- ######### Headlines News Widget By MBT ############# -->

      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
      <script src="http://www.jquerynewsticker.com/includes/jquery.ticker.js" type="text/javascript"></script>

      <!-- ######### Writing Callback Function ############# -->
      <script type="text/javascript">
      //----------------------------Defaults
      var ListBlogLink = "http://www.mybloggertricks.com";
      var ListCount = 5;
      var TitleCount = 70;
      var ListLabel ="Widgets";
      var ChrCount = 140;
      var ImageSize = 200;

      //----------------------------Function Start
      function mbtlist(json) {
      document.write('<ul id="js-news" class="js-hidden">');
      for (var i = 0; i < ListCount; i++)
      {

      //-----------------------------Variables Declared
      var listing= ListImage = ListUrl = ListTitle = ListImage = ListContent = ListConten = ListAuthor = ListTag = ListDate = ListUpdate = ListComments = thumbUrl = TotalPosts = sk = AuthorPic= ListMonth = Y = D = M = m = YY = DD = MM = mm = TT =  "";
      //----------------------------- Title URL
      for (var j = 0; j < json.feed.entry[i].link.length; j++) {
      if (json.feed.entry[i].link[j].rel == 'alternate') {
      break;
      }
      }
      ListUrl= "'" + json.feed.entry[i].link[j].href + "'";
      //----------------------------------- Title Stirng
      if (json.feed.entry[i].title!= null)
      {
      ListTitle= json.feed.entry[i].title.$t.substr(0, TitleCount);
      }

      if (json.feed.entry[i].thr$total)
      {
      ListComments= "<a href='"+json.feed.entry[i].link[j].href+"#comment-form'>"+json.feed.entry[i].thr$total.$t+"</a>";
      }
      ListAuthor= json.feed.entry[i].author[0].name.$t.split(" ");
      ListAuthor=ListAuthor.slice(0, 1).join(" ");
      AuthorPic = json.feed.entry[i].author[0].gd$image.src;


      //################### Content Check
      ListConten = json.feed.entry[i].content.$t;
      ListContent= ListConten.replace(/(<([^>]+)>)/ig,"").substring(0, ChrCount);

      //################### Date Format

      ListMonth= ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

      ListDate= json.feed.entry[i].published.$t.substring(0,10);

                               Y = ListDate.substring(0, 4);
                              m = ListDate.substring(5, 7);
                               D = ListDate.substring(8, 10);
                               M = ListMonth[parseInt(m - 1)]; 

      //################### Thumbnail Check
      if (json.feed.entry[i].media$thumbnail)
      {
      thumbUrl = json.feed.entry[i].media$thumbnail.url;
      sk= thumbUrl.replace("/s72-c/","/s"+ImageSize+"/");
      ListImage= "'" + sk.replace("?imgmax=800","") + "'";
      }

      // YouTube scan
      else if (json.feed.entry[i].content.$t.match(/youtube\.com.*(\?v=|\/embed\/)(.{11})/) != null)
      {
          var youtube_id = json.feed.entry[i].content.$t.match(/youtube\.com.*(\?v=|\/embed\/)(.{11})/).pop();
         
          if (youtube_id.length == 11) {
              var ListImage = "'//img.youtube.com/vi/"+youtube_id+"/0.jpg'";
              }
      }


      else if (json.feed.entry[i].content.$t.match(/src=(.+?[\.jpg|\.gif|\.png]")/) != null)
      {
      // Support For 3rd Party Images
      ListImage =  json.feed.entry[i].content.$t.match(/src=(.+?[\.jpg|\.gif|\.png]")/)[1];
      }
      else
      {
      ListImage= "'http://4.bp.blogspot.com/-HALLtgFeep0/VfryhQ0C5oI/AAAAAAAAPcY/77mSGND4q84/s200/Icon.png'";
      }

      //----------------------------------- Printing List
      var listing = "<li class='news-item'><span class='iauthor'><img class='iauthorpic' src='"+AuthorPic+"'/>"
      +ListAuthor+ "</span> <span class='icomments'>"
      +ListComments + "</span>  <span class='idate'>"
      + D + " " + M + "</span><i class='fa fa-chevron-right'></i> <a class='mbttitle tooltip' href="
      +ListUrl+
      "><span><b></b><img src="
      +ListImage+
      "/>"
      +ListContent+
      " →</span>"+ListTitle+"</a></li>";
      document.write(listing);
      }}

      document.write("</ul><script src='"+ListBlogLink+"/feeds/posts/default/-/"+ListLabel+"?alt=json-in-script&callback=mbtlist'></"+"script>");
      /*##########Newsticker settings########*/
          $(function () {
              $('#js-news').ticker({
              speed: 0.20,
              controls: true,  
              titleText: 'Headlines',
              displayType: 'reveal',
              pauseOnItems: 2000});
      });
      </script>

      Make these changes:

      • ListBlogLink : Insert your Blog URL here
      • ListCount : Decide how many headlines do you wish to display.
      • TitleCount : Choose how many characters to display in post title length.
      • ListLabel : Insert your blog label here. Remember that labels are case sensitive. Therefore type it exactly as it is shown in your browser address bar. News Ticker will not work if label case is not correct. 
      • ChrCount : Set the length of post description here.
      • ImageSize : Set image resolution (aspect ratio) here.
      • speed: Edit this value (0.20) to increase or decrease the scroll speed.
      • controls: Set true to false if you wish to hide the control buttons i.e. Play/Pause, Next/Previous
      • titleText: Set the News Ticker title here from Headlines to anything you like such as Latest, Hottest etc.
      • displayType: There are two types of scrolling text animation, reveal or fade. Set it as per your preference.
      • If you want to show latest posts headlines of your blog without mentioning any specific label/category then simply remove /-/"+ListLabel+" from the code above.
    11. Click Save button and you are all done.

    Enjoy showing animated plus scrolling news headlines to your visitors! :)

    Facing Problems Installing Headlines News Widget?

    I tried keeping these steps as simple as possible but if in case you are facing problems in any step please feel free to post your queries below. I would love to help as soon as time allows.

    I hope this cool headline news  ticker may help you in generating extra pageviews and creating better user engagement. If you liked this plugin and want a similar plugin to be developed for wordPress blogs using the WP rest API, then please post your comments below.

    Have a great day buddies! =)

    Selasa, 10 Januari 2017

    Best CPM Ad Network 2017 That Makes More Money - OneClerk

    Best CPM Ad Network 2017 That Makes More Money - OneClerk

    Link to My Blogger Tricks

    Best CPM Ad Network 2017 That Makes More Money - OneClerk

    Posted: 09 Jan 2017 10:00 AM PST

    "Best CPM Ad Network" - Does such a terminology even exists? Or it should rather be "Best CPM Ad Network as Per your Needs"? In fact with industry giants like Google AdSense, there can surely be no other company worthy to compete this billion dollar giant in providing state of the art technology for publishers to monetize their websites and blogs. But not every publisher qualifies for AdSense and not every publisher likes contextual advertisements to display on his site. How can you choose to decide which one out of the long list of ad networks is actually trustworthy? As a result you are all set to look for best alternatives to AdSense and BuySellAds that may help you make some extra passive income from your available ad slots.

    best CPM ad networks 2017

    We use Buysellads on our sites but we have recently started testing selling unsold ad space or backfill ads using AdClerks, formerly known us PublicityClerks which we  reviewed last year and still recommend as the best alternative to buysellads and surely amongst the list of best CPM Ad networks of 2017 due to its quality platform and auto-pilot revenue engine that surely helps you to increase ad revenue earnings.

     

    What is AdClerks?

    AdClerks is a rising star amongst top CPM ad networks. It provides fully automated self serve ad platform, allowing users to buy & sell online ads on an open marketplace featuring hundreds of hand picked sites. It has so far succeeded in attracting over 10,000 registered websites and advertisers and serves over 15 million ad impressions monthly.

    AdClerks is based in UK with a hand-picked international team of digital experts led by James H. 

    If you are looking to sign-up and submit your blog or website to AdClerks or get more information about its payment terms and site features then please read the in-depth review below.

    Introduction To OneClerk

    OneClerk is a new ad network exclusive to AdClerks users that offers publishers with the power to sell unsold ad space via CPM ads. OneClerk automatically monetizes your unsold ad space while still making your ad slot available to purchase on AdClerks marketplace.

    OneClerk is a powerful CPM ad network that helps you make extra cash from your unsold ad impressions by instantly loading ads via backfill with a 80% fill rate.

    See this daisy chain for easy understanding:

    AdClerks ad zoneif unsoldOneClerk ads if not enabled'Advertise here' banner or 'Backfill code'

    For example if you have created an ad zone but no advertiser is currently interested to purchase that slot, then why wait and waste those precious page impressions? Instead of waiting you can let OneClerk to instantly sell that empty inventory for you on CPM revenue model for as long as your ad slot is not sold out. OneClerk will display only family-friendly ads  from quality advertisers and brands.

    You can also use OneClerk on BuySellAds using the backfill option to sell your unsold ad slots. All you need to do is to paste the AdClerks asynchronous JavaScript code inside the backfill box.

    You can replace that 'Advertise here' label on unsold space at buysellads with a high paying advert from quality advertisers, automatically using OneClerk.

    display OneClerk ads on buysellads

    Following is a brief breakdown of how OneClerk works:

    1. OneClerk can be enabled only on Ad zones having ad size 300x250
    2. Revenue generates via a dynamic CPM
    3. OneClerk ads vary and are GEO targeted, so you will not always see them. It will be displayed to targeted audience of your site only.
    4. Viewable ad impressions and revenue data are recorded every hour on the stats page
    5. Earnings will be credited to your AdClerks account balance after 2 months
    6. Your ad zone will still be purchasable on the AdClerks marketplace and will override OneClerk ads if purchased
    7. You can opt-out or disable certain ads anytime by contacting support

    You can find more information about OneClerk here.

    Get OneClerk Approval By Sending Opt-In Request

    Before you may start using it, you will need to send an opt-in request to get OneClerk approval from AdClerks team. There is no strict eligibility criteria for getting OneClerk approval except that your website or blog must be in good overall standing when it comes to monthly impressions, quality content and professional design.

    Follow these easy steps for sending Opt-in request for OneClerk:

    1. Log Into your AdClerks account
    2. Then click OneClerk option under the Publishers tab on your sidebar
      OneClerk dashboard
    3. You will see a notice that your site is not yet approved with OneClerk. In order to get listed simple click the green button at your top-right. Opt-in to OneClerk
    4. AdClerks team will review your site and if it was eligible, your site will get OneClerk approval instantly within next 24 hours.
    5. Once approved, OneClerk is activated automatically and you can start selling unsold ad impressions!

    After receiving the green signal you can start creating a new 300x250 zone or enable OneClerk on an existing Ad zone.

    Setup Up a 300x250 Ad zone For Sale on AdClerks

    Only this size is eligible with OneClerk ads at the moment. So you will need to enable OneClerk only on an Ad zone having dimensions of 300px wide and 250px long.

    Setup your new zone by following these basic steps:

    1. Click "My Websites" from your AdClerks Dashboard
      AdClerks websites list
    2. Then click "New Ad Zone" button Create new Ad Zone in AdClerks
    3. Fill the form. Make sure to choose the 300 x 250 option while selecting Ad Size. Click the "Submit" button and you are all done! Choose ad size 300x250
    4. You will be displayed with the JavaScript code that you will paste on your website. If you want to enable OneClerk on this ad zone, simply click the "Edit Zone" button to right as shown in the picture below: Edit zone in AdClerks
    5. Scroll to the bottom of your page and you will see the option "Enable OneClerk" Enable OneClerk
    6. Click the submit button and your zone will instantly start displaying CPM ads for all your unsold ad impressions.
    7. Now you can monetize every impression as shown below, that simple! :) OneClerk dashboard showing ad earnings

    Any Questions Regarding Setting Up OneClerk?

    If you face any problems in enabling OneClerk functionality in your account then feel free to ask me by posting your comments below. I would love to help you. If you have not yet joined AdClerks then I strongly recommend that you join it by reading this tutorial.

    If your AdSense account is disabled or AdSense has rejected your website or if you have failed at getting BuySellAds approval, you can still try your luck by joining AdClerks which is a new player and not that strict in approving new sites currently. Every new brand treats you with softness at first. I got my buysellads approval easily years ago but today their approval criteria has gone really tough. This could happen to AdClerks as well, who are soft at present but they can grow strict as soon as they grow too big. So better today then regretting tomorrow. Wish you all a safe blogging journey and sustainable ad revenue earnings. :)