KaoszNagymaester képe

Na, sikerült megoldanom a problémát. Szóval ami a baj volt:
"Katalógus nézetnek az übercart saját katalógus modulját használnám, mert majdnem teljesen megfelelne, de az ár oszlopba minden esetben az akció nélküli árat jeleníti meg. "

A megoldás:
Az uc_product.module fájlt kell módosítani.

Ezt a sort kell lecserélni:

$data['price'] = array('#value' => uc_price($node->sell_price, $context, $options), '#cell_attributes' => array('nowrap' => 'nowrap'));

Erre:

      $discounted_price = theme("get_discounted_price", $node); 
      if ($node->sell_price < $discounted_price){ 
        $data['price'] = array('#value' => '<div id="akcios_ar">' . uc_price(($discounted_price * 0.8), $context, $options) . '</div><div id="akcios_normal_ar">' . uc_price($node->sell_price, $context, $options) . '</div>', '#cell_attributes' => array('nowrap' => 'nowrap'));
      } else {
          $data['price'] = array('#value' => uc_price($node->sell_price, $context, $options), '#cell_attributes' => array('nowrap' => 'nowrap'));
      }

A formázási lehetőséget is beletettem, a style.css-ben a következőképp formáztam:
#akcios_ar{
  color: #FF0000;
  font-weight: bold;
}
#akcios_normal_ar{
  text-decoration: line-through;   
}

Így a régi ár át lesz húzva, az új pedig piros és félkövér lesz. :)

2 szépséghiba van csak:
- Modul fájlt módosítottam, próbáltam kitenni a fv-t a template.php-ba, de úgy nem működött. Frissítésnél majd figyelni kell.
- A fenti megoldásban kétszer számol ÁFÁ-t (VAT modul telepítve van) ezért 0.8-al megszoroztam a kedvezményes árat. (ÁFA változásnál erre figyelni kell)

0
0
Sk8erPeter képe

Ha már a Search modult hoztad fel példaként, gyorsan leírom, hogy működik, hátha ad egy ötletet:
1.) itt a search_box() függvény definiálja a Search modulhoz tartozó, blokkokban látható űrlapot

2.) amikor submitolod, a feldolgozás a search_box_form_submit() függvényben történik, itt van egy redirect:

$form_state['redirect'] = 'search/node/' . trim($form_state['values'][$form_id]);

Tehát pl. ha rákeresel az "asd" kulcsszóra, akkor ezen a címen landolsz:
/search/node/asd

3.) A search_menu() függvény meg is határozza, ezen a címen minek is kellene történnie:

  foreach (module_implements('search') as $name) {
    $items['search/' . $name . '/%menu_tail'] = array(
      'title callback' => 'module_invoke', 
      'title arguments' => array($name, 'search', 'name', TRUE), 
      'page callback' => 'search_view', 
      'page arguments' => array($name), 
      'access callback' => '_search_menu', 
      'access arguments' => array($name), 
      'type' => MENU_LOCAL_TASK, 
      'parent' => 'search', 
      'file' => 'search.pages.inc',
    );
  }

ha a Node modul implementálja a hook_search() függvényt, akkor annak megfelelően alakulnak a továbbiak (node-ok tartalmában, címében, stb. keres) - márpedig implementálja: node_search().

4.) Meghívódik a search_view() az előbb említett search_menu() miatt ('page callback' => 'search_view',).

5.) Meghívódik a search_form(), ami rendereli a Search-höz tartozó formot, mégpedig ezért:

$output = drupal_get_form('search_form', NULL, $keys, $type);

6.) A node_form_alter() még beszúrja az "Advanced search" formot is.

Az egészből a lényeg, ami a Te feladatodat érintheti: a Search modulban úgy van megoldva, hogy a címben adódik át a keresendő tartalom, eszerint jeleníti meg a formot, és keres rá a tartalomra.

Neked egy ilyen megoldás megfelel, amivel a modulodban a hook_menu()-t implementálod, és az említetthez hasonlóan adod át a szükséges paramétert?

4
0

Lokalizált telepítési profil készítése

gergely képe

Abba a problémába ütköztem, hogy egy olyan telepítési profilt szerettem volna létrehozni Drupal 6-os verziója alatt, ami telepítés után nem angol, hanem magyar lesz.

Meg is írtam a profil fájlt ahogyan le van írva a nagy könyvben, azaz létrehoztam - ebben az esetben - az example.profile fájlt a /profiles/example könyvtárban ezzel a tartalommal:

Anonymous képe

Na, amikor azt olvastam, hogy ehhez nekem kell fejleszteni, bizony kicsit elkeseredtem :(
Viszont a problémát az elkeseredésemmel együtt sikerült viszonylag hamar megoldani. Tanulságul leírom, hogy mindössze a ennyit kell csinálni: a codefilter.module 37 sora után szúrjuk be a következőt:
$text=str_replace("< br / >","",$text); [csak a tag-et nem így írjuk, hanem a kacsacsőröl előtt-után szóköz nélkül ;]
Igaz, ez esetleg olyan szövegrészeket is kivesz, amiknek a kódban lett volna a helyük, bár nem valószínű, ha a szűrőket így rendezzük: HTML átalakító, sortörés, codefilter.
Köszönöm mindenkinek a segítséget.
Toma
ui: találtam egy jó kis modot phpBB fórumhoz, ami tetszőleges nyelven írt forrást syntax highlighinggal lát el, most éppen azon ügyködöm, hogy ezt valahogy összehekkeljem a drupalal.

0
0
Hojtsy Gábor képe

Hát éppenhogy az tud keresni, akinek van adata valamiről, amiben keresni tud. Akihez nem törtek be, annak nincs tényanyaga, amin el tud indulni, egy olyan programban, mint a Drupal meg akárhányfelé el lehet indulni, ha nincs támpont. A biztonsági csoport éppen arra alakult, hogy sokfelé elinduljon, és tisztázza a Drupal magot, valamint a beérkező jelentéseket is kezelje.

Mint minden hibabejelentéssel, egy ilyen kijelentéssel is akkor tudnak valamit kezdeni a fejlesztők (vagy a többi használó), ha konkrét reprodukálható folyamatot mellékelsz (a php.net-en például rögtön dobják a hibajelentésedet, ha nem adsz be reprodukálható leírást vagy szkript részletet). Egy biztonsági hibánál ez külön kritikus, mert enélkül csak rossz fényt vet a termékre, ennek nyilvánosságra hozása széles körű javítás nélkül viszont káros a meglévő felhasználói bázisra. Ezért megértem a feszültséget a jelenlegi felhasználókban, akik sokat fektettek már a Drupalba, megértem, hogy mérgesek, ha valaki jól látható alapok nélkül vádaskodik, de ugyanakkor megértem, ha biztonsági megfontolásokból nem tárják nyilvánosságra a jól látható alapokat azok, akik már tudják, hogy hibát lehessen javítani. Ez azonban csak bizonytalanságot szül, ami nem jó...

Ezért remélem, hogy a biztonsági csoportnak beküldött logjaitok alapján születik egy ítélet a Drupal ellen vagy mellett, és azonosított hiba esetén javított verzió is elérhető lesz.

0
0
Schmile képe

Mi nincs? Az includes/bootstrap.inc fájlban keresd meg azt a sort, hogy

$script = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') === false) ? 'index.php' : '';

ezt cseréld ki erre:

$script = 'index.php';
0
0
Anonymous képe

Köszi szépen!
Most már működik. Gondolva az utánam kezdőkre ideírnám a megoldást is:

&lt;ul&gt;
&lt;li class="leaf"&gt;&lt;a href="http://url"&gt;Link szövege&lt;/a&gt;
&lt;/ul&gt;
0
0
ninja képe

én sem értem pontosan. ha bizonyos mezőket szeretnél eltüntetni a module szerkesztése nélkül, akkor megnézed az oldal forrássát, kibogarászod a nem kívánt elem id-jét, class-át, és eltünteted a CSS-ből.

valami ilyesmit kell írnod a CSS-be:

.profile .field_neve {
  display: none;
}

ha nem tünik el, mert van valami display tulajdonsága (inline, block, etc.) akkor:

.profile .field_neve {
  display: none!important;
}

ps: érdemes minden olyan változtatást, amit tovább szeretnél vinni, függettlenül attól, hogy milyen sminket használsz, egy külön CSS fileba írni.

ninja
http://alleycat.hu

0
0
aries képe

A page.tpl.php HEAD részébe tessék ezt beletenni.

<?php
echo '
<script type="text/javascript" language="JavaScript">
document.write(\'<if\'+\'rame width="468px" height="60px" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" frameborder="0" scrolling="no" style="border:0px;overflow:hidden;width:468px;height:60px;" src=" http://hu.search.etargetnet.com/generic/generic.php?ref=3103&target=_new&js=1&q=\'+escape(x_location.href)+\'&css=blue&area=468x60"></if\'+\'rame>\' );
</script>'."\n";
 
 
?>

(Mit is mondtál, mennyit ér meg Neked az, hogy fórumon rakjuk össze a melóidat?)

Aries
http://aries.mindworks.hu

0
0
pp képe

  drupal_add_js( drupal_get_path('theme','smikneve') .'/fajneve.js','theme');

Ha több js fájl is van, akkor azokat érdemes egy külön könyvtárban gyűjteni. Ekkor a /fajneve.js helyett a /konyvtar/fajneve.js "formulát" kell használni.

Az esetek 99 százalékában ez a megoldás felesleges, de nem árt megszokni, hátha egyszer egy olyan sminket kell készítenünk, ahol ez számít. Mondjuk egy multisite rendszernél, ahol van x fizetős sminked. Ekkor csak a megfelelő sites/example.com/themes könyvtárba kell bemásolnod a sminket, és nem kell a sminken módosítanod. Azt csak félve mondom, hogy esetleg egy olyan sminket csinálsz, amit meg szeretnél osztani a nagyközönséggel...ja és ha megszokod, akkor ezt modul fejlesztésnél is használhatod.

pp

0
0