Soma

MarkupSocialShareButtons

Recommended Posts

MarkupSocialShareButtons
 
This module outputs a list of share links for the following services by default
 
* E-Mail (kinda extra)
* Facebook
* Twitter
* Google+
* LinkedIn
* Thumblr
* Reddit (off by default)
* Pinterest (off by default)
 
Usage examples

echo $modules->MarkupSocialShareButtons->render();
 
This outputs a simple UL list with links

<ul class='MarkupSocialShareButtons cf'>
  <li class='mssb-item mssb-facebook mssb-popup'><a href='url'><i>facebook</i></a></li>
  etc ...
</ul>

Config Screen

post-100-0-26660100-1416777905_thumb.png

See more details and examples on github or modules directory

https://github.com/somatonic/MarkupSocialShareButtons

http://mods.pw/8j

  • Like 16

Share this post


Link to post
Share on other sites

@sinnut, yeah that's the purpose of why I made the module public. Donations welcome ;)

  • Like 1

Share this post


Link to post
Share on other sites

Nice!

I just did all this (build SN links) manually with a new site last week...

Look forward to checking this module out...

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for this Soma. For some reason apart from the 'email', all the other social shares are hidden. The <ul><li> is output but the inner <a> and <i> are hidden, e.g. <i class="icon-twitter">twitter</i> is hidden (CSS). 'Twitter', 'facebook', etc are not shown. Same thing happens if I use icons. The <svg> are hidden. What am I missing?

Share this post


Link to post
Share on other sites

There's nothing in my module that makes them hidden, so it must be your CSS? E-mail has no "popup" class for example. Can you verify?

Share this post


Link to post
Share on other sites

I am testing on a template with hardly any CSS at all. For good measure, I even deleted the CSS with the same results. Below is my output. See the greyed out output for the Social Shares below after email. Yes, email has no 'popup' class.

post-894-0-79517300-1416589913_thumb.png

Edited by kongondo

Share this post


Link to post
Share on other sites

I'm not seeing anything here. Well I'm innocent and it doesn't make sense as there is nothing. Have you installed ad blocker or any plugins ? What browser? 

  • Like 1

Share this post


Link to post
Share on other sites

Sorry for wasting your time!!! Triple facepalm!!!! :-[  -_-  :ph34r:  :blink: Agghhhhhhhhhhhh!!!! Bitten once again!!!! I am going to hide under a rock and will not come out soon. ABP - guilty again! :biggrin:

Your module works a treat! See example below, working together with Blog Module. Will post example code later in Blog thread...Thanks!

post-894-0-34243700-1416591180_thumb.png

  • Like 2

Share this post


Link to post
Share on other sites

No problem. I was waiting for your facepalm post :P

Looks nice!

  • Like 1

Share this post


Link to post
Share on other sites

That's great and will surely become handy soon.

May i suggest namespacing the css classes? Item, Facebook or Twitter are classnames that are potentially already beeing used across several frameworks and applications.

  • Like 2

Share this post


Link to post
Share on other sites

Sorry for wasting your time!!! Triple facepalm!!!! :-[  -_-  :ph34r:  :blink: Agghhhhhhhhhhhh!!!! Bitten once again!!!! I am going to hide under a rock and will not come out soon. ABP - guilty again! :biggrin:

That's why I use a different browser for dev than for web browsing :)

  • Like 2

Share this post


Link to post
Share on other sites

Actually I have no AB anymore since 1-2 years.


That's great and will surely become handy soon.
May i suggest namespacing the css classes? Item, Facebook or Twitter are classnames that are potentially already beeing used across several frameworks and applications.

What framework? :P

Yeah it's only half namespaced, I was about to add it but thought hmm it's so nice and short! :) The UL has the module class name, i'll add them to all classes or make it a var so it could be configured in case.

Share this post


Link to post
Share on other sites

I completely rewrote the module kinda. 

New version just committed earlier:

See readme here for more infos:

https://github.com/somatonic/MarkupSocialShareButtons

There comes now a GUI in the module config screen to select themes (with live preview), and configure all options like links and url params.

Theming has changed a little to make things easier, and the bundled themes use PNG icons instead of SVG.

Edit: updated first post too.

  • Like 4

Share this post


Link to post
Share on other sites

Just when you think you got it you see something you forgot. :)

I just commited a few corrections to descriptions and fixes and missing stuff, minor. If you already got it the moment before you may update.

Share this post


Link to post
Share on other sites

Sorry for writting this without actually downloading and trying out your module, but does it allow to add other (custom) social services?

  • Like 1

Share this post


Link to post
Share on other sites

Sorry for writting this without actually downloading and trying out your module, but does it allow to add other (custom) social services?

Did you read somewhere that it's possible? No it's not, but feel free to make suggestions what to add. There's already all available social media icons included so only a matter of adding them. https://github.com/somatonic/MarkupSocialShareButtons/tree/master/themes/black/png

Share this post


Link to post
Share on other sites

I am talking about social share buttons specific to country. There are a few of them in Russia. And it so happened they are not on the list of availiable icons )) I do not know if they are going to be important to someone outside Russia so would not suggest them.

As it is your module, I just thought that this could be possible it already has interface for extension.

Share this post


Link to post
Share on other sites
Just committed little update


- some minor fixes and improvements

- added config for what fields module searched on {title} and {text} placeholder fields

- added placeholder field „media“ => pinterest

- added services tumblr, reddit (off by default) and pinterest (off by default) 

- updated themes with {themeUrl}

- updated readme

  • Like 8

Share this post


Link to post
Share on other sites

Hi Soma, 

found a little syntax error

MarkupSocialShareButtons.js

$(function(){

    $('[name=theme]').on("change", function(){

    });
}

I think there are two missing characters?

); 

Fixed file

$(function(){
    $('[name=theme]').on("change", function(){

    });
});

Share this post


Link to post
Share on other sites

Thanks. But this script isn't used, so it's kinda leftover.

  • Like 1

Share this post


Link to post
Share on other sites

Soma, I just got around to using this module, and it's great!

It makes setting all these up SO much easier.

Thanks man.  ^-^

  • Like 1

Share this post


Link to post
Share on other sites

Thanks from me as well.

These lines in my template file plus adding alt to the img tags in the theme made my good friend the W3C validator happy.

$options = array('title' => str_replace(' ', '%20', html_entity_decode($page->headline)));
$soc = str_replace('&', '&', $modules->MarkupSocialShareButtons->render($options));
  • Like 3

Share this post


Link to post
Share on other sites

Hi Soma !!

Very nice module... help me a lot !

I'm trying to create my own theme (color) and when I call : 

$content .= $modules->MarkupSocialShareButtons->setTheme("css/color")->render();

I got 

Error: Exception: Method MarkupSocialShareButtons::setTheme does not exist or is not callable in this context (in D:\xampp\htdocs\PWGriffConvites\wire\core\Wire.php line 326)
 
#0 D:\xampp\htdocs\PWGriffConvites\site\templates\convite.php(34): Wire->__call('setTheme', Array)
#1 D:\xampp\htdocs\PWGriffConvites\site\templates\convite.php(34): MarkupSocialShareButtons->setTheme('css/color')
 
css/color are folders, and inside color folder I have theme.php and png folder also.
 
Am I doing something wrong ?
 
Thank you !

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Robin S
      Another little admin helper module...
      Template Field Widths
      Adds a "Field widths" field to Edit Template that allows you to quickly set the widths of inputfields in the template.

      Why?
      When setting up a new template or trying out different field layouts I find it a bit slow and tedious to have to open each field individually in a modal just to set the width. This module speeds up the process.
      Installation
      Install the Template Field Widths module.
      Config options
      You can set the default presentation of the "Field widths" field to collapsed or open. You can choose Name or Label as the primary identifier shown for the field. The unchosen alternative will become the title attribute shown on hover. You can choose to show the original field width next to the template context field width.  
      https://github.com/Toutouwai/TemplateFieldWidths
      https://modules.processwire.com/modules/template-field-widths/
    • By horst
      Croppable Image 3
      for PW 3.0.20+
      Module Version 1.1.16
      Sponsored by http://dreikon.de/, many thanks Timo & Niko!
      You can get it in the modules directory!
      Please refer to the readme on github for instructions.
       
      -------------------------------------------------------------------------
       
      Updating from prior versions:
       
      Updating from Croppable Image 3 with versions prior to 1.1.7, please do this as a one time step:
      In the PW Admin, go to side -> modules -> new, use "install via ClassName" and use CroppableImage3 for the Module Class Name. This will update your existing CroppableImage3 module sub directory, even if it is called a new install. After that, the module will be recogniced by the PW updater module, what makes it a lot easier on further updates.
      -------------------------------------------------------------------------
       
      For updating from the legacy Thumbnail / CropImage to CroppableImage3 read on here.
       
      -------------------------------------------------------------------------
       
    • By MoritzLost
      UPDATE: I have published a stable version of this module!
      Discussion thread:
      Github: https://github.com/MoritzLost/TextformatterPageTitleLinks
      ---
      Hello there,
      I'm working on a tiny textformatter module that searches the text for titles of other pages on your site and creates hyperlinks to them. I'm not sure if something like this exists already, but I haven't found anything in the module directory, so I wrote my own solution 🙂
      It's not properly tested yet and is still missing some functionality I would like to implement, so at the moment it should be considered in BETA. Features include limiting the pages that will get searched by template, and adding a custom CSS class to the generated hyperlinks. As I'm writing this I noticed that it will probably include unpublished and hidden pages at the moment, so yeah ... it's still in development alright 😅
      You can download the module from Github:
      https://github.com/MoritzLost/TextformatterPageTitleLinks
      There's some more information in the readme as well.
      Anyway, let me know what you think! I'm happy about any feedback, possible improvements or ideas on how to improve the module. Cheers.
    • By blad
      Hi guys!
      I just uploaded a module to explore files based on elFinder. By default it will show the "Files" folder.
      Screenshots:

      Video:
       
      To do:
       More options To fix:
       The function of rotating or scaling an image fails  Image editors V 1.01 (view issue)
      Fixed the bug working with the Multi-Language support ( translation of folders ). Fixed the name of elfinder.en  Github:
      https://github.com/LuisSantiago/ProcessElFinder/
      I hope you like it.
    • By BitPoet
      I'm really in love with FormBuilder, but the one thing missing to match all my end users' expectations were repeatable field groups. Think repeaters, in ProcessWire terms. Our primary application of PW is our corporate intranet, so "lines" of fields are quite common in the forms I build. We have all kinds of request forms where the information for a varying number of colleagues needs to be entered (from meal order to flight booking request) and where it is simply impractical to send a form for each, and I don't want to clutter my forms with multiple instances of fields that may only get used ten percent of the time.
      That's why I started to build FormBuilderMultiplier (link to GitHub).
      What it does:
      Adds an option to make a regular Fieldgroup repeatable Lets you limit the number of instances of a Fieldgroup on the form Adds an "Add row" button the form that adds another instance of the Fieldgroup's fields Adds a counter suffix at the end of every affected field's label Stores the entered values just like regular fields Makes the entered values available in preview and email notifications Supports most text based fields, textareas and selects (really, I haven't had enough time to test all the available choices yet) What it doesn't do (yet):
      Support saving to ProcessWire pages (i.e. real Repeaters) I haven't tested all the validation stuff, Date/Time inputs etc. yet, but since I'm utterly swamped with other stuff at work, I didn't want to wait until I have it polished. Any feedback is welcome. There might also be some issues with different output frameworks that I haven't encountered yet. The forms I work with mostly use UIKit.
      Status:
      Still alpha, so test well before using it in the field.
      Known issues:
      When rows are added, the form's iframe needs to be resized, which isn't completely clean yet.
      How it works:
      The Fieldgroup settings are added through regular hooks, as is the logic that adds the necessary field copies for processing the form and displaying previews.
      "Multiplied" field instances are suffixed with _NUM, where NUM is an incremental integer starting from 1. So if you have add two fields named "surname" and "givenname" to a fieldgroup and check the "multiply" checkbox, the form will initially have "surname_1" and "givenname_1" field (I'm still considering changing that to make the risk to shoot oneself into the foot by having a regular "surname_1" field somewhere else in the form less likely).
      When a "row" is added, the first row is cloned through JS and the counter in the fields' IDs, names and "for" attributes as well as the counter in the label are incremented before appending the copies to the Fieldset container in the form.
      To keep backend and frontend in sync, a hidden field named [name of the fieldset]__multiplier_rows is added to the form. Both the backend and the frontend script use this to store and retrieve the number of "rows".
      ToDo:
      Naturally, add the option to store the data in real repeaters when saving to pages. Do a lot of testing (and likely fixing). Make a few things (like the "Add row" button label etc.) configurable in field(set) context. Add a smooth API to retrieve the multiplied values as WireArrays. The mandatory moving screenshot: