Color modul nem müxik Bartik alsminkben

zilles képe

Sziasztok!

Bartik smink alapján készítettem alsminket, illetve sminket Drupal 7.15-ben.
(A Bartik smink mappát másoltam a /sites/all/themes/sajat mappába és az sajat.info fájlba írtam át a smink nevet "sajat"-ra, módosítottam a leírást, valamint a base theme = bartik sort adtam hozzá a package=Core helyett)

A színmódosítást eltárolja és jelzi a mintán, De az oldalon nem érvényesül.

Mi lehet a gond?

Taxonomy upgrade extras: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
Fórum: 
aboros képe

ha alaposan megnézed a bartikot, elolvasod a color module support dokumentációt, látható, hogy az ilyen színezéses sminkek a template.php -ban akaszkodnak bele a color modulba, mindenféle preprocess és process hookokban hívogatják a color modult és variálnak.

a te új sminked template.php -jában továbbra is minden sminkfüggvény úgy kezdődik bartik_ ezért aztán olyan mintha nem is lenne. át kell őket nevezned a saját sminked nevére.

0
0

-
clear: both;

Sk8erPeter képe

Hmm, hát nálam localhoston van több gyorsan összekalapált, pusztán tesztcélú Drupal is, és épp pár napja gyorsan összetákoltam egy subtheme-et a Bartikból, és az új alsmink template.php-je nálam most tök üres, mégis az admin/appearance/settings/én_bartik_alsminkem_neve elérési úton használható a Color modul!
Tehát ezt nem örökli a szülőjétől?
Itt van, amiket én csináltam (kb. max. 3-4 percet töltöttem az alsmink gyors összetákolásával):

============================================

SZERK.: aki szeretné SZABÁLYOSAN elkészíteni az alsminket, az ne másolgasson át mindent, ahogy én tettem, mert így nem örököl dolgokat a szülőtől, hanem kövesse az itt leírtakat:
Egyszerű alsmink készítése (csakiistvan tollából)
http://drupal.hu/node/15822

============================================

  1. átmásoltam a bartik.info fájlt, mindenféle CSS-hivatkozással, régióval együtt, csak átírtam a fájlnevet, a theme nevét és leírását egy sajátra; plusz beletettem a
    base theme = bartik
    sort is
  2. a következőket egy az egyben átmásoltam:
    • css könyvtár
    • images könyvtár
    • color könyvtár
    • logo.png, screenshot.png fájlok a theme rootjába
    • templates könyvtár; plusz ide belepakoltam azokat a template-eket, amiket át szeretnék még variálni
  3. kreáltam egy üres (!!) template.php-t későbbi használatra az alsminkem rootjába
  4. admin/appearance oldalon a saját sminkemnél rámentem az "Enable and set default"-ra
  5. admin/appearance/settings/én_bartik_alsminkem_neve oldalon beállítottam egy új színvilágot a Color modul segítségével
  6. elmentettem, KÉSZ, működőképes
0
-1
Sk8erPeter képe

Meg is van, miért működik ez így, belenéztem a color.module fájlba (még soha nem követtem el ilyen gaztettet :D):

Itt van, hogy miért is kerül automatikusan felhasználásra a Color modul, miután átmásoltam a teljes color könyvtárat a Bartik theme-ből (ez a rész a fontos!). Egyik fontos rész magának a theme beállításainak az oldala, amit a modul megváltoztat:

  1. /**
  2.  * Implements hook_form_FORM_ID_alter().
  3.  */
  4. function color_form_system_theme_settings_alter(&$form, &$form_state) {
  5. if (isset($form_state['build_info']['args'][0]) && ($theme = $form_state['build_info']['args'][0]) && color_get_info($theme) && function_exists('gd_info')) {
  6. $form['color'] = array(
  7. '#type' => 'fieldset',
  8. '#title' => t('Color scheme'),
  9. '#weight' => -1,
  10. '#attributes' => array('id' => 'color_scheme_form'),
  11. '#theme' => 'color_scheme_form',
  12. );
  13. $form['color'] += color_scheme_form($form, $form_state, $theme);
  14. $form['#validate'][] = 'color_scheme_form_validate';
  15. $form['#submit'][] = 'color_scheme_form_submit';
  16. }
  17. }

A color_get_info($theme) függvényhívás különösen fontos. Az pedig így néz ki:

  1. /**
  2.  * Retrieves the Color module information for a particular theme.
  3.  */
  4. function color_get_info($theme) {
  5. static $theme_info = array();
  6.  
  7. if (isset($theme_info[$theme])) {
  8. return $theme_info[$theme];
  9. }
  10.  
  11. $path = drupal_get_path('theme', $theme);
  12. $file = DRUPAL_ROOT . '/' . $path . '/color/color.inc';
  13. if ($path && file_exists($file)) {
  14. include $file;
  15. $theme_info[$theme] = $info;
  16. return $info;
  17. }
  18. }

Magyarul azt csekkolja, hogy létezik-e mondjuk a sites/all/themes/én_bartik_alsminkem_neve/color/color.inc fájl, ha igen, akkor include-olja is; ebben pedig az aktuális theme-hez tartozó fontos régióinformációk is benne vannak. FONTOS tehát, hogy az itt szereplő régiónevek megegyezzenek az én_bartik_alsminkem_neve.info fájlban szereplőkkel! Így fog megfelelően működni.
Ezért volt jó tehát, hogy átmásoltam egy az egyben a .info fájlban szereplő régiókat, és a color könyvtárat is úgy, ahogy van.
Ha megváltoztattam volna bármilyen régiót a .info fájlban, akkor a theme-hez tartozó color.inc fájlban lévő régiókat is meg kellett volna változtatnom ennek megfelelően.

2
0
aboros képe

legközelebb jobban figyelek és kávét is iszok mielőtt vaktában lövöldözök. :) bár azt nem teljesen értem, hogy a kérdező hogy nem kapott úgy parse errort, hogy kétszer deklarál pl bartik_process_page függvényt :) de annyi baj legyen.

"Tehát ezt nem örökli a szülőjétől?"
"Color.module support within the color directory is not inherited."
(http://drupal.org/node/225125)

nem, nem örökli. nem örökítetted, hanem forkoltad a bartik color module supportját. viszont a template.php öröklődik, ezért lefutnak a kellő függvények a bartikban. minden esetre a lépésekkel amiket írtál, az alsminkedben teljesen felülírtad a bartikot, tulajdonképpen semmi hasznod nincs belőle, hogy a bartik alsminkje a tied, kivéve, hogy üres template.php val is elmegy a color support. :) felülírtad a bartik minden cssét, képét, és az összes templatejét is.

0
0

-
clear: both;

Sk8erPeter képe

"bár azt nem teljesen értem, hogy a kérdező hogy nem kapott úgy parse errort, hogy kétszer deklarál pl bartik_process_page függvényt :)"
Na igen, ez nekem sem egészen világos. :)

Tulajdonképpen teljesen igazad van, lényegében ezzel újból létrehoztam a bartik theme-et, csak annyi előnyöm származott az egészből, ami a Bartik template.php-jében van :D Látszik, hogy én meg csak összedobáltam 3-4 perc alatt az egészet, lényegében ez így már kábé nem is alsmink, hanem egy új smink, ami felhasznál a Bartikból pár függvényt. :P
Inkább jobb, ha szerkesztem is az eredetit, nehogy véletlenül valaki azt higgye, az a jó módja az alsmink-készítésnek.

Na most jól downvote-olom a saját korábbi hozzászólásomat!! :D

Szerk.: na, megtörtént, kiegészítettem az eredeti hozzászólást, meg downvote-oltam is. :D
Amúgy még annyit, hogy mivel a color modul dolgait NEM örökli, ahogy ez az általam korábban írtakból ki is derül (lásd drupal_get_path('theme', $theme);, ahol a $theme változóban az éppen aktuális smink neve van!), ezért azt nem ússza meg az ember, hogy azt a könyvtárat átmásolja. Legalábbis a color.inc és a megfelelő régiók mókolása (ha van módosítás az új .info fájlban) amúgy is elengedhetetlen.

0
0
aboros képe

de úgyis átírja az egészet. :)
vagy jobban jár ha csinál egy zen alsminket amilyet szeretne, előre kigondolja, hogy ez majd color modulos lesz és a végén beépíti a color modul support. http://drupal.org/node/108459

0
0

-
clear: both;