Keresés

Übercart és CiviCRM

uniquevisitor képe

Sziasztok!

Meglévő webáruházamat szeretném átalakítani joomla virtuemartról drupal übercart+civicrm-re. A telepítés sikerült és az összekapcsolás is. http://www.ubercart.org/contrib/3762

Amikor regisztrál a felhasználó az oldalra, akkor automatikusan csak a civicrm-be kerülnek be az adatai, az übercartba nem. Tehát ha bejelentkezés után vásárol valamit, akkor újra meg kell adnia a már megadott adatokat. Mit lehetne tenni, hogy ekkor kiválaszthatóak legyenek a regisztrációkor már megadott számlázási (szállítási adatok)? (mint amikor már rendelt valamit, és választható a "Elmentett címek" között a checkout oldalon)

Ha engedélyezem a Bolt adminisztráció/Testreszabás/Fizetési beállítások oldalon http://localhost/admin/store/settings/checkout/edit az Anonymous fizetés engedélyezése opciót akkor rendeléskor az übercart felületén kell megadni a számlázási (szállítási) adatokat és automatikusan bekerül a civicrm-be is az adat. (Ez csak negyed megoldás, mert a felhasználó így nem jön létre a drupalban, de legalább a civicrm és az übercartban azonos infók vannak, amit csak egyszer kellett megadni. Ettől függetlenül, lehet, hogy valaki előbb regisztrációval kezd és utána belép majd rendel, amikor szintén előjön a fenti probléma)

Hogyan lehetne ezt a folyamatot felhasználóbaráttá tenni?

köszönöm szépen

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

Csökkentett tudású admin felület?

Luigi.hu képe

Van egy barátom, aki szeretne egy egyszerű weboldalt. Én elkészítem neki az oldal szerkezetét Drupalban, ő pedig majd feltölti azt tartalommal.
Nincs sok köze az informatikai dolgokhoz, ezért a lehető legegyszerűbb admin felületet szeretném neki adni, de a "normál" admin felület, pl. egy írás beküldése, írás tartalmának módosítása, menü nevének átírása, stb. neki túlságosan sok lehetőséget kínál fel, ami számára bonyolult és esetleg el is ronthat vmit.

A kérdés az, hogyan tudok létrehozni vmi modullal, opcióval, akármivel olyan csökkentett tudású admin felület, amin csak az általam engedélyezett beállítások jelennek meg (pl. új témánál csak a szöveg címe és a tartalom)?
Köszi.

Drupal verzió: 

Egy sorban több "hír"

pinyooooo képe

Lehet, hogy amiről kérdezek, teljesen alap dolog. Lehet, hogy már százezerszer meg lett válaszolva. Ha így van, előre is elnézést, én nem találtam.

Problémám a következő:
Hogyan lehet, megcsinálni, hogy a node-ok(hír, írás, nevezzük aminek akarjuk), három oszlopban jelenjenek meg, viszont ne legyen kategóriákra bontva, egyszerűen időrendi sorban balról jobbra, fentről le. Persze ha nem muszáj, programkódba turkálás nélkül szeretném megoldani.

Előre is köszönöm!

pinyÓ

Drupal verzió: 

Hirdetés beküldése webformmal vagy anélkül?

wildface86 képe

Sziasztok!

Egy apróhirdetéses portált szeretnék létrehozni, ezzel kapcsolatbann szeretném a tanácsotokat kérni. A modulok, amelyeket fel fogok használni : CCK, view, taxonomy, content_taxonomy, classified ads, hierarchial select. Ide jön akkor még a conditional fields modul, amit még soha nem használtam,de ha ahogyan olvastam szükségem lesz rá, a mezöktöl függően való megjelenítéshez ( csodás ez a magyar nyelv:) ). Az elképzelésem - létrehzok tartalomtípusokat, mindegyiket a megfelelö mezökkel, gondolom majd itt kellesz a conditional fields hogyha kiválasztok beküldésnél egy legördülölistából egy tartalomtipust akkor az ehez tartozó mezők jelenjenek meg. Beküldés, na itt vagyok gondban. Ezt most webformmal kellesz megoldanom ( amit nem szeretnék) vagy van rá más megoldás?

Drupal verzió: 

Tömeges képfeltöltés egyedi mappákba

ipeto képe

Sziasztok!

A következőt kellene megoldanom: Az oldalra viszonylag nagy mennyiségű képet kell feltölteni, galériákba rendezve. A megjelenítést szépen össze is kattogtam cck, views stb. segítségével, a feltöltéshez pedig az Image FUpload modul tűnt a leginkább célszerűnek.
Alapesetben működik is, viszont jó lenne a fotókat galériánként külön mappába tárolni, amihez a mezőbeállításoknál adtam meg alternatív elérési utat. Namost ezt a Image FUpload nem igazán kezeli jól: létrejön a mappa, viszont a képeket nem másolja bele, hibaüzenetként meg ezt kapom: "The path is already in use. All queued images were deleted." Egyetlen egyszer kerültek a képek a helyükre, azóta se tudtam azt reprodukálni.
A hibát amúgy jelentették a drupal.org-on is (http://drupal.org/node/551754 ), de nekem a legutolsó patch sem segített.
Szóval a kérdés, hogy oldott-e meg valaki hasonló feladatot FUpload-dal, vagy valami egész más modult próbáljak?

Előre is köszönöm!

Drupal verzió: 

Conditional fields használata, hogyan?

wildface86 képe

Létrehoztam egy tartalomtípust Apróhirdetések néven. Létrehoztam ezen kívül tartalomtípusokat, amelyek az apróhirdetések típúsát jelzik, kategóriánként különböző mezőkkel. Szeretném megoldani hogyha beküldök egy apróhirdetést akkor ha kiválasztom, hogy milyen kategóriájú a hirdetés akkor a megfeleló kitöltendő mezők jelenjenek meg. Elvben erre való a conditional fields modul. de sehogysem tudom életre kellteni. A kategóriákat node referencel akartam kapcsolni az apróhirdetések típushoz, csak hát ott nem a tartalomtípusok jönnek eló, hanem a tartalmak, ami egyértelmű tehát itt én néztem el a dolgot. Tudna valaki segíteni abban hogy mi lenne a helyes irány? Előre is köszönöm.

Drupal verzió: 

taxonómia szabad címkézés másként

andrew képe

Sziasztok,

Nem találok megoldást a problémámra így a segítségetek kérem.

Alap szituáció:
- Van egy tartalom típushoz kapcsolt szótár
- A többszörös választás engedélyezett
- A szótár kifejezései hierarchikus módon 3 mélységi szintig nyúlnak
- Tartalom beküldésekkor a hierarchical select segítségével lehet kiválasztani a vonatkozó kifejezéseket

Probléma:
Kiválasztott kifejezésenként volna szükségem egy szabad címkézési felületre, de leginkább egy taxonomy-tól független szövegmezőre.

Tehát kiválasztom a szótárból az A -> B -> C kifejezésláncot, majd ehhez meg kellene tudnom adni egy szöveges információt. Aztán szintén ennél a node-nál kiválasztom az A -> B -> D kifejezésláncot és ahhoz is meg kellene adnom egy szöveges információt.
Fontos, hogy a szöveges információk az adott kifejezéslánchoz kapcsolhatók legyenek.

Kizárt lehetőség:
A megadandó szöveges információk nem kategorizálhatók, mindig változnak és ha free tagging lenne akkor elcsúfítaná az egyébként szépen felépített szótár kifejezés listát.

Kérdés:
Milyen módon lehetne megoldani a felvázolt problémát?
Bármilyen ötletet vagy javaslatot szívesen fogadok!

Előre is köszönöm.

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

Drupal kódolási stílus

snufkin képe

Behúzások és sortörések

Egy behúzás két szóköz méretű, példa:


if (empty($valami)) {
echo "Teljesen be vagyok húzva."
}

A sorok végen ne legyen szóköz, utolsó karakter után legyen új sor. Minden fájl végén legyen egy üres sor: ez azért van, hogyha patchet készítesz, akkor ne kerüljön bele a "\ No newline at end of file" figyelmeztetés, illetve a patch maga olvashatóbb legyen.

Operátorok

Minden bináris operátort (két érték közé helyezendő operátorok), mint például a +, -, =, !=, ==, > stb. egy-egy szóközzel közre kell fogni, hogy olvashatóbb legyen.

Példa: $foo = $bar; (Rosszul írva: $foo=$bar;)

Az egy értékre ható operátorok (mint például az inkrementáló operátor, ++) közvetlenül a változó mellé írandók (pl: $foo++, vagy ++$foo).

Típuskonverzió

Mindig rakj egy szóközt a típus és a változó közé: (int) $mynumber.

Vezérlési szerkezetek (if, for, while, switch, stb.)

Hogy ne legyenek függvényhívásokkal összekeverhetőek az ilyen kódcsoportok, a nyitó parancs (if, else, stb.) után egy szóköz kötelező.

Kapcsos zárójelek használata minden esetben javasolt, még akkor is, ha a kód maga értelmes lenne nélkülük (egy soros mag). Ettől javul az olvashatóság, és valamelyest csökkenti annak esélyét, hogy a kódmag bővítése során logikai hibák kerüljenek be.


if (condition1 || condition2) {
action1;
}
elseif (condition3 && condition4) {
action2;
}
else {
defaultaction;
}

Függvényhívások és függvénydefiníciók

Függvények hívásakor a függvény neve és az argumentumok nyitó zárójele közé nem szabad szóközt tenni, illetve – mint minden felsorolás jellegű kódrészletben – a vessző és a következő paraméter közé kell a szóköz. Az utolsó paraméter után közvetlenül jön a zárójel és a kódsor végét jelző pontosvessző.


$var = foo($bar, $baz, $quux);

Ahogy látszik, az egyenlőségjel két oldalán van egy-egy szóköz, ahogy a függvény visszatérési értékét hozzárendeljük a változóhoz. Egymás után több érték változóhoz rendelése esetén több szóközt is beszúrhatunk a kód jobb olvashatósága érdekében:


$short = foo($bar);
$long_variable = foo($baz);

Azok az argumentumok, amelyeknek van alapértelmezett értékük, az argumentum-lista végére kell, hogy kerüljenek. Törekedj értelmes visszatérési érték meghatározására, ha lehetséges.

Tömbök

Tömbelemek egymástól a szokásos felsorolás stílusban (egy vessző, utána szóköz) írandóak. Amennyiben kulcs hozzárendelést alkalmazunk (=>), akkor az operátor elé és mögé is írandó szóköz:

$some_array = array('hello', 'world', 'foo' => 'bar');

Ha egy ilyen tömb-sor hosszabb lenne 80 karakternél (ami elég gyakran előfordul, például űrlap, illetve menü definícióknál), akkor a tömbelemek soronként írandóak, egy behúzással (azaz két szóközzel):


$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Title'),
'#size' => 60,
'#maxlength' => 128,
'#description' => t('The title of your node.'),
);

Érdemes megfigyelni, hogy az utolsó sor végén is van egy vessző. Ez nem elírás, ez a jelölésmód segít későbbi feldolgozási hibák elkerülésében, ha bővitjuk a listát.

Idézetek

A kettős, vagy szimpla idézőjelek használatáról nincsen kőbe vésett szabály a Drupalban. Ahol lehetséges, próbálj törekedni az adott modul írásmódjával egybeesően írni: tiszteld a többi programozó egyeni stílusát.
Ugyanakkor érdemes fejben tartani, hogy a szimpla idézőjeleket gyorsabban értelmezi a PHP, mert nem próbál változókat keresni a sorban (például: "

$header

"

). Ezenkívül fordítandó szöveg esetén is ajánlott kettős idézőjelet használni, ha maga a szöveg tartalmazna szimpla idézőjelet (ekkor ugyanis egy az idézőjel elé egy visszaperjel írandó, amit a .pot készítő nem biztos, hogy meg tud oldani).

Sztring összefűzés

Mindig rakj szóközt a pont és az összefűzendő változók, értékek közé, ez nagyban javítja az olvashatóságot.

$string = 'Foo' . $bar;
$string = $bar . 'foo';
$string = bar() . 'foo';
$string = 'foo' . 'bar';
?>

Egyszerű változók esetén szabad dupla idézőjelet használni, és a változót közvetlenül az idézeten belül kiírni:

$string = "Foo $bar";
?>

Ha az összefűzés a saját operátora által ('.=') történik, akkor (mint ahogy korábban írtuk az operátorok esetén) mindkét oldalról egy szóközzel kell közrevenni:

$string .= 'Foo';
$string .= $bar;
$string .= baz();
?>

Megjegyzések

Sorbeli forrás dokumentáció a Doxygen formázási szabályokat követi.
Ajánlott nem dokumentáció jellegű megjegyzésekkel bővíteni a kódot. Nagy általánosságban az olyan programrészletek, amik megírása után az ember legszívesebben zacskót húzna a fejére és elmenekülne dél-Indiába, azonnal dokumentálandóak, mielőtt elfelejti a szerző, hogy mit és hogyan és miért úgy csinált.

Nem dokumentálás jellegű megjegyzéseknek is nyelvtanilag helyes, teljes mondatoknak kell lenniük (nagy betűvel kezdődően, mondat végén pont, mondatok egy szóközzel elválasztva). Csupa nagybetűt csak akkor használunk, ha állandókra (például TRUE) hivatkozunk. Megjegyzések külön sorba írandóak, közvetlenül a vonatkozó kódrészlet elé, például:


// Unselect all other contact categories.
db_query('UPDATE {contact} SET selected = 0');

Ha egy lista elemeihez fűznénk magyarázatot, akkor írhatunk ugyanabba a sorba, sőt be is húzhatjuk, hogy olvashatóbbak legyenek a megjegyzések.
Mind a C-ben használt megjegyzés stílus (/* */) és a C++ féle (//) elfogadott, Perl, illetve shell típusú # megjegyzések kerülendőek.

Kód include-olása

Ahol feltétel nélkül kell egy PHP kódot tartalmazó fájlt meghívni, ott használj require_once()-t. Ahol ez feltételhez van kötve, ott include_once() használatos. Ez a két utasítás közös fájllistát kezel, vagyis ugyanaz a fájl nem lesz kétszer meghívva.

Miután az include_once() es a require_once() nem függvény, hanem nyelvi elem (statement), ezért nem kell a fájlnév köré zárójelet tenni.

Ha ugyanabból a könyvtárból, vagy alkönyvtárból hívunk fájlt, az elérési utat kezdjük "."-vel: include_once ./includes/mymodule_formatting.inc. Drupal 7.x alatt használjuk a DRUPAL_ROOT állandót: require_once DRUPAL_ROOT . '/' . variable_get('cache_inc', 'includes/cache.inc');

PHP kód jelölők

Mindig a tageket használd PHP kód írásakor, a rövidebb ?> helyett. Ez nem csak Drupal standard miatt van így, hanem a kód hordozhatósága miatt is nagyon fontos, eltérő szerver konfigurációk esetenként tilthatják a rövidebb jelölést.

Pontosvesszők

A PHP nyelv szintaxisa megköveteli a sor végi pontosvesszőt, viszont megengedi annak elhagyását kód blokkok esetén. A Drupal kódolási stílusa viszont még ott is megköveteli:
Helyes:
Helytelen:

Forrás: http://drupal.org/coding-standards
Ez a fordítás közösségi munka eredménye, ha bármi hibát találsz, vagy szebben meg tudnád fogalmazni, akkor segíts javítani.

Profil és webform össze kombinálása

kalmarr képe

Sziasztok!

Szeretném a webform tartalmát és a profilt össze kombinálni, azaz ha valaki elkezdi kitölteni a webform-os ürlapot, akkor autómatikusan regisztrálja magát az oldalra.

Kiíratás és adat kezelés tekintetében jobban szeretem a webformot mivel az pont arról szól, hogy valamilyen adatokat, valaki elküld, és ezen adatokra nincs szükségem a user profiljában. Ezért nem jó a két megoldás.

Várom a válaszokat!

KALMI

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