Bueditor button Picassa kép beillesztéséhez

kisspepe képe

Sziasztok!

Még egy régebbi témában kerestem megoldást, hogy hogyan tudok a cikkekbe beágyazni Picassa-ra feltöltött képeket. Erre kaptam is egy nagyon jó kódot. Ehhez a kódhoz szeretnék egy Bueditor buttont, mely bekéri a megfelelő adatokat egy from-al, majd létrehozza a kódot.

Kerestem neten, hogyan lehetne megcsinálni, a Bueditor honlapját is néztem, de nem igazán sikerült összehoznom. A következő kódot kellene előállítania a gombnak:

<p style="text-align: center">
	<a 
		href="nagy kép webcíme" 
		rel="lightbox[1]" 
		title="Képaláírás">
 
		<img 
Fórum: 
Drupal verzió: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 

Saját megjelenítési módok Node displays modullal

Anonymous képe

Az új modul bemutatkozó videójának első részében olyan funkciókat ismertet a fejlesztő, amelyek segítségével a template.php preprocess hook-jaiban végzett programozás jó részét kiválthatjuk kattintgatással. HTML+CSS területről érkező, PHP-t nem ismerő sminkelők számára ez nagyon hasznos lehetőség, és még a Contemplate modulnál is kényelmesebb a használata.

crt képe

Szia.

Lehet, hogy nem a legszebb megoldás, én ilyet tettem.

A blokkoknál beállítod a php visszatérési értékétől függő megjelenést és az alábbi kódot beállítod:

$desired_vocab = array(5, 6); // put here the vocabulary ID you're interested in
 
// check taxonomy first
  if ( arg(0) == 'node' and is_numeric(arg(1)) ) {
    // Yes, we're viewing a node.
 
   $node = node_load(arg(1)); // cached
    foreach ($node->taxonomy as $term) {
      if (in_array($term->vid, $desired_vocab) ) {
        return TRUE;
      }
    }  
  }
 
  if ( ((arg(0) == 'taxonomy')
     && (arg(1) == 'term')
     && is_numeric(arg(2))
     && ($term = taxonomy_get_term(arg(2)))
     && (in_array($term->vid, $desired_vocab))) ) {
        return TRUE;
  }
return FALSE;

Ebben az esetben akkor látható a blokk, ha a megjelenített node az 5-ös vagy 6-os vid-el rendelkező szótár bármelyik kategóriájában szerepel, illetve ezen kategóriák listázó oldalán. Természetesen más feltételeket is meg lehet adni, csak egy példa volt.

Üdv: Zoli

0
0
thamas képe

A láblécben ez van: "by Dr. Radut" - gondolom ő rakta össze ilyen működésűre az oldalt, te pedig mint használó tartalmat raksz bele... :o)

A forráskódból részlet:

<thead><tr><th class="view-cell-header view-field-node-type">Típus</th><th class="view-cell-header view-field-node-title">Cím</th><th class="view-cell-header view-field-users-name">Szerző</th><th class="view-cell-header view-field-node-comment-statistics-comment-count">Válaszok</th><th class="view-cell-header view-field-node-comment-statistics-last-comment-timestamp">Legfrissebb tartalom</th> </tr></thead>
<tbody>
 <tr class="odd"><td class="view-field view-field-node-type">Írás</td><td class="view-field view-field-node-title"><a href="/?q=node/261">Észvesztő</a> </td><td class="view-field view-field-users-name"><a href="/?q=user/3" title="Felhasználói profil megtekintése.">dióhéj</a></td><td class="view-field view-field-node-comment-statistics-comment-count">4</td><td class="view-field view-field-node-comment-statistics-last-comment-timestamp"><em>10 óra 33 perc</em> ago</td> </tr>

Ez erősen arra utal, hogy a views dolgozik a háttérben. Sőt a beépített views funkciók között van egy tracker megvalósítás is. Ráadásul az url path-ot is be lehet állítni úgy, hogy a views listára mutasson.

Egyébiránt pedig a kérdésre: ahhoz, hogy ez a lista fülön jelenjen meg, szerintem bele kell nyúlni a user modul kódjába. Helytte azt kellen inkább megnézned, hogy milyen változóval helyttesítheted az url-ben a user azonosítóját - ezt most nem tudom kapásból...

0
0

Üdvözlettel:
Hajas Tamás

Paal képe

Az utókor számára:

1.

<?php
if (!( arg(0) == 'node' && is_numeric(arg(1)) )) {
  return;
}
 
$node = node_load(arg(1));
 
$category = $node->field_category_id[0]['value'];
print t('Products in category @category', array('@category' => $category));
 
$view_name = 'same_product';
$limit = 0; // number of returns
$view_args = array($category);
$view = views_get_view($view_name);
print views_build_view('embed', $view, $view_args, FALSE, $limit);
?>

2.

<?php
$nid = arg(1);
$parent_node = node_load($nid);
$category = $parent_node->field_category_id[0]['value'];
?>
[view:same_product==<?php print $category; ?>]

Ennél a megoldásnál engedélyezni kell az insert_view funkciót a "PHP code" beviteli formánál. A szűrők sorrendjénél fontos, hogy előbb legyen a PHP és utána az Insert View.

Nagyon köszönöm!
Csütörtökön a sört én fizetem nektek, ha jöttök!

0
0

--
Palócz Paal Pál, a drupal.hu admin csoportjának tagja
Ajánlott olvasmány: Eric Steven Raymond - Hogyan kérdezzünk okosan

Aspi képe

Csak azt nem értem, ha nem adja meg a loginnál a usernevet, akkor hogy találja meg a hozzávaló jelszót?
Mindenképp kell egy user a beléptetésnél.

Persze ha nagyon ragaszkodunk csak a jelszóhoz, akkor lehetne esetleg IP alapján. Ha nincs fix IP akkor bajos, bár akkor is lehet tartományt nézni az IPv4-nél az utolsó szám változik akkor egy tartomámnyon belül. (IPv6-nál már némiképp macerásabb) Ráadásul ha van pár VIP és nem VIP tag is ugyanabból a tartományból már nem jó.

A minap írtam egy modult IP cím bekérésre PHP-ban. Remélem használ, de szerintem azonosításra csak beléptetés után alkalmas. Pl. belétetéskor megnzzük az IP címét is és tároljuk. Aztán ezt azt csinálhatunk vele.

Itt a kód, ami a látogató valós címét adja vissza. Include-dal be lehet rakni ahova akarod.

 // A felhasználó ip címét kérdezi le.
 
function getip()
{
    if (isset($_SERVER))
    {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
        {
            $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        }
        elseif (isset($_SERVER["HTTP_CLIENT_IP"]))
        {
            $realip = $_SERVER["HTTP_CLIENT_IP"];
        }
        else
        {
            $realip = $_SERVER["REMOTE_ADDR"];
        }
    }
    else
    {
        if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )
        {
            $realip = getenv( 'HTTP_X_FORWARDED_FOR' );
        }
        elseif ( getenv( 'HTTP_CLIENT_IP' ) )
        {
            $realip = getenv( 'HTTP_CLIENT_IP' );
        }
        else
        {
            $realip = getenv( 'REMOTE_ADDR' );
        }
    }
    return $realip;
}
0
0
mapdesign15 képe

Leginkább az elrendezés miatt van szükségem az advanced catalog-ra, mert sok plusz lehetőséget is kínál (mint: több fajta megjelenés, elrendezés).

Sajnos az alap "uc_catalog" modulja sem képes megfelelően működni, dettó nem fut le a MySQL parancs. Egyébként nagyban egyeznek is:

// uc_catalog.pages.inc on line 95
  $sql = "SELECT DISTINCT(n.nid), n.sticky, n.title, n.created, p.model, p.sell_price, p.ordering
    FROM {node} n
      INNER JOIN {term_node} tn ON n.vid = tn.vid
      INNER JOIN {uc_products} AS p ON n.vid = p.vid
    WHERE tn.tid = %d AND n.status = 1
      AND n.type IN (". db_placeholders($types, 'varchar') .") ". $order;
 
  $sql_count = "SELECT COUNT(DISTINCT(n.nid))
    FROM {node} n
      INNER JOIN {term_node} tn ON n.vid = tn.vid
      INNER JOIN {uc_products} AS p ON n.vid = p.vid
    WHERE tn.tid = %d
      AND n.status = 1
      AND n.type IN (". db_placeholders($types, 'varchar') .")";
 
  $sql = db_rewrite_sql($sql);
  $sql_count = db_rewrite_sql($sql_count);
  $sql_args = array($catalog->tid);
  foreach ($types as $type) {
    $sql_args[] = $type;
  }
  $catalog->products = array();
  $result = pager_query($sql, variable_get('uc_product_nodes_per_page', 12), 0, $sql_count, $sql_args);
 
  while ($node = db_fetch_object($result)) {
    $catalog->products[] = $node->nid;
  }

Nem tudom, hogy mi lehet a probléma. De a pager_query valamiért nem úgy fut le ahogy kellene.

0
0
makgab képe

Adott két input text mező (edit-city, edit-address). Hogy kellene a JS-ben ezt öszevonni?
Azt szeretném, hogy a várost és a címet is keresse.

Így próbáltam a kódot módosítani:

// gmap-locate.js
$(document).ready(function(){
   	$('#edit-city').blur(function() {
      prettyPrint();
      map = new GMaps({
        div: '#map',
        lat: -12.043333,
        lng: -77.028333
      });
        GMaps.geocode({
          // address: $('#edit-city').val().trim(), <-- ez volt az eredeti
          address: $('#edit-city'+' '+'#edit-address').val().trim(),
          callback: function(results, status){
            if(status=='OK'){
              var latlng = results[0].geometry.location;
              map.setCenter(latlng.lat(), latlng.lng());
              map.addMarker({
                lat: latlng.lat(),
                lng: latlng.lng()
              });
            }
          }
        });
    });
  });

Az eredeti kódban az edit-city mezőbe beírva a várost és a címet működik a kód:

address: $('#edit-city').val().trim(),

Viszont a város és cím két külön mezőbe kerül és ezt szeretném összehozni.
0
0