Saját slideshow meghívása Blockba

KoveZoli képe

Sziasztok!

Nem biztos, hogy ide való, de még mindig inkább, mint a modul fejlesztésbe :D

Egy D7-es oldalba bele kellene illesztenem egy egyedi slideshow-t (jquery-s).
Az egyik block pozícióban lenne jó helye. Ezt meg lehet oldani?

Maga a slideshow nem komplikált, de a views slideshowban, és a .org-on található modulok között sem találtam megfelelőt, illetve olyat, amit kicsit átalakítva a kívánt formát adta volna.

Köszönöm!

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

oldani. Ha jól értem már kész van a slideshow, csak valahogy bele kell integrálni egy drupál blokkba.

Talán a legszebb megoldás számomra, ha írsz egy saját modult, amibe a slidshow-hoz tartozó, html, css és jquery kódot egy helybe tudod gyűjteni és kirakni egy blokka.

Ez a kód majdnem minden tud, amit kell hozzá, nem bonyolult:

http://www.montanaprogrammer.com/drupal/drupal-block-add-js-css/

0
0
KoveZoli képe

Igen, jól érted. Van egy .html file-om, egy .css-s és egy .js, vagyis egy önállóan működni képes slideshow.

Megnézem, amit javasoltál. Meg utánaolvasok, mert eddig nem volt szerencsém ilyen feladathoz.

0
0

Üdv,

Zoltán

KoveZoli képe

Ezt még nem tudom megcsinálni.

Egy ilyen megoldást javasoltak:
Készítsek és page--front.tpl.php a page-tpl tartalmával.
Másoljam bele a javascriptet. A képeket tegyem fel a banner1 blockba úgy, ahogy a slideshow php-ban volt.
A css ide vonatkozó részeit bemásoltam a template css-ébe.
Egy része rendben van, a slideshow viszont nem működik.
Szerintetek?

0
0

Üdv,

Zoltán

aruna képe

Ilyenkor általában lépésről lépésre kell megkeresni a hibát.

Betöltődik-e tényleg az általad módosított html, a css és a javascript? Látod a böngésző forrásában is?

Ha lefut a javascript kód, mit csinál meddig jut el?
Pl. telepakolhatod a javascript kódot log-okkal.
Ha egy jQuery plugin, akkor lehet, elég csak ügyesen paraméterezni, de ha nincs szerencséd, akkor lehet hogy meg is kell érteni mit csinál a javascript kód.

0
0
KoveZoli képe

Talán most az lenne a legjobb, hogy ha találnék egy olyan slideshow-t, ami eleve drupalhoz van, és a nagy képek alatti thumbnail-eket át tudnám alakítani a kérés szerint.
Végignéztem a modulokat a .org oldalon, de mintha egyik sem a kívánt lenne :(

0
0

Üdv,

Zoltán

Nagy Gusztáv képe

Én ezt használom sok helyen: http://drupal.org/project/views_slideshow

1
0

Nagy Gusztáv

KoveZoli képe

Ezt én is szoktam, csak ezzel az a gondom, hogy a thumbnail képeknek a nagy képtől eltérőnek kell lenniük. Ha jól sejtem, ebben csak az eredeti képet tudom thumbnail-ként is megjeleníteni.

0
0

Üdv,

Zoltán

aruna képe

Talán látszik rajta a lényeg.

http://www.youtube.com/watch?v=k2Olg2M1P18

Ugyanaz a képet kétszer (kis és nagy méretben) adja hozzá a mezőkhöz.

Ebből kiindulva te megteheted azt is, hogy a tartalomtípusodba két különböző kép mezőt használsz, egyet a kicsi és egyet a nagy képnek. Így a views mezőihez ezeket hozzáadva nem lesznek egyformák a képek.

3
0
szantog képe

"hogy a tartalomtípusodba két különböző kép mezőt használsz" ezért felesleges újabb mező, egyetlen korlátlan mezővel meg lehet csinálni.

Itt views export, ha field_images a korlátlan kép mező értéke, már működik is:

  1. $view = new view();
  2. $view->name = 'image_slideshow';
  3. $view->description = '';
  4. $view->tag = 'default';
  5. $view->base_table = 'node';
  6. $view->human_name = 'Image slideshow';
  7. $view->core = 7;
  8. $view->api_version = '3.0';
  9. $view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
  10.  
  11. /* Display: Master */
  12. $handler = $view->new_display('default', 'Master', 'default');
  13. $handler->display->display_options['use_more_always'] = FALSE;
  14. $handler->display->display_options['access']['type'] = 'perm';
  15. $handler->display->display_options['cache']['type'] = 'none';
  16. $handler->display->display_options['query']['type'] = 'views_query';
  17. $handler->display->display_options['exposed_form']['type'] = 'basic';
  18. $handler->display->display_options['pager']['type'] = 'none';
  19. $handler->display->display_options['pager']['options']['offset'] = '0';
  20. $handler->display->display_options['style_plugin'] = 'slideshow';
  21. $handler->display->display_options['style_options']['slideshow_type'] = 'views_slideshow_cycle';
  22. $handler->display->display_options['style_options']['slideshow_skin'] = 'default';
  23. $handler->display->display_options['style_options']['skin_info'] = array(
  24. 'class' => 'default',
  25. 'name' => 'Default',
  26. 'module' => 'views_slideshow',
  27. 'path' => '',
  28. 'stylesheets' => array(),
  29. );
  30. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['weight'] = '1';
  31. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['type'] = 'views_slideshow_pager_fields';
  32. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_pager']['views_slideshow_pager_fields_fields'] = array(
  33. 'field_images' => 0,
  34. 'field_images_1' => 0,
  35. );
  36. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['weight'] = '1';
  37. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['hide_on_single_slide'] = 1;
  38. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_controls']['type'] = 'views_slideshow_controls_text';
  39. $handler->display->display_options['style_options']['widgets']['top']['views_slideshow_slide_counter']['weight'] = '1';
  40. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['enable'] = 1;
  41. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['weight'] = '1';
  42. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['hide_on_single_slide'] = 1;
  43. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['type'] = 'views_slideshow_pager_fields';
  44. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_pager']['views_slideshow_pager_fields_fields'] = array(
  45. 'field_images_1' => 'field_images_1',
  46. 'field_images' => 0,
  47. );
  48. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_controls']['weight'] = '1';
  49. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_controls']['type'] = 'views_slideshow_controls_text';
  50. $handler->display->display_options['style_options']['widgets']['bottom']['views_slideshow_slide_counter']['weight'] = '1';
  51. $handler->display->display_options['style_options']['views_slideshow_cycle']['timeout'] = '5000';
  52. $handler->display->display_options['style_options']['views_slideshow_cycle']['speed'] = '700';
  53. $handler->display->display_options['style_options']['views_slideshow_cycle']['delay'] = '0';
  54. $handler->display->display_options['style_options']['views_slideshow_cycle']['start_paused'] = 0;
  55. $handler->display->display_options['style_options']['views_slideshow_cycle']['remember_slide_days'] = '1';
  56. $handler->display->display_options['style_options']['views_slideshow_cycle']['items_per_slide'] = '1';
  57. $handler->display->display_options['style_options']['views_slideshow_cycle']['wait_for_image_load_timeout'] = '3000';
  58. $handler->display->display_options['style_options']['views_slideshow_cycle']['cleartype'] = 0;
  59. $handler->display->display_options['style_options']['views_slideshow_cycle']['cleartypenobg'] = 0;
  60. $handler->display->display_options['row_plugin'] = 'fields';
  61. /* Footer: Global: Text area */
  62. $handler->display->display_options['footer']['area']['id'] = 'area';
  63. $handler->display->display_options['footer']['area']['table'] = 'views';
  64. $handler->display->display_options['footer']['area']['field'] = 'area';
  65. $handler->display->display_options['footer']['area']['content'] = '<div class="clearfix"></div>';
  66. $handler->display->display_options['footer']['area']['format'] = 'editor';
  67. /* Relationship: Content: Image (field_images:fid) */
  68. $handler->display->display_options['relationships']['field_images_fid']['id'] = 'field_images_fid';
  69. $handler->display->display_options['relationships']['field_images_fid']['table'] = 'field_data_field_images';
  70. $handler->display->display_options['relationships']['field_images_fid']['field'] = 'field_images_fid';
  71. /* Field: Large */
  72. $handler->display->display_options['fields']['field_images']['id'] = 'field_images';
  73. $handler->display->display_options['fields']['field_images']['table'] = 'field_data_field_images';
  74. $handler->display->display_options['fields']['field_images']['field'] = 'field_images';
  75. $handler->display->display_options['fields']['field_images']['ui_name'] = 'Large';
  76. $handler->display->display_options['fields']['field_images']['label'] = '';
  77. $handler->display->display_options['fields']['field_images']['alter']['path'] = '[uri]';
  78. $handler->display->display_options['fields']['field_images']['element_label_colon'] = FALSE;
  79. $handler->display->display_options['fields']['field_images']['hide_empty'] = TRUE;
  80. $handler->display->display_options['fields']['field_images']['empty_zero'] = TRUE;
  81. $handler->display->display_options['fields']['field_images']['click_sort_column'] = 'fid';
  82. $handler->display->display_options['fields']['field_images']['settings'] = array(
  83. 'image_style' => 'large',
  84. 'image_link' => 'clone-of-original',
  85. );
  86. $handler->display->display_options['fields']['field_images']['group_rows'] = FALSE;
  87. $handler->display->display_options['fields']['field_images']['delta_offset'] = '0';
  88. /* Field: Smart thumbnail */
  89. $handler->display->display_options['fields']['field_images_1']['id'] = 'field_images_1';
  90. $handler->display->display_options['fields']['field_images_1']['table'] = 'field_data_field_images';
  91. $handler->display->display_options['fields']['field_images_1']['field'] = 'field_images';
  92. $handler->display->display_options['fields']['field_images_1']['ui_name'] = 'Smart thumbnail';
  93. $handler->display->display_options['fields']['field_images_1']['label'] = '';
  94. $handler->display->display_options['fields']['field_images_1']['exclude'] = TRUE;
  95. $handler->display->display_options['fields']['field_images_1']['element_label_colon'] = FALSE;
  96. $handler->display->display_options['fields']['field_images_1']['hide_empty'] = TRUE;
  97. $handler->display->display_options['fields']['field_images_1']['empty_zero'] = TRUE;
  98. $handler->display->display_options['fields']['field_images_1']['click_sort_column'] = 'fid';
  99. $handler->display->display_options['fields']['field_images_1']['settings'] = array(
  100. 'image_style' => 'smart-thumbnail',
  101. 'image_link' => '',
  102. );
  103. $handler->display->display_options['fields']['field_images_1']['group_rows'] = FALSE;
  104. $handler->display->display_options['fields']['field_images_1']['delta_limit'] = '1';
  105. $handler->display->display_options['fields']['field_images_1']['delta_offset'] = '0';
  106. /* Sort criterion: Content: Post date */
  107. $handler->display->display_options['sorts']['created']['id'] = 'created';
  108. $handler->display->display_options['sorts']['created']['table'] = 'node';
  109. $handler->display->display_options['sorts']['created']['field'] = 'created';
  110. $handler->display->display_options['sorts']['created']['order'] = 'DESC';
  111. /* Contextual filter: Content: Nid */
  112. $handler->display->display_options['arguments']['nid']['id'] = 'nid';
  113. $handler->display->display_options['arguments']['nid']['table'] = 'node';
  114. $handler->display->display_options['arguments']['nid']['field'] = 'nid';
  115. $handler->display->display_options['arguments']['nid']['default_action'] = 'default';
  116. $handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
  117. $handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
  118. $handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
  119. $handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
  120. /* Filter criterion: Content: Published */
  121. $handler->display->display_options['filters']['status']['id'] = 'status';
  122. $handler->display->display_options['filters']['status']['table'] = 'node';
  123. $handler->display->display_options['filters']['status']['field'] = 'status';
  124. $handler->display->display_options['filters']['status']['value'] = 1;
  125. $handler->display->display_options['filters']['status']['group'] = 1;
  126. $handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
  127.  
  128. /* Display: Block */
  129. $handler = $view->new_display('block', 'Block', 'block');
  130. $handler->display->display_options['defaults']['hide_admin_links'] = FALSE;

Ez lesze belőle: http://goloro.com/tip/sali-dugi-otok

3
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

aruna képe

a már meglévő slideshow-ról, hogy néz ki, úgy könnyebb tanácsot adni, hogy mivel/hogyan érdemes csinálni.

0
0
KoveZoli képe

0
0

Üdv,

Zoltán

szantog képe

Abszolút views_slideshow compatibilis a cucc. Összeszedsz minden mezőt, ami az felső részhez kell, és ami a klikkelhető állapotokhoz szükséges - ezeket exclude from display-el.
Hozzáadsz egy Global: Custom text mezőt, ebben tokenekből befaragod azt a html-t, amit a pagerhez akarsz használni, ezt szintén exclude from display, és a slideshow settingsben ezt a global mezőt állítod be pagernek.

3
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

KoveZoli képe

Köszönöm a tippeket, tanácsokat, idővel egy nem éles oldalon megpróbálom megvalósítani.
Egyelőre más módszerrel (nem jquery) végre működik a címlapon.

Már csak egyetlen problémám van (nem tudom, nyissak-e hozzá másik kérdést), vagyis FF (Chrome és IE alatt rendben van) alatt a slideshow alá csúszik a content és a bal oldalsáv.

Update:
Erre kiderült, hogy a módosított drupal.js, illetve a banner1 blockba beillesztett div-ek és ul-ek közé tett képek zavarnak be.

0
0

Üdv,

Zoltán

KoveZoli képe

Az alábbi lett a megoldás:

A js ide vonatkozó részei bemásolásra kerültek a drupal.js-be.
A css pedig a template saját css-ébe.
A Banner 1-be bekerültek slideshow képeinek kódrészletei (eredeti képek és thumbnailek is)

A slideshow fut, egyetlen szépséghibával, de ez korrigálható lett egy 0px-es "üres" képpel: valahol van egy hiány valamelyik modulban ami ezáltal előjött, s a weboldal nem slideshow-val rendelkező oldalai szétcsúsztak.
A page.tpl.php-ban 50-50 db és páros van, a nem slideshow-val rendelkező oldalak forráskódjában pedig 53 - 52, pedig a banner 1-be rakott div-ek megvannak.

0
0

Üdv,

Zoltán