Smink csere / változtatás php-ban ( d7 )

xmasher képe

Sziasztok, egy saját sminket készítek, de éles oldal alá és amíg nincs kész és nincs beüzemelve addig a garlandot használom.

Egy olyan megoldást keresek, amivel meg tudom oldani, hogy csak nekem jelenjen meg az oldal az új smink használatával. Tehát bárki más garlanddal lássa de én tudjak dolgozni a sminken.

A kapcsolót GET-tel átadom, az oké idáig megy :)
Rengeteg helyen olvasom, hogy hook_theme-mel kell megoldani, ebből indulnék ki,
van egy saját modulom, ami csak az adott site-on fut (multisite-ot használok).
A module_init (), a hook_theme (), a hook_custom_theme () függvényekkel játszottam, kb. 15 angol leírást / tutorialt végigcsináltam - a drupal.org-on találhatót is - de egyikkel sem sikerült működésre bírni.

A GET-es kapcsolás működik, a témát fixre bekapcsolva az is működik.
A téma a sites/all/themes-ben van.

A hook-olásnál csak a téma nevét kell visszaadni? ( return 'temaneve'; )
Hol ronthatom el? Már egy hete ezen szenvedek :(

Van valakinek valami ötlete, vagy más megoldása?

Drupal verzió: 
Fórum: 
csakiistvan képe

Hello,

Ugye nem az eles oldalon fejlesztesz? :)

D6ban ez a smink valaszto core funkcio volt, tudtommal D7re ezt kiszedtek, de maradt ilyen: https://drupal.org/project/role_theme_switcher

4
0

Drupal full-stack developer at Wunderman Thompson Budapest

xmasher képe

Hát ha a smink készítés fejlesztésnek számít :)

A modul telepítést el akartam kerülni.
Nem hiszem, hogy nem lehet megírni pár sorból az egészet.

0
-1
xmasher képe

Közben megtaláltam a megoldást! Mikor olvastam ennek a modulnak a forrását amit írtál akkor ugrott be.

Szóval:

1. drupal/modules/system/system.module fájlt megnyit

2. function system_custom_theme() { } fgv-t kikeres...

3. ...és átír:

  1. /**
  2.  * Implements hook_custom_theme().
  3.  */
  4. function system_custom_theme() {
  5. if ( $feltetel ) return 'tema_neve';
  6.  
  7. if (user_access('view the administration theme') && path_is_admin(current_path())) {
  8. return variable_get('admin_theme');
  9. }
  10. }

Zsír vagy. köszi :)

0
-7
Nagy Gusztáv képe

A következő rendszerfrissítéskor mi lesz a kódoddal? Elveszik. Ez nem megoldás. Drupalban soha nem módosítjuk a rendszer fájlokat, hanem saját modullal/sminkkel "felülírjuk".

4
0

Nagy Gusztáv

pp képe

Nem a legjobb megoldás ez, ha hosszabb távú weboldal műkdötetésben gondolkodsz.

Mint ahogyan csakiistvan is javasolta, állíts fel egy tesztkörnyezetet, ahova lemásolod az éles oldal adatait, fájljait és adatbázisát. Majd ezen fejlessz. Ha ez nem megy, akkor kérdezd meg a szolgáltatódat, hogy hogyan tudsz tesztoldalt létrehozni, biztos szívesen segít.

Igen ez fejlesztés, mert belenyúlsz a forrásfájlokba.

Számos előnye van a tesztoldalnak:
- nem tudod megölni az éles oldalt php hibával, ilyenekkel. Pl. másolsz egy kódot, amiben olyan függvénynevet használsz, ami már máshol definiáltak, nem csak a tesztsminked fog összetörni, hanem az éles oldalad is.
- ki tudod próbálni mit lát a különböző szerepkörrel rendelkező felhasználó
- Meg tudod mutatni másnak egy link segítségével (pl. megrendelő)

A te általad választott módszernek pedig számtalan hátránya van:
- Mi lesz, ha frissítesz Drupal-t, ahogyan Nagy Gusztáv is felvetette
- Ha hibázol az oldaladat megölöd
- Honnan tudod, hogy mit kell visszaváltoztatnod a kódon? Most ez ugye nem probléma, hisz csak visszateszed a core fájlt és kész, de ha ezt a munkamódszert követed, akkor viszonylag hamar lesz majd olyan problémád, hogy lesz olyan kódod a core-ban ami már nem kell és lesz olyan aminek maradnia kell és ezeket nagyon nehezen tudod majd azonosítani.

Szóval rövid távon jó ez a megoldás, carpe diem, egyszer élünk stb. :D

pp

4
0