Facebook Share a tartalom alá

Szekeres_Juli képe

Sziasztok!

Krisztián végül nem vetette fel külön a problémát, de én ugyanebbe futottam bele:
A Facebook Share modul a tartalom fölé helyezi a megosztás gombot, én pedig alulra, a Tetszik gomb mellé akarom tenni (amit a Facebook Like Button modul tett oda).

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
csakiistvan képe

1, ahogy nézem ő beleteszi a #content -be, a formzásása CSS-ből jön, így valamennyire át tudod te is alakítani.

2, beteszel egy saját share gombot egy blokkba, és oda teszed ahová te szeretnéd

3, beteszed a kódot a node.tpl.php-ba, és oda pakolod ahová szeretnéd.

A kettest jobban preferálnám a helyedben, ez a legjobban alakítható.

http://developers.facebook.com/docs/plugins/

0
0

-
Features, drush, git... ne nélkülözd őket

Szekeres_Juli képe

Köszönöm, István, elteszem a javaslataidat, bár most elbizonytalanodtam, mert közben ezeket találtam:

1. Lehet, hogy nem is érdemes ezzel küzdeni:
http://drupal.org/node/1164370

2. Már ismert a probléma
a) Pav írt rá egy kiegészítő modult:
http://drupal.org/node/1011904#comment-4009780
b) lehet, hogy a weight is elég lenne, erre már van patch:
http://drupal.org/node/1126782
(igaz, azt éles helyzetben nem szabad használni, ahogy olvastam, de "Posted by john.oltman on May 28, 2011 Will be released soon.")

0
0
Szekeres_Juli képe

Nekem is 2. megoldás tetszik legjobban, de nem sikerül blokkot tennem a könyv navigáció fölé.

Nem vagyok jártas a sminkelésben, remélem, ez egy egyszerűen megoldható kérdés, csak nekem lesz új :-)

0
0
csakiistvan képe

Első kérdés hogy a smink pontosan micsoda is... Önálló smink, vagy alsmink.

A blokk tartalmak régiókban vannak, így ahhoz hogy valahol régiót helyezz el, el kell tudnod érni a sminked page-tpl.php fájlját és a sminked info fájlját.

0
0

-
Features, drush, git... ne nélkülözd őket

Szekeres_Juli képe

Egy koi nevű sminkhez készítettem alsminket, van saját sminkem.info fájlom és persze page.tpl.php is. Látom a régiókat is az info fájlban. Alább leírom, pontosan hol akadtam el. Köszönöm a segítséget!

0
0
gerisz képe

blokk - ahová akarod!

Legalább is "piszkálgatás" nélkül bárhová, ahol van régiód. Mivel a régiókba pakolod bele a blokkokat. /admin/build/block útvonaladon.

1)
Régió hozzáadása ->

/sites/all/themes/mytheme/mytheme.info -> szerkesztés

regions[myregio] = myregio

/sites/all/themes/mytheme/page.tpl.php -> szerkesztés

<?php if ($myregio): ?>
<div class="myregio"><?php print $myregio; ?></div>
<?php endif; ?>

A kiíratást oda teszed ahol majd szeretnéd megjeleníteni a blokkodat.

Másolás/felülírás, gyorstár törlése és már is van egy régiód ahová pakolhatod a blokkodat.

2)
Régió nélkül.
/sites/all/themes/mytheme/page.tpl.php -> szerkesztés

<?php 
    $block = module_invoke('block', 'block', 'view', 'myblockid');
    print $block['content'];
?>

oda teszed ahová akarod.

(myblockid -> /admin/build/block megkeresed a blokkodat amiben a faceshare van.A böngésződ címsorában utolsó része pl: admin/build/block/configure/block/1 itt az 1 -es)

Persze mind ezt úgy hogy a 2-es variációt választottad csakiistvan hozzászólásából.

1
0
Szekeres_Juli képe

Köszönöm szépen, gerisz, ez szükséges a továbblépéshez!

Ott akadtam el, hogy a page.tpl.php-ban

  <div id="content">
    (...)
    <?php print $content ?>

és ahogy nézem, nekem a $content változóba kellene belevarázsolnom a régiómat.

Érzem, hogy ez alap Drupal kérdés, de nem találtam rá, hogy hol definiálódik a $content, és miképpen tudok bele régiót illeszteni.
(a honlap: http://szoporaz.hu)

0
0
csakiistvan képe

Nem bele, alá.. azaz:

<?php print $content ?>
<?php print $en_regiom ?>
1
0

-
Features, drush, git... ne nélkülözd őket

csg képe

Ez így nem jó, mert a $content-ben vannak a hozzászólások is, és így a hozzászólások alatt lenne a share gomb.

Valóban a $content-be kellene betenni, vagy külön mezőként, hogy rendezhető legyen, vagy legalább hozzáfűzni a $body végéhez, ezt pedig normálisan csak hook_nodeapi()-val, vagy hook_preprocess_node()-dal lehet megoldani.

1
0

--
Csonka Gergely
http://cheppers.com

Szekeres_Juli képe

"Ez így nem jó, mert a $content-ben vannak a hozzászólások is, és így a hozzászólások alatt lenne a share gomb."

Igen, pontosan ez a gondom.

"Valóban a $content-be kellene betenni, vagy külön mezőként, hogy rendezhető legyen, vagy legalább hozzáfűzni a $body végéhez, ezt pedig normálisan csak hook_nodeapi()-val, vagy hook_preprocess_node()-dal lehet megoldani."

Közben eszembe jutott, hogy ezt a jelenleg használt Facebook Like Button modul megoldotta már, csak meg kell nézni, hogyan - és ehhez kevés még a tudásom.

Ha úgy fogalmazom meg, hogy kell nekem egy modul, ami úgy működik, mint a Facebook Share, csak nem egy Like gombot, hanem egy régiót illeszt be (amibe már tudok tenni megosztás meg iwiw gombokat is), azt meg tudom csinálni magam (most láttam először modult belülről), vagy menjek vele a munkaközvetítőbe?

0
0
Szekeres_Juli képe

Ezt módosítottam a node.tpl.php-ben:

   <div class="content">
    <?php print $content ?>
  </div>
 
<?php print $node_content_block;  // this was after links  ?>
 
    <?php if ($links): ?>
      <div class="links"><?php print $links; ?></div>
    <?php endif; ?>
 
</div>

És ettől a blokk a tartalom és a hozzászólások közé került - igaz, a könyvlap lapozója alá.

0
0
aboros képe

mert mondjuk a cím után, beküldés dátuma, után like box után tartalom (body) felállás sokkal könnyebben kivitelezhető. de ha mégis ragaszkodsz ehhez, akkor hála a magasságos jóságnak a könyv navigációnak is van saját tplje annak pakolhatod az elejére. ez a book-navigation.tpl.php file maga, ezt másold át a saját sminked könyvtárába és ürítsd a theme registryt. utána a saját book-navigation.tpl.php fileod elejére varrhatsz amit akarsz.

2
0

-
clear: both;

Szekeres_Juli képe

Ez átvágja a gordiuszi csomót, de csak könyvlap típusú node esetében. Számomra értelmesebb egy írás végére tenni az ilyesmit, hiszen akkor tudja, akarja lájkolni, megosztani, ha már elolvasta. Ettől eltekintve rengeteget tanultam az ötletedből, köszönöm!

0
0
aboros képe

a page.tpl.php -ban a $content -ben már valóban együtt van a node és a kommentek tartalma, de a nodenak van saját templateje is és mint ilyen, saját preprocesse is van, szóval könnyedén varrhatok bármit a node tartalma és a kommentek közé, kb mondjuk így:
sminkem/template.php:

<?php
function sminkem_preprocess_node(&$vars) {
  $vars['content'] .= '<div style="font-size: 3em;color: red;padding: 1em;border: 5px dotted red;text-decoration: blink;">ezt varrtam ide preprocessbol</div>';
}
?>

és kész. ez bármely nodera érvényes lesz, mindegy mi a típusa. mikor bevezeted a függvényt, akkor ürítened kell a smink reg. tárat, de utána már nem kell minden módosításnál, csak először, hogy a csodálatos sminkréteg észrevegye a függvényedet.
1
0

-
clear: both;

gerisz képe

Viszont ha ő a lapozó elé akarja tenni akkor újra kell építenie(a content-et) vagy nem? -vagy már nem is tudom?! És akkor már mindegy lenne ha egy blokkot csapna hozzá amiben kézzel beteszi a like és a share gombokat is. Így még a like modulja sem kell.

1)
book-navigation.tpl.php -ba beteheti a blokkot. és ezzel a book tartalom le is van tudva.

A többi tartalom típusnál meg megjeleníti preprocess-el kivéve a bookot.(meg azt még nem tudjuk hogy kell-e neki pager és teaserbe is)

vagy
2)
preprocess-el csak viszont ekkor a book -nál a blokk után kell rakni a lapozót - erre írtam hogy itt építi fel újra content -et

0
0
Szekeres_Juli képe

aboros, kérlek, ne nevess ki, én szóról szóra azt csináltam, amit megértettem a leírásodból:
1. Létrehoztam egy template.php nevű fájlt a sminkem mappájában (a szülő smink egy templates mappába gyűjtötte a templateket, ezt a szerkezetet lemásolva a saját alsminkem templates mappájába tettem én is az új fájlt)
2. A fájl tartalma az a kód, amit írtál, csak a szöveget ítam át
3. Ürítettem a smink reg. tárat, sőt mindent az admin menüből (Flush all caches)
Aztán rákerestem az általam beírt szövegre, és nincs.

Biztosan van valami nagyon triviális, amit mindenki tud, csak én nem - kérlek, mondd meg, mit rontottam el?

Egyébként tényleg nem igénylem, hogy feltaláljuk a kereket, hiszen a a jelenleg használt Facebook Like Button modul megoldotta már, csak meg kell nézni, hogyan - és ehhez kevés még a tudásom. Ha nem egyszerű lemásolni (én nem tudom megcsinálni), akkor szívesen írok a munkaközvetítőbe :-)

0
0
pp képe

A sminked könyvtárába tegyed a template.php-t, ne alkönyvtárba. (milyen szülő sminket használsz?)

pp

1
0
Szekeres_Juli képe

Koi szülősminket használok Drupal6 alatt, apró változtatásokkal. Mivel ezek némelyike érint tpl.php fájlt, bemásoltam a saját sminkem könyvtárába a koi templates könyvtárát, és ott írtam át, amit akartam. Ez eddig működött, ezért tettem először Aboros template.php-ját is ide.

Javaslatodra áthelyeztem a sminkem gyökerébe (közben megnéztem, és a szülő smink gyökerében is van egy template.php), cache-t ürítettem, de nem jelent meg a szöveg még a forráskódban sem.

Ha a szülő smink template.php tartalmát is átmásolom, és a végére írom Aboros kódját, akkor az egész oldal eltűnik.

Mit rontok el?

0
0
gerisz képe

ne másolj bele semmit, csak ezt ->

<?php
// $Id:$
 
function szoporaz_preprocess_node(&$vars) {
  $vars['content'] .= '<div style="font-size: 3em;color: red;padding: 1em;border: 5px dotted red;text-decoration: blink;">ezt varrtam ide preprocessbol</div>';
}

lentebb meg le van írva minden, kipróbáltam, leszedtem a koi-t készítettem alsminket stb...

1
0
Szekeres_Juli képe

Köszönöm, István, sikerült! Végül az /admin/build/themes oldalon is frissítettem (azt hittem, hogy az admin menü Flush all caches ezt is megcsinálja), és azóta működik.

Könyvlapok esetében a lapozó alá kerül a blokk, de így már nekem jó.

Gerisz, neked is köszönöm szépen, végig fogok menni az általad ajánlott lépéseken is, igyekszem mindet megérteni. Rengeteget fogok belőle tanulni, mert a preprocess még fehér folt számomra.

0
0
gerisz képe

Próbáljad ki amit aboros írt!

1) - book-navigation.tpl.php

http://api.drupal.org/api/drupal/modules--book--book-navigation.tpl.php/...

Ctrl+C / Ctrl+V

book-navigation.tpl.php

Másoljad elé:

A)

Ha a share modul "fent" van(http://drupal.org/project/facebookshare) Beállításoknál nem kell megadnod a tartalom típusodat, majd mi kitesszük:

<?php
$url = url('node/' . $object->nid, array('absolute' => TRUE));
print theme('facebookshare', $url);
?>

(csak a lapozóban fog szerepelni)

Más tartalom típusnál:
a node.tpl.php -ba a <?php print $links; ?> linkek felé/fölé

<?php  if  ($node->type != 'mynode' && !$teaser): ?>
<?php
$url = url('node/' . $object->nid, array('absolute' => TRUE));
print theme('facebookshare', $url);
?>
<?php endif; ?>
<br/>

B)

A blokkos megoldás

blokkot létrehozol, belepötyögöd amit szeretnél(http://developers.facebook.com/docs/plugins/)

most pedig ezt másold elé:

<?php 
    $block = module_invoke('block', 'block', 'view', 'myblockid');
    print $block['content'];
?>

(így nem kell 2 modult feltenned, fentebb le van írva hogy mi a myblock"ID")

A többi tartalomtípusnál:
a node.tpl.php -ba a <?php print $links; ?> linkek felé/fölé

<?php  if  ($node->type != 'mynode' && !$teaser): ?>
<?php 
$block = module_invoke('block', 'block', 'view', 'myblockid');
print $block['content'];
?>
<?php endif; ?>
<br/>

(ki kell hagyni azt a tartalomtípust ahol a lapozó van, mert nem akarjuk duplán megjeleníteni, na meg nem akarjuk a bevezetőben sem látni. A lapozós tartalomnál azért nem kell a bevezető és teljes nézettel foglalkozni mert a lapozó csak teljes nézetben látszik. A 'mynode' annak a tartalomnak a neve ahol a lapozót használod, myblock amit már írtam)

2) - preprocess

A)

A mytheme könyvtára(valahogy így néz ki a könyvtárszerkezeted, vagy nem)

 //css fájlok
[images] //képek
[templates] //page.tpl.php, node.tpl.php stb...
mytheme.info // szokásos + base theme = koi - a te esetedben
template.php //nincs semmilyen almappában ahogyan pp írta
 
(adjuk a tartalmainkhoz a blokkot amiben a facebookos dolgaink vannak.)
 
[geshifilter-code]&#10;function mytheme_preprocess_node(&amp;$vars) {&#10;if ($vars[&#039;page&#039;] == TRUE &amp;&amp; $vars[&#039;teaser&#039;] == NULL ) &#10;{&#10;$adblock = module_invoke(&#039;block&#039;, &#039;block&#039;, &#039;view&#039;, myblockid);&#10;	   &#10;$vars[&#039;content&#039;] = &#10;	  &#10;&#039;&lt;div class=&quot;social&quot;&gt;&#039; .&#10;$vars[&#039;content&#039;] .= &#039;&#039; . $adblock[&#039;content&#039;] .&#10;&#039;&lt;/div&gt;&#039;&#10;&#10;;&#10;&#10;}&#10;}&#10;[/geshifilter-code] 
mynode, myblockid - értelemszerűen!
Minden tartalomtípusban megjelenik .Meg ugye bár csak teljes nézetben!
 
Így a blokkod a node tartalma és a kommentek között lesz. Ez a legszebb megoldás.
 
(Viszont így a blokk és tartalma, a könyv típusú tartalomnál a lapozó alatt fog megjelenni.)
 
 
 
B)Ha a lapozó felett akarod:
 
[geshifilter-code]&#10;function mytheme_preprocess_node(&amp;$vars) {&#10;if ($vars[&#039;node&#039;]-&gt;type != &#039;mynode&#039; &amp;&amp;  $vars[&#039;page&#039;] == TRUE &amp;&amp; $vars[&#039;teaser&#039;] == NULL ) &#10;{&#10;$adblock = module_invoke(&#039;block&#039;, &#039;block&#039;, &#039;view&#039;, myblockid);&#10;	   &#10;$vars[&#039;content&#039;] = &#10;	  &#10;&#039;&lt;div class=&quot;social&quot;&gt;&#039; .&#10;$vars[&#039;content&#039;] .= &#039;&#039; . $adblock[&#039;content&#039;] .&#10;&#039;&lt;/div&gt;&#039;&#10;&#10;;&#10;&#10;}&#10;}&#10;[/geshifilter-code] 
(kihagytuk a könyv típusú tartalmadat ami a mynode)
 
 book-navigation.tpl.php belepakolod a blokkot ahogyan az első részben és kész is.
 
 
gyorstár
0
0
Szekeres_Juli képe

"2) - preprocess
A) adjuk a tartalmainkhoz a blokkot amiben a facebookos dolgaink vannak
Így a blokkod a node tartalma és a kommentek között lesz. Ez a legszebb megoldás.
(Viszont így a blokk és tartalma, a könyv típusú tartalomnál a lapozó alatt fog megjelenni.)"

Ezt a verziót próbáltam ki. Működik :-)

A blokk a lapozó és a hozzászólások között jelenik meg - éppen úgy, mint amikor régióba tettem a blokkot (http://drupal.hu/comment/59741#comment-59741 és http://drupal.hu/comment/60235#comment-60235).

A különbség a két megoldás tünetei között: ha régióba teszem a blokkot, akkor
1. megjelenik az előnézetben (teaser) is.
2. tudom szabályozni, hogy mely oldalakon (ne) jelenjen meg, esetleg, hogy mely felhasználók (ne) lássák (/admin/build/block/configure/block/x)

Egy apró módosítást megemlítek, ami előjött a próbálgatás során:

 $vars['content'] = 
$vars['content'] .= '' . '<div class="social">' . $adblock['content'] .
'</div>' 

A  <div class="social"> taget a content után tettem, mert ha előtte van, akkor az egész content-et teszi ebbe a div-be.

Mindezek alapján végül a régió mellett döntöttem - még csak én látom, amíg ki nem molyolok mindent, amit ide akarok írni (iwiw, FB, feliratkozás - ha tetszett).

Nagyon jó érzés volt kicsit megint többet látni a függöny mögé, és az is szuper, hogy most már én dönthetek, mit és hova teszek. Köszönöm szépen!

0
0