szabozee képe

Először is köszönöm a válaszodat. Természetesen így, ahogy írtad #ajax-szal és még számtalan egyéb módon is meg lehet oldani a példának felhozott feladatot. A kérdés viszont nem a példa megoldása, hanem az, hogy a #states funkcióit hogyan lehet szép drupálos megoldással ( például egy modullal ) úgy bővíteni, hogy alapból nem támogatott új paramétereket is lehessen használni a #states-ban. Azért fontos így, hogy más projekteknél is lehessen ugyanazt a kódot(modult) használni és hogy konzisztens maradhasson a kód. Ilyenre gondoltam nagyjából az eredeti példánál maradva:

  1. '#states' => array(
  2. 'disabled' => array(
  3. 'input[name="gombok"]' => array('value' => 'csakegy' ),
  4. ),
  5. 'updatevalue' => array(
  6. 'select[name="lista"]' => array('value' => '3' ), // 3 = pálinka
  7. ),
  8. ),
0
0

szabozee (zee zee zee kukac free mail pont hu)

aboros képe

az olyan, mint amikor adminként vagy belépve és látod egy oldal címe alatt, hogy "szerkesztés" "megtekintés" "verziók" ("fordítás", megmégami)

a hook_menu() -ben kellene létrehoznod ezeket az "évad" menüpontokat úgy, hogy mindegyiknek a típusa MENU_LOCAL_TASK legyen.

mutatok egy példát.
van egy nagy autómárka oldala. ezen vannak az autótípusok (ez egy tartalomtípus(node type)). minden ilyenhez filefieldel lehet csatolni különféle táblázatokat, "műszaki paraméterek", "felszereltség", "árak", "finanszírozás", stb. a példában egy saját modullal az ilyen node type megnézéséhez létrehozok saját MENU_LOCAL_TASK -okat, amik mind ugyan azt a függvényt hívják (ami táblázatot csinál a fileból) csak más filet adnak át a paraméterben.

ennek a "szisztémának" a hook_menu() -je:

function renault_customtabs_menu() {
  $items['node/%node/arak'] = array(
  	'title' => 'Prices', 
  	'page callback' => 'renault_customtabs_render_csv',
  	'page arguments' => array(1, 2),
  	'access callback' => 'renault_customtabs_access', 
  	'access arguments' => array(1),
  	'weight' => -9,
  	'type' => MENU_LOCAL_TASK,
  );
  $items['node/%node/opciok'] = array(
  	'title' => 'Options', 
  	'page callback' => 'renault_customtabs_render_csv',
  	'page arguments' => array(1, 2),
  	'access callback' => 'renault_customtabs_access', 
  	'access arguments' => array(1),
  	'weight' => -8,
  	'type' => MENU_LOCAL_TASK,
  );
  $items['node/%node/muszaki_parameterek'] = array(
  	'title' => 'Technical details', 
  	'page callback' => 'renault_customtabs_render_csv',
  	'page arguments' => array(1, 2),
  	'access callback' => 'renault_customtabs_access', 
  	'access arguments' => array(1),
  	'weight' => -8,
  	'type' => MENU_LOCAL_TASK,
  );
  return $items;
}

remélem jó megoldást adtam és érthető is.

0
0

-
clear: both;

Patuzzi képe

Nem tudtam megoldani (szerény tudásommal) Views 2 API-val egy lekérdezést, ezért gondoltam a saját Select-re.
Tényleg a Select eredményét szerettem volna átadni a Views-nak rendezés, szűrés miatt, ne kelljen azt megírni.

De itt az API problémám, múltkor is kaptam tőletek segítséget:

Táblák: USERS(Drupal saját) <- FB_KEZELO <- FB_CEG
API-val az első kettőt sikerült összekötni, megjelentek a Views2 UI-ban, de FB_CEG-et FB_KEZELO-vel már nem, akkor sem ha az összekötő mező ugyanolyan nevű (cg_id).
A "cg_megnev" mezőt nem tudom a listába felvenni.

Pedig az Advanced Help is így írja le:

function freebus_views_data() {
 
  $data['fb_kezelo']['table']['group']  = t('FreeBus kezelő csoport');
 
  $data['fb_kezelo']['table']['join'] = array(
    'users' => array(
      'left_table' => 'users',
      'left_field' => 'uid',
      'field' => 'kz_uid',
      'type' => 'INNER',
     ),
  );
 
  $data['fb_kezelo']['kz_jog'] = array(
    'title' => t('Jog'),
    'help'  => t('Jogosultság'),
    ...
  );
 
  //------------------------------------------------------
  $data['fb_ceg']['table']['group']  = t('FreeBus cég csoport');
 
  $data['fb_ceg']['table']['join'] = array(
    'fb_kezelo' => array(
      'left_table' => 'fb_kezelo',
      'left_field' => 'kz_cg_id',   // ha 'cg_id', akkor sem jó!
      'field'      => 'cg_id',
      'type'       => 'INNER',
     ),
  );
 
  $data['fb_ceg']['cg_megnev'] = array(
    'title' => t('Cégnév'),
    'help'  => t('FreeBus cég neve'),
    ...
  );
  return $data;
}
0
0
zoliky képe

Letrehozom a page-node.tpl.php fajlot a kovetkezo kodal:

<div id="box">
  <?php if ($show_messages) { print $messages; } ?>
  <?php if ($title) { print '<h1 class="title">'. $title .'</h1>'; } ?>
  <?php if ($tabs) { print '<div class="tabs">'. $tabs .'</div>'; } ?>
  <?php print $help; ?>
  <?php print $content; ?>
   <?php print $feed_icons; ?>
</div>

#box {
  border: 1px solid #ccc
  margin-bottom: 10px;
}

Az osszes node egyetlen egy keretbe lesz. Mindegyik nodet kulon keretbe szeretnem, elvalasztva egy kis helyel.

Jeno az otleted jo de valahogy nem az igazi megoldas. Szerintem inkabb a node.tpl.php fajlot kene valahogy modositani.

Megprobaltam igy:

1. Letrehoztam egy altalad javasolt page-node.tpl.php fajlot, es abbol kiszedtem a page cimet:

<div id="content">
  <?php if ($show_messages) { print $messages; } ?>
  <?php //if ($title) { print '<h1 class="title">'. $title .'</h1>'; } ?>
  <?php if ($tabs) { print '<div class="tabs">'. $tabs .'</div>'; } ?>
  <?php print $help; ?>
  <?php print $content; ?>
  <?php print $feed_icons; ?>
</div> <!-- #content -->

Igy megszabadulok a cimtol a node tipusu tartalmaknal (hala az istennek!) es bekapcsolom inkabb a node cimet a node.tpl.php fajlba:

<?php //if (!$page): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php //endif; ?>

Igy mukodne a dolog, es akkor lehet a .nodet is keretbe rakni kulon div nelkul.

0
0
aboros képe

gondolom a Global: View result counter mezőt használod. azért nem lesz jó az, mert az egy rendes mező, saját mechanizmusa van és a $view objectben lévő index vagy melyik tulajdonságot használja, macerás lesz manipulálni.

látom, hogy egy táblázat nézetről van szó. views-view-table.tpl.php -ban tudod ezt variálni ugye, ilyesmit csinálnék:

<?php static $row_count = 1; #cinalunk egy sajat statik szamlalot ?>
<table class="<?php print $class; ?>"<?php print $attributes; ?>>
  <?php if (!empty($title)) : ?>
    <caption><?php print $title; ?></caption>
  <?php endif; ?>
  <thead>
    <tr>
      <th>#</th> <?php #fejlechez hozzadjuk az oszlop, hogy ne csusszon el az ?>
      <?php foreach ($header as $field => $label): ?>
        <th class="<?php print $header_classes[$field]; ?>">
          <?php print $label; ?>
        </th>
      <?php endforeach; ?>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($rows as $count => $row): ?>
      <tr class="<?php print implode(' ', $row_classes[$count]); ?>">
        <td><?php print $row_count++; ?></td> <?php #minden sor elejere szepen berakjuk a megnovelt sorszam, orulunk ?>
        <?php foreach ($row as $field => $content): ?>
          <td class="<?php print $field_classes[$field][$count]; ?>">
            <?php print $content; ?>
          </td>
        <?php endforeach; ?>
      </tr>
    <?php endforeach; ?>
  </tbody>
</table>

kipróbáltam persze, megy ;)
https://skitch.com/aboros/ri856/recent-posts-playground

0
0

-
clear: both;

Sk8erPeter képe

Dokumentáció alapján:
http://fancyapps.com/fancybox/#examples

lásd például az "Inline" tartalom megjelenítését, a link:

<a class="various" href="#inline">Inline</a>

ez az inline id-vel ellátott DOM-elem tartalmát fogja megjeleníteni, ami most a példaoldalon ez:

  1. <div id="inline" style="width: 500px; display: none;">
  2. <h2>Lorem ipsum dolor sit amet</h2>
  3.  
  4. <p>
  5. <a id="add_paragraph" class="button button-blue" href="javascript:;">Add new paragraph</a>
  6. &nbsp;
  7. <a href="javascript:$.fancybox.close();">Close</a>
  8. </p>
  9. <p>
  10. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  11. </p>
  12. </div>

Szóval magyarul egy lehetőség, hogy egyszerűen elrejted az adott mezőt, de megjelenítesz hozzá egy fentihez hasonló linket, ami az adott tartalom id-jára mutat anchorral (#valamiazonosito).

Aztán megjelenítheted iframe-ben is:

  1. <a class="various" data-fancybox-type="iframe" href="/demo/iframe.html">Iframe</a>

Nyilván a megfelelő osztállyal (class) kell helyettesíteni, itt a példában a various class-szel ellátott elemekre inicializálta a FancyBoxot (lásd JavaScript-fül).

Aztán AJAX-szal is be lehet tölteni természetesen tartalmat:

<a class="various fancybox.ajax" href="/demo/ajax.php">Ajax</a>

Na, de ott van a lehetőségek széles tárháza, a dokumentáció egész bőbeszédű. :)

1
0
ipeto képe

Alapvetően persze nagyon egyszerű elemekről van szó, viszont a hajam kihullott, mire összeraktam, lévén ilyesmivel eddig nem foglalkoztam.

A feladatban egy Leaflet térképet kell megjeleníteni az overlayen. A címet bekértem egy mezőben, majd ebből egy geofield-del lett térképi információ. Alapesetben ebből egyszerű Leaflet-térképet csinálni, csak a megjelenési formáját kell Leaflet-re állítani. Viszont itt a fenti megoldás érdekében köré kell rakni egy div-et: <div id="inline" style="width: 400px; display: none;">
Mivel amúgy is használok Display Suite-ot az oldalon, meg más ötletem nem volt, készítettem egy code field-et a DS-tal. Itt jött a következő gond: Nem találtam olyan tokent ami eleve a Leaflet-térképet adja vissza, csak a koordinátákat lehetett lekérdezni. Tehát kódból kellett generálni a térképet:

  1. $map = leaflet_map_get_info('OSM Mapnik');
  2. $map['settings']['zoom'] = 15;
  3.  
  4. $lon=$entity->field_vm_sell_map['und'][0]['lon'];
  5. $lat=$entity->field_vm_sell_map['und'][0]['lat'];
  6.  
  7. $features = array(
  8. 'type' => 'point',
  9. 'lon' => $lon,
  10. 'lat' => $lat
  11. )
  12. );
  13. print leaflet_render_map($map, $features, "400px");

Itt az tartott el egy jó darabig, amíg megtaláltam, hogy sima PHP-mezőben nem érhető el az $entity objektum, ehhez a Display Suite code szükséges.

Ez már szuperül kirajzolja a térképet, viszont ha elrejtem a div-et, akkor a felugró overlay-en csak egy szürke mező jelenik meg :( Újabb néhány órás keresgélés után megtaláltam, hogy előbb kell generálni a térképet és utána elrejteni. Így végül a DS-mezőbe még odabiggyesztettem ezt a kis div-bezáró jquery-kódot:
drupal_add_js('jQuery(document).ready(function () { jQuery("#inline").hide(); });', 'inline');

Persze simán lehet, hogy túlbonyolítottam, de azért jó kis feladat volt...

0
0

AD Flash modul hibajavítása - jó így?

szantog képe

Az AD Flash modul nem kezeli az Advertisment modul általános beállításainál kiválasztható Click-through target értéket. Konkrétan azt jelenti, hogyha itt beállítjuk, hogy új böngészőablakban jelenjen meg a link, akkor az nem csinál semmit flash reklámoknál. A modulhoz ilyen issue-t nem találtam.
Beletúrva a modulba láttam, hogy márpedig az AD Flash dolgozik ezzel a változóval, mégpedig a theme függvényében:

function theme_ad_flash_render($ad, $flash) {
 
	// Get the groups (terms) this ad belongs to and use the first one
Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 

Dox.hu szeretném telepíteni

Anonymous képe

Sziasztok!
Az elmúlt 1-2 héten kipróbáltam szinte valamennyi CMS-t Xoops, Mambo, Nuke, Textportál, végül a Drupal mellett döntöttem, szigorú és átlátható szabályai miatt. Sejtettem, hogy nem lesz könnyű. A telepítésben eljutottam addig, hogy beírtam a lapom url-jét, megjelent a csepp is, ám fölötte a következő sorokat láttam (látom):

Warning: ini_set() has been disabled for security reasons in /www-users/m/g/mgi/sites/default/settings.php on line 105

Warning: ini_set() has been disabled for security reasons in /www-users/m/g/mgi/sites/default/settings.php on line 106