Social Plugins – Facebook, Twitter a G+
- Pavel Macháň
- Člen | 282
Vytvořil jsem si komponenty pro sociální sítě a to pro jejich Social
Pluginy. Vim, že je už podobných komponent hodně, ale proč si nenapsat
svoji že :)
Kdo by měl zájem tak sem to zveřejnil https://github.com/…ocialPlugins
Verze:
- 1.5.0 – Oprava dočasného nastavení https://forum.nette.org/…-twitter-a-g#…
- 1.4.0 – Přidány Testy https://forum.nette.org/…-twitter-a-g#…
- 1.3.2 – Přidán LinkedIn https://forum.nette.org/…-twitter-a-g#…
- 1.2.0 – Přidán Pinterest https://forum.nette.org/…-twitter-a-g#…
- 1.1.2 – Přidány továrničky https://forum.nette.org/…-twitter-a-g#…
- 1.0.1 https://forum.nette.org/…-twitter-a-g#…
Použití:
Nette Addons: https://componette.org/search/?…
Git Readme: https://github.com/…er/README.md
Editoval EIFEL (15. 4. 2014 9:41)
- Pavel Macháň
- Člen | 282
matej21 napsal(a):
https://github.com/…omponent.php#L42 tohle opravdu ne :)
Mno fuj co sem to tam nechal… Díky za postřeh :)
Upraveno https://github.com/…30f3858b6c4d
Verze 1.0.1
Přidána podpora pro Twitter
- Embedded timeline
- Embedded favorites
- Embedded search
Komponenta přidána na Packagist pro composer https://packagist.org/…cial-plugins
Editoval EIFEL (9. 12. 2013 22:37)
- Pavel Macháň
- Člen | 282
regiss napsal(a):
Vytvořte komponentu (třeba továrničkou) v presenteru
Ahoj muzes ukazat vzorovy priklad jak vytvorit tovornicku?
Verze: 1.1.x
Přidal sem továrničky a jsou rozdělené podle služeb (FB, TW, G+)
Config
services:
# Configs
- HostBox\Components\Facebook\SocialPlugins\Config('vaseAppId')
- HostBox\Components\Twitter\SocialPlugins\Config
- HostBox\Components\Google\SocialPlugins\Config
# Factories
- HostBox\Components\Facebook\SocialPlugins\FacebookFactory
- HostBox\Components\Twitter\SocialPlugins\TwitterFactory
- HostBox\Components\Google\SocialPlugins\GoogleFactory
Presenter
// vypisovat sem "use" nebudu
class HomepagePresenter extends BasePresenter {
/** @var FacebookFactory */
protected $facebookFactory;
/** @var TwitterFactory */
protected $twitterFactory;
/** @var GoogleFactory */
protected $googleFactory;
// dostaneme tovarnicky do presenteru
// samozrejme to jde i injectem
public function __construct(FacebookFactory $facebookFactory, TwitterFactory $twitterFactory, GoogleFactory $googleFactory) {
$this->facebookFactory = $facebookFactory;
$this->twitterFactory = $twitterFactory;
$this->googleFactory = $googleFactory;
}
// vytvotime pomoci tovarnicky komponentu Like button
public function createComponentFacebookLikeButton() {
return $this->facebookFactory->createLikeButton();
}
// parametr slouzi pro defaultni nastaveni komponenty
public function createComponentFacebookLikeBox() {
return $this->facebookFactory->createLikeBox(array(
'colorScheme' => LikeBox::COLOR_SCHEME_DARK,
'showFaces' => TRUE
));
}
// pokud to neudelam parametrem metody pri vytvareni lze to
// dodatecne nastavit assign metodou na jiz vytvorene komponente
public function createComponentTwitterShareButton() {
$component = $this->twitterFactory->createFollowButton();
$component->assign(array(
'size' => FollowButton::SIZE_LARGE,
'showCount' => TRUE
));
return $component;
}
// a nebo jednotlive
public function createComponentGooglePlusOneButton() {
$component = $this->googleFactory->createPlusOneButton();
$component->size = PlusOneButton::SIZE_SMALL;
return $component;
}
}
Šablona
{control facebookLikeButton}
{control facebookLikeBox}
{control twitterShareButton}
{control googlePlusOneButton}
{control twitterShareButton:jsScript}
{control facebookLikeButton:jsScript}
{control googlePlusOneButton:jsScript}
Editoval EIFEL (10. 12. 2013 0:50)
- regiss
- Člen | 61
Super vsechno funguje jak ma. Jenom bych dodal, ze je nutne mit Nette ve
verzi 2.1dev
Chvili mi trvalo, nez mi doslo ze musim nastavit attribut href, nebot jsem
testoval plugin na localhostu. Bez toho se proste ‚Like button‘ nezobrazi a
clovek si lame hlavu nad tim co dela spatne.
Jeste jsem si vsiml, ze mas nastvenou konstantu na LAYOUT_STANDART = ‚standart‘ na Facebook strance je ‚standard‘
$this->facebookFactory->createLikeButton(array('href' => 'http://www.google.com'));
Jinak dekuji za super plugin, jak je na tom nova verze portalu pro pluginy?
Editoval regiss (10. 12. 2013 1:14)
- Pavel Macháň
- Člen | 282
regiss napsal(a):
Super vsechno funguje jak ma. Jenom bych dodal, ze je nutne mit Nette ve verzi 2.1dev
Chvili mi trvalo, nez mi doslo ze musim nastavit attribut href, nebot jsem testoval plugin na localhostu. Bez toho se proste ‚Like button‘ nezobrazi a clovek si lame hlavu nad tim co dela spatne.Jeste jsem si vsiml, ze mas nastvenou konstantu na LAYOUT_STANDART = ‚standart‘ na Facebook strance je ‚standard‘
$this->facebookFactory->createLikeButton(array('href' => 'http://www.google.com'));
V composeru to upravím na >= v2.0.13 neměl by stím být problém (ještě to otestuju). Osobně to testuju na nette 2.1RC tak proto to tam je.
href parametr pokud je prázdný tak FB, G+ berou aktuální URL kde je zobrazené tlačítko (na locale sem to zkoušel a tlačítka se zobrazovala, ale mám překuchané DNS takže používám vhost a tím pádem adresu ala socialplugins.local … ale jestli to je tím netuším)
EDIT: Opraveno (composer balík: v1.1.2)
regiss napsal(a):
Jinak dekuji za super plugin, jak je na tom nova verze portalu pro pluginy?
Tak to netuším :)
Editoval EIFEL (10. 12. 2013 12:42)
- Pavel Macháň
- Člen | 282
Nová verze 1.2.0
Přidána podpora sociální sítě Pinterest a to částí:
- Pin It button
- Follow button
- Pin widget
- Profile widget
- Board widget
Composer balík:
"hostbox/nette-component-social-plugins": "v1.2.0"
Editoval EIFEL (17. 12. 2013 23:44)
- Pavel Macháň
- Člen | 282
Nová verze 1.3.2
Přidána podpora profesní sítě LinkedIn a to částí:
- Company insider
- Company profile
- Member profile
- Share button
- Recommend button
Composer balík:
"hostbox/nette-component-social-plugins": "v1.3.0"
Editoval EIFEL (17. 12. 2013 2:03)
- regiss
- Člen | 61
Umoznuje tento balicek postovat clanky na socialni site? Mam na mysli tento
scenar.
Napisi clanek a pred ulozenim do databaze ho pomoci tohoto balicku poslu na
Facebook, Twitter a Google+
Samozrejme by se posilal jenom nejaky vytah z tohoto clanku s adresou na moje
webovky na kterych si ho mohou precist cely.
- Pavel Macháň
- Člen | 282
regiss napsal(a):
Umoznuje tento balicek postovat clanky na socialni site? Mam na mysli tento scenar.
Napisi clanek a pred ulozenim do databaze ho pomoci tohoto balicku poslu na Facebook, Twitter a Google+
Samozrejme by se posilal jenom nejaky vytah z tohoto clanku s adresou na moje webovky na kterych si ho mohou precist cely.
Tato komponenta má za úkol pouze zobrazovat pluginy (like tlačítko, share, komentáře, embendded atd viz seznam podporovaných pluginů https://forum.nette.org/…-twitter-a-g#…) sociálních sítí nikoliv využívat jejich API pro tvorbu akcí na sociálních sítí.
- Pavel Macháň
- Člen | 282
Nová verze 1.4.0
- Přídány Testy (pomocí nette/tester)
- Opravena LinkedIn továrnička
Composer balík:
"hostbox/nette-component-social-plugins": "v1.4.0"
Editoval EIFEL (17. 12. 2013 23:44)
- Pavel Macháň
- Člen | 282
Nová verze 1.5.0
- Přidány testy pro výsledné data komponent
- Opraveno dočasné nastavení pro template
Composer balík:
"hostbox/nette-component-social-plugins": "v1.5.0"
- fucikm
- Člen | 4
regiss napsal(a):
Super vsechno funguje jak ma. Jenom bych dodal, ze je nutne mit Nette ve verzi 2.1dev
Chvili mi trvalo, nez mi doslo ze musim nastavit attribut href, nebot jsem testoval plugin na localhostu. Bez toho se proste ‚Like button‘ nezobrazi a clovek si lame hlavu nad tim co dela spatne.Jeste jsem si vsiml, ze mas nastvenou konstantu na LAYOUT_STANDART = ‚standart‘ na Facebook strance je ‚standard‘
$this->facebookFactory->createLikeButton(array('href' => 'http://www.google.com'));
Jinak dekuji za super plugin, jak je na tom nova verze portalu pro pluginy?
Já se snažím vykreslit like_box a prostě ne a ne se zobrazit
v BasePresenteru mám továrnu:
public function createComponentFacebookLikeBox($name) {
return $this->facebookFactory->createLikeBox(array(
'colorScheme' => LikeBox::COLOR_SCHEME_LIGHT,
'showFaces' => TRUE,
'stream' => false,
'header' => true,
'href' => 'http://www.google.com'
));
}`
a v šabloně:
{control facebookLikeBox}
{control facebookLikeBox:jsScript}
Co jsem přehlédl, či nedomyslel?
- Pavel Macháň
- Člen | 282
Kaliver napsal(a):
Ahojte, v prvom rade chcem pochvalit autora za vydarenu komponentu. Mam otazku, akym sposobom viem nastavit jazyk pre facebook like button? Nasiel som v configu premennu $locale…aku ju viem ovbplyvnit?
Michal Vyšinský napsal(a):
Podle letmého projití kódu bych řekl, že jako pole v konstruktoru.
@Kaliver Jak píše @MichalVyšinský Změna se provádí při vytváření instance Config a nebo ji můžeš ovlivnit pomocí
PHP
use HostBox\Components\Facebook\SocialPlugins;
// Konstruktorem: Musíš ale vyplnit i $status a $xfbml
$config = new SocialPlugins\Config('myAppId', TRUE, TRUE, 'en_US');
// Nebo pomocí setteru
$config->setLocale('en_US');
NEON
services:
# Konstruktorem
- HostBox\Components\Facebook\SocialPlugins\Config('myAppId', true, true, 'en_US')
# Setterem
-
class: HostBox\Components\Facebook\SocialPlugins\Config('myAppId')
setup:
- setLocale('en_US')
V plánu je této komponentě přidat Extension pro snadnější konfiguraci, ale bohužel zatím není čas :/
Editoval Pavel Macháň (25. 1. 2015 0:33)