Content last modified Monday 6 March 2017
hop to #bottom
Categories:
Author:
Current version:
0.2
About It:
Get it:
Rate it:
  • Helpful?
  • 0 Yes
  • 1 No
Flag it:
Contact Reason [ ? ]

gs_linkedin

gs_linkedin

Dynamically present Linkedin.com profile hresume data

Summary

gs_linkedin is a port of Brad Touesnard’s Wordpress plugin LinkedIn hResume. It grabs the Microformated hResume block from your LinkedIn public profile page allowing you to add it to any page with a simple textpattern tag and apply your own styles.

Thanks to Mariano Absatz for help reporting bugs.

Download

gs_linkedin is released under the GPL. Download it.

Setup / Installation

Your LinkedIn profile must be configured to “Full View”. The default view is “Basic”. Once the Linkedin API is public this could change.

The hResume classes and ids are left in place and can be styled as you wish. Below is the css Brad Touesnard created for his plugin, as well as my modified version.

The plugin does not currently use any cache, fetch images, or require any non-standard php configurations.

Usage

gs_linkedin requires two attributes.

  • linkedin_src – the url of your public linkedin.com profile
  • name – your full name

Example

 

<txp:gs_linkedin linkedin_src="http://www.linkedin.com/profile?viewProfile=&key=5919187" name="Grant Stavely" />

 

CSS

I prefer a very basic style and hide much of the linkedin-specific content.

#overview, div.profile-header, div.actions, #summary h2, summary h3, #additional-information,  .info, .skills  { 	display: none; } #experience ul.vcalendar li.experience { 	position: relative; } abbr { 	text-decoration: none; 	border: none; 	color: #999; 	font-style: italic; 	font-size: .9em; } .organization-details { 	font-size: .9em; 	color: #999; } .org summary { 	font-size: 1.2em; 	font-style: italic; } 

Brad’s WordPress CSS works with minor modifications in Textpattern designs.

/* Elements */ body { 	font-family: Lucida, Helvetica, Arial, sans-serif; 	color: #333; 	margin: 0px 0px 0px 0px; 	padding: 0px 0px 0px 0px; 	background-color: #fff; 	font-size: 0.9em; } a { 	color: #3333cc; 	text-decoration: none; } a:hover { 	color: #9999ff; 	text-decoration: underline; } form { 	margin: 0px 0px 0px 0px; 	padding: 0px 0px 0px 0px; } hr { 	border: none 0; 	border-top: 1px dashed #C5C5C5; 	height: 1px; 	margin: 0px 0px 0px 0px; 	padding: 0px 0px 0px 0px; 	display: none; } blockquote { 	margin-left: 20px; 	border-left: 20px solid #eee; 	padding-left: 10px; 	font-size: 0.9em; } ul, ul ul { 	margin-left: 0; 	padding-left: 1.1em; } dt { 	font-weight: bold; } dd { 	margin-left: 1.0em; 	font-size: 0.9em; } h1, h2, h3, h4, h5, h6, p { 	padding: 0; 	margin: 0 0 0.2em 0; } h2 { 	border-top: 3px double #ccc; 	border-bottom: 3px double #ccc; 	padding: 0.4em; 	margin-bottom: 1em; 	margin-top: 1em; } code { 	font-family: Courier New, Courier, Monospace; 	font-size: 1em; 	color: #666666; } acronym, abbr { 	border-bottom: 0; } /* Class Selectors */ div.hresume { 	position: relative; } ul.vcalendar li.vevent { 	list-style: none; 	list-style-image: none; } /* ID Selectors */ #lnhr-main { 	margin: 2em 3% 4em 3%; } #overview, div.profile-header div.actions { 	display: none; } #masthead { 	width: 40%; } #name { 	margin-bottom: 0; 	padding-bottom: 0; } #nameplate p.headline { 	margin-top: 0.4em; 	margin-bottom: 0; } #nameplate div.adr p.locality { 	margin-top: 0.4em; } #summary { 	margin-top: 2em; } #summary h2, #summary h3  { 	display: none; } #summary p.summary { 	position: absolute; 	top: 0; 	right: 0; 	width: 35%; 	font-size: 1.5em; 	-moz-border-radius: 1em; 	line-height: 1.1em; 	padding: 1em; 	background: #eee; 	margin-right: 15%; } #summary p.skills { 	clear: both; } #experience { 	overflow: hidden; } #experience ul.vcalendar { 	margin-left: 15em; } #experience ul.vcalendar li.experience { 	position: relative; 	margin-top: 1.6em; } #experience ul.vcalendar li.experience:nth-child(2n+1) { 	background-color: #eee; } #experience ul.vcalendar li.experience ul li { 	margin-top: 1em; } #experience ul.vcalendar li.experience p.period { 	position: absolute; 	top: 0; 	left: -15em; 	width: 10em; 	background: #eee; 	padding: 1em; 	height: 100%; } #experience ul.vcalendar li.experience p.period abbr.dtstamp, #experience ul.vcalendar li.experience p.period abbr.dtend { 	display: block; } #experience ul.vcalendar li.experience p.description { 	margin-top: 1em; } #experience ul.vcalendar li.experience p.organization-details { 	color: #999; 	font-size: 0.9em; } #project-description { 	-moz-border-radius: 1em; 	padding: 2em; 	background: #eee; 	margin: 2em 0 2em 0; } 
Article Request Count:
Keywords/tags:
Initially released:
10/25/2008
Posted here:
25 Oct 2008
Article modified:
01 Nov 2008

If there is a comment form at the Information URL, you may want to leave your comments/questions there for quicker feedback. Otherwise, comment away:

Your comment will NOT be submitted until you click the 'Submit' button on the next pageload.

Commented (2)

vic:

all the divs are broken which means it does not generate valid xhtml. creates 11 errors.

Thanks vic,

Can you send me to an example? The script doesn’t attempt validate the contents of linkedin’s markup – if they add a div and it isn’t closed before the script is configured to stop parsing, that could happen.

Subscribe to this article's comments RSS feed. [ ? ]   View Recent Comments across the site.

You know you want to visit the Archives.

Browse

Categories


Articles

There are also tag clouds, 'cause those are fun.
Published with Textpattern