Apróhirdetés modul - Létezik ilyen?
Olyan apróhirdetés modulra lenne szükségem, amelyre tudok 2-3 különböző típusú hirdetésfajtát csinálni, amire a felhasználók i adhatnak fel hirdetéseket, képpel. Létezik ilyen?
Olyan apróhirdetés modulra lenne szükségem, amelyre tudok 2-3 különböző típusú hirdetésfajtát csinálni, amire a felhasználók i adhatnak fel hirdetéseket, képpel. Létezik ilyen?
Hello!
A véleményeteket szeretném kérni az alábbiban:
Van a site-on két különböző típusú tartalom (feltöltött vicces képek és cikkek, amik nem feltétlen poénosan), mindkettőt szeretném címkézni és később majd címkefelhőt is csinálni. Szerintetek melyik a jobb megoldás?
Szóval arra lennék kíváncsi, hogy oldalstruktúra/design és főleg SEO szempontból melyik a jobb választás? Első esetben xy.hu/cimke/valami lenne a taxonómia URL, második esetben pedig xy.hu/cikkek/cimke/valami
Egyelőre a listákban más kinézete van a cikkeknek és a vicces képeknek, de azt nem gond átalakítani, hogy egységes legyen.
Előre is kösz a válaszokat.
Moha
Van egy 500+ fős felhesználói listám az egyik honlapomon, de nem volt feltéve a simplenews meg semmilyen ilyen E-mail küldő cuccos... A kérdésem az lenne, hogy hogyan tudom a simán csak beregisztrált felhasználók E-mailjeit kimenteni mondjuk egy .txt-be vagy ilyesmi...
Ha van vkinek ötlete az nagy segítség lenne és előre is köszi!
Létrehoztam egy blokkot, ahová egy Facebook like gombot is tervezek tenni. Ahhoz, hogy az adott oldalra vonatkozzon a lájk, a következő kódot írtam még bele:
/node/<?php print $node->nid; ?>
Beviteli forma php kód, ürítettem mindent, amiről tudok, hogy üríteni lehet (admin menü bal felső + /admin/build/themes), de továbbra sem jelenik meg a node ID a forráskódban.
Hogy a problémát leszűkítsem, lértehoztam egy blokkot, amiben csak a fenti kód szerepel - ott sem jelenik meg a node ID.
Mit csináltam rosszul?
Minden oldalon amit egy időre befejezek - mert ugye weboldalt csak elkezdeni lehet befejezni nem - megpróbálom a legjobb teljesítményt kicsikarni a rendszerből, hogy gyors legyen.
Ennek egyik legjobb módszere ha a nézetünket nem adatbázisban eltárolt adatok alapján kérdeztetjük le az adatbázisból, hanem mindezt kiexportáljuk egy modulba és az intézi csak a lekérdezés eredményét.
Elég elavult dolognak számít 2011 vége felé 6.x-2.x verziójú Views modulról írni, de hátha valaki még nem csinálta ezt. (7.x-3.x-en nem jöttem még rá, hogy kell.)
Tehát a lépések a következők:
<?php<br />function foobar_views_api() {<br /> return array(<br /> 'api' => 2,<br /> 'path' => drupal_get_path('module',foobar) . '/views/*.inc',<br /> );<br />} <p>function foobar_views_default_views() {<br /> $path = './'. drupal_get_path('module',foobar) . '/views/*.inc';<br /> <br /> foreach (glob($path) as $views_filename) {<br /> require_once($views_filename);<br /> }<br /> return $views;<br />}</p>
name = "FooBar"<br />description = "Stores the view in code, idea from sgergely.hu"<br />core = "6.x"<br />version = "6.x-dev"<br />project = "foobar"<br />package = "Custom"
<?php<br />//Ennek a sornak a helyére kell bemásolni az első pontban megkapott hosszú php kódot.<br />$views[$view->name] = $view;
Folyamatosan felmerül az a kérdés, hogy ha én nem érek rá egy éppen nagyon igéretes munkára akkor kiket javasoljak.
Álljanak itt azok, bárminemű sorrend nélkül, akikkel volt szerencsém együtt dolgozni vagy láttam munkájukat közelről ezért javaslom őket:
Címkék: drupalwebfejlesztő
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:
<br /> <?php<br /> /**<br /> * Return a description of the profile for the initial installation screen.<br /> *<br /> * @return<br /> * An array with keys 'name' and 'description' describing this profile,<br /> * and optional 'language' to override the language selection for<br /> * language-specific profiles, e.g., 'language' => 'fr'.<br /> */<br /> function example_profile_details() {<br /> return array(<br /> 'name' => st('Example Drupal (Customized for Drupal development)'),<br /> 'description' => st('Select this profile to enable settings typical for a development website.'),<br /> 'language' => 'hu',<br /> );<br /> }<br /> /**<br /> * Return an array of the modules to be enabled when this profile is installed.<br /> *<br /> * The following required core modules are always enabled:<br /> * 'block', 'filter', 'node', 'system', 'user'.<br /> *<br /> * @return<br /> * An array of modules to be enabled.<br /> */<br /> function example_profile_modules() {<br /> return array(<br /> // Enable optional core modules.<br /> 'dblog', 'taxonomy', 'menu', 'path', 'locale',<br /> // Enable contributed modules<br /> 'admin_menu', 'googleanalytics', 'votingapi', 'devel', 'coder', 'mollom',<br /> // Enable views<br /> 'views', 'views_ui',<br /> // Enable cck<br /> 'content', 'text', 'number', 'fieldgroup',<br /> // Enable organic groups<br /> 'og', 'og_views',<br /> //Enable pathauto<br /> 'token', 'pathauto',<br /> );<br /> }<br /> ?><br />
Ami lényeges rész a lokalizációhoz, az a st();
függvény, hogy a name és a description tömbelemet tudja a rendszer fordítani.
A másik lényeges sor az a 'language' => 'hu',
mert itt kerül definiálásra, hogy milyen .po fájlt keressen, és itt jön a trükk:
Azt a hu.po fájlt amit a fordítás tartalmaz a /profiles/default/translations könyvtárban, kell átmásolni és a végére beleírni az általunk írt profil angol szövegeinek fordítását.
Ha nagyon sok a fordítanivaló akkor segítségünkre lehet a Potx modul, mely legenerálja a .po fájlt amiben aztán csak fordítani kell és utána mindkét sort másolni.
A mi esetünkben például ezt kellene másolni:
<br /> #: example.profile:12<br /> msgid "Example Drupal (Customized for Drupal development)"<br /> msgstr "Példa Drupal Disztribúció (fejlesztéshez)"
#: example.profile:13
msgid "Select this profile to enable settings typical for a development website."
msgstr "Válaszd ezt, hogy telepítsd a disztribúciót ami egy tipikus fejlesztői környzetet hoz létre!"
Tehát így kellene hogy kinézzen a könyvtárrendszerünk a profil elkészítése után:
Ezzel készen is van a magyar Drupalt telepítő telepítési profil.
Mivel elég sokat keresgéltem, hogyan is lehetne egy view-t amit már összekattingattam CSV vagy egyéb hasonló formátumba rakni, gondoltam megosztom.
Először is szükségünk lesz a Views Bonus Packra ami CSV, DOC, XML formátumokban tudja kiexportálni az általunk elkészített view-t.
A dokumentációja sajnos nem az igazi a modulnak, így ha van kedve valakinek írhatna hozzá egy oldalt a drupal.org-ra. :)
Ami nekünk kellene belőle arra ennyit mond:
These plugins will only appear on your views administration page, in the 'type' dropdown of the page and block sections.
Ezzel nem lehet semmire menni, ugyanis nem is itt kell keresni a megoldást. Ellenben egy ráakadtam egy issue-ban a helyes megoldásra webchicktől:
- Add a new "Feed" display to your view.
- Change its style to "CSV file"
- Configure the options (such as name, quote, etc.) by clicking the gear icon next to the style.
- Give it a path (such as path/to/view/csv)
Ami nyers fordításban ennyit tesz:
- Adjunk hozzá a view-nkhoz egy új "Feed" display-t
- Változtassuk a style-t "CSV file"-ra
- Állítsuk be az opciókat a style melletti fogaskerkére kattintva.
- Adjunk neki egy útvonalat a letöltéshez (mondju/ez/csv)
Azért írtam nyers fordításban félig meghagyva az angol szöveget, mert így vannak a views2-ben is a beállítási lehetőségek, így talán egyszerűbb elnavigálni.
Amikor MySQL adatbázissal dolgozok akkor általában phpMyAdmint használok, ami egy nagyon szép és egyszerű felület az adatbázis adminisztrálására. Néha sajnos az adatbázis túl nagy ahhoz, hogy phpMyAdmint használjunk, mert például kifut a php futási idejéből és nem csinálja meg a kért exportálást vagy importálást, ezért néha a parancssorhoz kell nyúlnom.
Tehát ebben az írásban ismertetni szeretnék néhány lehetőséget, hogyan is lehet ezt megejteni a konzolból.
A következő néhány sorban a [Felhasználónév] helyére a MySQL adatbázis felhasználóneve, a [ABnév] az adatbázis neve, a [/útvonal_a_fájlhoz/ABnév] az útvonal a kiexportált adatbázis fájlhoz - angolul dump - és végül a [/útvonal_a_mysqlhez/] az útvonal a MySQLhez (ez pl. Mac-en vagy Windows-on kell a parancssori parancsok kiadásához.)
Nagyméretű adatbázis másolása/exportálása
Először is a MySQLnek nincs másolás funkciója. Úgy lehet másolatot készíteni, hogy kiexportáljuk az adatbázist a mysqldump paranccsal. Hogy kiexportáljuk az adatbázist és egyből gzippel tömörítsük is használjuk a következő parancsot. Kérni fogja futás előtt a jelszavunkat.
mysqldump -u [Felhasználónév] -p [ABnév] | gzip > [/útvonal_a_fájlhoz/ABnév].sql.gz
Nagyméretű adatbázis importálása
Ha vissza akarjuk állítani az előbbi módon exportált adatokat a rendszerbe a következőt kell tennünk.
Először csomagoljuk ki a fájlt:
gzip -d [/útvonal_a_fájlhoz/ABnév].sql.gz
Lépjünk be a MySQLbe (megint kérni fogja a jelszavunkat):
[/útvonal_a_mysqlhez/]mysql -u [Felhasználónév] -p
Utána a következőt kell tennünk, hogy kitöröljük az előző adatbázist és betöltsük a mentést. (Vigyázat adatvesztéshez vezethet!)
SHOW DATABASES;<br />DROP DATABASE [ABnév];<br />CREATE DATABASE [ABnév];<br />USE [ABnév];<br />SOURCE [/útvonal_a_fájlhoz/ABnév].sql;
Extra mentési funkciók
Van úgy, hogy például a keresés index táblája túl nagyra nő, így azt nem szeretnénk exportálni:
mysqldump -u [Felhasználónév] -p [ABnév] --ignore-table=[ABnév].search_index | gzip > [/útvonal_a_fájlhoz/ABnév].sql.gz
Egyébként nagyon sok tábla van amit érdemes kihagyni, ezek a következők: watchdog, sessions és az összes cache* tábla.
Viszont, ha fenti példát használjuk a visszatöltésnél akkor hiányozni fognak a kihagyott táblák, így inkább ezt a két lépést használjuk ez esetben:
Először is akkor csináljunk mentést az adatbázisról az adatok nélkül, csak a szerkezetről:
mysqldump -u [Felhasználónév] -p [ABnév] --no-data | gzip > [/útvonal_a_fájlhoz/ABnév].info.sql.gz
Ezután készítsük el a mentést csak azokról adatokról amelyek kellenek:
[/útvonal_a_mysqlhez/]mysqldump -u [Felhasználónév] -p [ABnév] --no-create-info --ignore-table=[ABnév].search_index --ignore-table=[ABnév].cache --ignore-table=[ABnév].cache_block --ignore-table=[ABnév].cache_content --ignore-table=[ABnév].cache_filter --ignore-table=[ABnév].cache_form --ignore-table=[ABnév].cache_menu --ignore-table=[ABnév].cache_mollom --ignore-table=[ABnév].cache_page --ignore-table=[ABnév].cache_pathdst --ignore-table=[ABnév].cache_pathsrc --ignore-table=[ABnév].cache_views | gzip > [/útvonal_a_fájlhoz/ABnév].data.sql.gz;
Nem lenne egyszerűbb minden egyes cache_ helyett helyettesítő karaktert használni? Dehogynem! Lássuk:
[/útvonal_a_mysqlhez/]mysqldump -u [Felhasználónév] -p [ABnév] --no-create-info --ignore-table=[ABnév].search_index --ignore-table=[ABnév].cache% | gzip > [/útvonal_a_fájlhoz/ABnév].data.sql.gz;
Miután ezzel készen vagyunk a fenti módon behúzhatjuk az adatokat az adatbázisba először azt amelyik csak a táblaszerkezetet tartalmazza (.info.sql.gz), és utána az adatokat (.data.sql.gz). Ez azért jó mert egy relatíve kis adatbázist kell csak bevinni a rendszerbe.
A fenti helyettesítő karakteres megoldást eddig sehol nem láttam dokumentálva ezért nem biztos, hogy működni fog, próbáld ki!
Egyéb lehetőségek
Van keresztplatformos grafikai program a MySQL adminisztráláshoz:
http://dev.mysql.com/downloads/gui-tools/5.0.html
Van egy Drupal modul is amely ezt meg tudja tenni:
http://drupal.org/project/backup_migrate
Ez a bejegyzés egy ~fordítása egy a drupal.org/planet oldalon megjelent blogbejegyzésnek. Külön köszönet a fordításban nyújtott segítségért a #drupal.hu irc csatorna tagjainak.
A Drupal napról napra ismertebb lesz és egyre több ember szeretne vele elkezdeni foglalkozni. Hogyan is lehet ennek nekikezdeni? Fogod a géped feldobsz rá egy Drupalt és nyomkodod, de nem tudod, mi fontos és mi nem és azt sem, hogy hova nyúlj.
Ha már fenn van a Drupal, akkor már a vízben vagy és úszkálsz, meg kell tanulni mit lehet a Drupallal és mit nem, te sem próbálsz meg egy autóval repülni.
A következő linkeknek érdemes szentelni néhány órát, ha fejleszteni szeretnél, hogy ne találd fel újra a kereket.
Sajnos mint általában nagyrészt minden az informatikában ezek a linkek is angol nyelvű oldalakra mutatnak.
Olvasd és értsd meg
Értsd a különbséget
Ezeket a modulokat érdemes átnézni
Természetesen ezek csak a felszínt érintik, de jók kezdésnek.
Egyéb hasznos ötletek
Ha segítségre van szükséged
Abszolút kezdőknek Nagy Gusztáv jegyzetét szoktam ajánlani, mert nagyon jól össze van foglalva benne minden ami kezdéshez kell.
Ez a bejegyzés egy ~fordítása egy a drupal.org/planet oldalon megjelent blogbejegyzésnek, a szerző jóváhagyásával.
Címkék: drupalfejlesztésdrupal-6