SEO Quick How To
Told a content-ot 1000-rel, sokat és rendszeresen
Nincs kész weblap, min. havonta legyen új tartalom rajta
Könnyen, olvashatóan (hogy elvassák) írj
title, description, abstract, dc. title, dc, description, keyword (ca. ez a fontossági sorrend) minden tartalomhoz legyen kitöltve
Fő kulcsszó mint pld "autó" nagy konkurrenciával jár, készíts pld "eladó autó", "eladó veterán autó" aloldalakat
Ha már van érdemi tartalom, akkor szerezz sok linket lehetőleg 3-4 pagerank-es helyekről (startlap.hu, "iparági"-lap. hu kötelező) De figyelj oda: Napi 3-4 linknél ne legyen több egyszerre
Ne csak a nyitó oldalra linkelj, hanem az aloldalakra is
Készíts facebook, twitter oldalt utána szerezz sok követőt és linkelj ill. lnkeljenek az oldaladra
Készíts videót, tedd fel a youtube-ra (2. legjobb kereső a gugli után) és a videó népszerűsítse az oldaladra ill vica versa
És a legfontosabb: TOLD A CONTENT-ot!!!
Amúgy a SEO Drupal független, csak a Drupal rásegít pld a jó forráskóddal ill. a szuperül konfigurálható rövid webcímekkel
Gyakorlati javaslatom: http://efonyomda.hu
Keress rá a nyomda szóra, gugli első oldal, de csak 7-9 hely.
Keress rá az aloldalakra pld: borcímke, puhatáblás könyv, keményfedelű könyv vagy nyomda százhalombatta etc., nincs nagy konkurrencia és garantált az 1-3 helyezés.
Te is így szedd szét az oldaladat és sikerrel fogsz járni.
Fonyódi Ottó
http://efonyomda.hu
http://nyomda-webshop.hu
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
a tisztánlátás végett
Logikusnak tűnt Gábor érvelése ezért elfogadtam, de csak nem hagyott nyugodni a dolog így utánaolvasgattam.
(majdnem) mindenhol csak annyit említenek, hogy AdSense esetén csak add hozzá azt a két sort, ami fentebb is szerepel, de nekem a nyelvi ellentét nem tetszett. Aztán a http://www.robotstxt.org/orig.html oldalon megtaláltam, hogy a Disallow: (érték nélkül) annyi mint az Allow:/ (értékkel itt a / jel) tehát minden url bekerül az indexbe.
Mivel nincs AdSense fiókom így a hibaüzenet amit kaptatok mindeketten nem is tudom mit takar, de én a következőre tippelek:
A drupal-os robots.txt-ben van egy pár tiltás User-agent:* szabállyal (clean url, /node/add/*, stb.)
Az Adsense modul (?) meg gondolom ezeket le is kezeli, mint az Analytics, hogy hol jeleníthet meg konkrét hirdetést, azaz a js kódot ami meghívja a hirdetéseket, de ezzel nincs összhangban a robots.txt. A Google szerint a különböző botjai nem függenek egymástól, de valami oka biztos, van annak, hogy javasolják az Mediapartners-Google-nek a teljes elérést.
Az általános tanácsuk helyett (minden url) szerintem célravezetőbb kézzel megadni, hogy hol jelenítsen meg kódot és használni inkább a support oldalukon is előforduló Allow:/ tipusú szabályt, hiszen a fentebb említett tiltásba (User-agent:*) beletartozik a Mediapartners-Google botja is.
Azonban ha valaki másként látja, szívesen meghallgatnám a véleményét, mert most már érdekel engem is. (hátha egyszer AdSense-ezek :)
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
Kétféle magyarázat
Kevésbé kockáknak: képzelj egy szép kis fiókos szekrényt, a fiókon a változó neve a címke, a fiókban meg a változó tartalma van. Egy PHP referencia pusztán egy újabb címke a fiókon. Az unset törli a címkét a fiókról, amelyik fióknak nincs több címkéje, az elérhetetlen, ezért a PHP szépen ki is dobja a tartalmát. A resource és object típusú változók a fiókban csak egy speciális bejegyzést tartalmaznak amin az áll "az én értékemet egy másik szekrényben (megfelelő resource vagy class) találod az X. számú fiókban". Ezért amikor átadjuk az ilyen változókat egy függvénynek akkor csupán lemásoljuk ezt a bejegyzést, nem csoda tehát hogy a függvényben a speciális szekrényben található értéket manipulálják. Ha referenciaként adjuk át akkor viszont lehetőség nyílik a fő szekrényben a bejegyzés kidobására és új bejegyzés készítésére.
Kockáknak: http://php.net/manual/en/internals2.variables.intro.php a PHP változók két részből állnak: egyrészt a változó neve ami szokás szerint a szimbólumtáblába kerül plusz egy mutató a változó tartalmára (ami egy zval struktúra). A $a = &$b
után a és b ugyanarra a zval-ra mutat. A zval-ban van egy számláló (refcount) hogy hányan mutatnak rá, amikor ez nulla akkor eldobjuk. A tényleges változó érték egy zvalue_value union-ban van amire a zval-ban van egy pointer.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
API-függvényt nem találtam rá; Views-ban csak listázni lehet
Körülnéztem az imageapi, filefield, imagefield modulok kódjában, én nem nagyon találtam jobbat, "Drupalosabbat", mármint abban az értelemben, hogy lenne már rá valami API. Sajnos.
OFF: Egyébként én kicsit nevetségesnek tartom, hogy csomó fontos/kiegészítő adatot serializált formában tart a Drupal az adatbázisban, ami pedig csak nagyon ügyesen növeli az erőforrás-igényt (lásd unserialize() memóriaigénye). Azért szívesen olvasnék erről valami élménybeszámolót, hogy vajon miért is sikerült ezt így kialakítani, amikor elég sok mindent szépen, konzisztensen csináltak meg, de ez nekem egy kicsit összebabráltnak tűnik, hogy finoman fogalmazzak. Ezekre a serializált adatokra egy normális query-t sem lehet írni, anélkül, hogy ne kéne hozzá még tákolni némi unserializálást PHP-ben. Miért nem lehetett ezeket külön mezőben, akár felőlem külön táblában tárolni?
OFF vége
Egyébként a Views-ban lehet úgy fájlokat listázni, hogy kilistáztatod az alt, title mezőket is, úgy, hogy az adott mezőnél a "- data" végződésű fieldet választod, például ha a mezőm neve Images, machine name-je "field_my_images", akkor ez lesz a Views-ban választható mező:
"Images (field_my_images) - data"
aztán ezenbelül kiválasztod a title-t:
de feltételezem, nem csak ilyen egyszerű listázásra van szükséged, hanem kódból szeretnél vele még valamit művelni.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
SMTP Authentication Support modul kipróbálása
Ez tényleg fura, legalábbis valóban nem ez az elvárt.
Egy hook_mail_alter
-implementációval modulban változtathatóak a küldendő emailre vonatkozó adatok, így a feladó is, valahogy így:
http://drupal.stackexchange.com/questions/66764/change-format-of-webform...
https://drupal.org/node/875092#comment-3380618
De ez szerintem még mindig nem oldaná meg, mivel úgy tűnik, a szolgáltató az értékeket a mail() használatakor (?) felülbírálja, vagy máshonnan ered a probléma.
Én a helyedben első körben kipróbálnám az alábbi modullal történő e-mail-küldést:
https://drupal.org/project/smtp
ez a PHPMailer osztályt veszi igénybe a levélküldésre, az alapértelmezett mail() helyett (link, link).
Ezzel beállíthatsz egy neked tetsző SMTP-szervert (pl. lehet az egy Gmail-fiók, vagy a szolgáltató által biztosított SMTP-szerver), amelyen keresztül az authentikáció és a levélküldés történik.
Remélem, beválik.
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
vannak erre remek hurkok
több ponton is meg tudod variálni egy nézet kimenetét, például ahogy van node.tpl.php, úgyanúgy van a nézeteknek is tpl -je. minden mezőnek is van. ezeket a sminkben implementálva variálhatod, ahogy bármilyen tplt. persze nem itt kéne ezt csinálni az utolsó lépésben, hanem korábban. (csak hogy itt legyen, aminek tpl -je van, annak preprocess -e is, amit a template.php -ban megvalósítva piszkerálhatod a tplnek átadott változókat)
egész véletlenül, szerencsére, ;) a views ad neked hurkokat amikkel módosíthatod a nézetet modulból. legelőször a lekérdezés futtatása előtt a hook_views_query_alter -el tudod módosítani a konkrét sql lekérdezést pont még mielőtt lefutna. én nagyon nem vagyok feketeöves sql ninja, de ha te az vagy, vagy van egy kéznél, akkor érdemes ezt megnézni.
egy másik hurok a hook_views_pre_render. ez akkor hívodik meg, mikor már a nézet teljesen készen áll a renderelésre. a lekérdezés lefutott, és sok más is, ez az utolsó lépés ahol belepiszkálhatsz, mielőtt a "sminkrétegbe kerülne" a végeredmény. ha minden kötél szakad, ebben a hurokban bármit csinálhatsz a nézet eredményével még mielőtt renderelődne. átrendezheted, csoporthosíthatod, bármi, variálod a $view->result és amit "hagysz" benne az renderelődik. (megkapják az első bekezdésben írt preprocessek, melóznak vele és átadják az eredményt a tplnek ami "kiprinteli")
-
clear: both;
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
nincs mit :)
views:
az az .inc automatikusan betöltődik, ha megfelelően van elnevezve és a megfelelő helyen van. (ahogy írják is)
content type:
a hook_node_info csak definiálja a tartalom típusodat. ha szeretnél cck mezőket is létrehozni automatikusan, azt is neked kell megcsinálni. úgy nézem, hogy cck mezőket talán a http://drupalcontrib.org/api/function/content_field_instance_create/6 -al tudsz csinálni, nem tudom, sose próbáltam. hogy ezt melyik hook_ -ba kéne rakni, tippem sincs, elsőre talán megpróbálnám a hook_installba tenni, de lehet az teljes tévedés. :)
fontos, hogy bármilyen nem core modulra épít a te moudlod, azt az info fileban függőségként illik megadni, nehogy az legyen, hogy bekapcsolom és eltörik az oldalam.
pl így:
.info
viszont:
miért nem próbálod ki a remek features modult, amivel grafikus felületen "kattinthatod össze", hogy ez a view meg ez a tartalom típus menjen bele a "featurebe" és kiexportálja neked kész kóddá, gyakorlatilag egy modult csinál ami létrehozza a megadott dolgokat. pont amit te akarsz. aztán azt a modult még te alakíthatod ahogy akarod vagy ha másra nem, "puskának" hibátlan ;)
-
clear: both;