Modul illesztése oldalba

makgab képe

Hi!

Meg lehet azt oldani, hogy egy létrehozott "oldal" tartalomba egy modul-t be lehessen illeszteni?
Konkrétan:
Létre van hozva egy "Oldal" típusú tartalom, amiben van némi szöveg és egy beágyazott object/video. Ez alá kellene a shoutbox nevű chat modul-t megjeleníteni. Azaz a szöveg, a beágyazott video (object) és a shoutbox chat egyszerre legyen látható az oldalon.

Megvalósítható ez?

Drupal verzió: 
Nagy Gusztáv képe

A pontosság kedvéért: szerintem te egy blokkot akarsz a node "részeként" megjeleníteni. Jól gondolom?

A sminkben kellene egy olyan régiót létrehozni, ami pont ott jelenik meg, ahol a blokkot akarod, és akkor már csak a megfelelő blokkot a megfelelő oldalakon kell megjeleníteni.

0
0

Nagy Gusztáv

makgab képe

Van egy shoutbox_view(), ez az amit "be kellene ilesztenem" egy oldalba.
Ez egy page és egy block is, nem?

<?php
...
function shoutbox_menu() {
  $items = array();
 
  $items['shoutbox'] = array(
    'title' => 'Shout box',
    'page callback' => 'shoutbox_view',
    'access arguments' => array('view shouts'),
    'type' => MENU_CALLBACK,
  );
...
function shoutbox_view($block = FALSE) {
  // Load externals
  theme('shoutbox_external_files');
 
  // Output the shoutbox form.
  $output .= drupal_get_form('shoutbox_add_form');
 
  // Determine the post count
  if (!$block) {
    $show_amount = variable_get('shoutbox_showamount_page', '30');
  }
  else {
    $show_amount = variable_get('shoutbox_showamount_block', '10');
  }
 
  // Output the existing shoutbox posts.
  $shoutbox_posts_data = _shoutbox_display_posts($show_amount, TRUE, TRUE);
 
  // JS Settings
  _shoutbox_js_config();
 
  // Theme output
  $output .= theme('shoutbox_page', $shoutbox_posts_data);
 
  if ($block) {
    // If block, show link to page
    $page_path = 'shoutbox';  
    shoutbox_invoke('link', $shout, $page_path);
    $output .= theme('shoutbox_block_page_link', $page_path);
  }
  else {
    // If page, show pagers
    $output .= theme('pager', NULL, $show_amount, 0);
  }
 
  return $output;
}
...
?>
0
0
aboros képe

a függvényt a template.php -ban mondjuk template_preprocess_node() -ban.. figyelsz, hogy ne teaser legyen és a nidje legyen az a nid amelyikben a video meg ezek a dolgok vannak. annak a nodenak a contentjehez hozzavarrod amit a fuggveny visszaad.
nem biztos hogy szepen mukodni fog mert lapozo is van benne.

akkor forditva, template_preprocess_page -ben figyeled hogy shoutbox pathon vagy e es ha igen a content ele varrod a nodeod tartalmat. (node_load -al megszerzed jol)

0
0

-
clear: both;

aboros képe

 theme('shoutbox_page', $shoutbox_posts_data);

ez azt jelenti meg kell valositania egy theme_shoutbox_page fgvt valahol. azt lemasolhatod es a template.php -ban SMINKNEVE_shoutbox_page neven olyanra modositod amilyenre akarod. (betolt node, elevarr..)

de egyebkent kereshetsz ilyesmi modult is, hogy node block, biztos van... azzal csinalsz blokkot a nodeodbol es berakod /shoutcast* utvonalra egy content top regioba..

vagy viewsal csinalsz egy db nezet ami blokkot allit elo es betolti fixen a nid 42 -t, aztan a blokkot berakod egy content top regioba

vagy felrakhatsz panelst is es aztan...

vagy meg biztos mashogy is.

0
0

-
clear: both;

makgab képe

Ez még nem ilyen egyszerű nekem. :) De kösz az infót.

Valami egyszerű megoldást keresek. Lehet hogy ez az, csak még ilyet nem csináltam. :)

0
0
Laza képe

A Shoutbox alapból tud blokkot nem?
Akkor már csak sminkelés, egymás alá rakod.

0
0
makgab képe

nekem ez még nem megy... sminkbe nem szeretek belenyúlni...

hogyan is működne ez?

0
0
Laza képe

Abba nem, de a modult fúrod? Érdekes...
A sminkelésnek is megvannak a maga szabályai drupalban (google alsmink, smink függvények)

Megingattál benne, hogy definiál-e a modul blokkot. Itt telepíteni nem tudok, de a .module file első kommentje a következő:

/**
 * @file
 * Shout box module displays a block for users to create short
 * messages for the whole site. Uses AHAH to update the
 * database and display content.
 */

Ezt pedig oda pakolod, ahová akarod...

0
0
makgab képe

Sminkbe nem nyúltam bele eddig, csal alsminket készítettem 1-2 apró módosítás miatt v. komplett sminket generáltattam egy progival.
De ez ugye, nem ugyanaz, hogy belenyulok a sminkbe.
Ez is egyszerű lesz később, ha már tudom mit miért teszek. :)

Segítenél (segítenétek) abban, hogy pontosan mire gondolsz, mit hova kellene beszúrni?

Innen indulok, ha minden igaz:
http://api.drupal.org/api/drupal/includes--theme.inc/function/template_p...

A template.tpl.php-ba (ha nincs ilyen, akkor létre kell hozni?):

<?php
template_preprocess_node($node);
// ide kellene beillesztenem a megfeleleő nid-et valahogy?
?>
0
0
asrob képe

hogy a shoutbox modul definiál neked alapból egy blokkot. Namost ezt a blokkot oda pakolod az admin/build/block oldalon ahová szeretnéd. Ahhoz hogy egy nodehoz tudd csatolni, trükközni kell, de nem lehetetlen vállalkozás szerintem.

0
0

--
Borsa Péter
https://peterborsa.eu

makgab képe

Igen, az meg is van. A blokk bent van az oldalsávban a többi blokk között.
A page része kellene (v. a blokk is jó), hogy egy létrehozott tartalomban jelenjen meg.

0
0
asrob képe

makgab képe

Ezt már én is néztem, de lehet hogy csak én nem látom hova kellene ezt beszúrni:

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

Ez kell a template.tpl.php-ba v. node.tpl.php-ba?

A paraméterek nem egészen világosak.
26: az ID=26 blockot szeretném beszúrni, ez ok.
A 'menu', 'block', 'view'-ban a 'block', hogy egy blokkot szeretnénk "beszúrni".
A 'menu', 'view'...?

0
0
Laza képe

makgab képe

Köszönöm, működik.
A 'admin/settings/filters' menüben az adott filterben engedélyezni kell az "insert_block" opciót, majd a tartalomban elhelyezhető:

[block:shoutbox=list]

Reméljük D7-ben is elérhető lesz.

0
0
aboros képe

a sminkreteg ujiatasai miatt ez a feladat szuperegyszeru lesz. (igazabol d6ban is az, kicsit elbonyolitottatok szerintem, egyszeruen a kerdeses blokkot be kellett volna rakni egy regioba a content ala es viszlat.)

0
0

-
clear: both;