Wsparcie » Zaawansowane » dwie skecje head na stronie

  • astharoth89

    (@astharoth89)


    Witam, z gory dziękuję za jakąkolwiek pomoc.

    Na swojej stronie mam zainstalowany motyw, nastepnie dodałam wtyczkę WPML 2.0.4.1 – Pełna nazwa: WPML Multilingual CMS.

    W sekcji head – nzjaduje się baner zrobiony w Adobe flash – więc analogicznie nie da się go przetlumaczyć wtyczką. Stworzyłam dwa banery – w wersji Ang oraz Polskiej. I teraz jestem w takim kłopocie, że nie wiem co mam wpisać w kodzie php – tak żeby gdy się jest na stronie ang niech wybierze header-en.php a jeśli w polskiej – header-pl.php

    Szukam wszędzie, i znalazłam coś co pasowałoby ale kompletnie nie wiem jak to przekształcić na wtyczkę WPML.

    <?php if (qtrans_getLanguage() == 'de’): ?>
    <?php include(TEMPLATEPATH.’/header-home-de.php’ ); ?>
    <?php else : ?>
    <?php include(TEMPLATEPATH.’/header-home-en.php’ ); ?>
    <?php endif; ?>

    Ten przykład został użyty gdy ktoś ma stronę przetlumaczoną za pomocną qtranslate..

    Dziękuję za pomoc.

Viewing 15 replies - 1 through 15 (of 24 total)
  • Sebek87

    (@sebek87)

    Możesz użyć stałej z wartością aktualnego języka:

    <?php if (ICL_LANGUAGE_CODE == 'de’): ?>
    <?php include(TEMPLATEPATH.’/header-home-de.php’ ); ?>
    <?php else : ?>
    <?php include(TEMPLATEPATH.’/header-home-en.php’ ); ?>
    <?php endif; ?>

    Thread Starter astharoth89

    (@astharoth89)

    Dziękuję za odpowiedź, zanim zapaskudzę kod swoimi wyczynami 🙂 zapytam dla pewności:

    Moje pliki jak: index.php, search.php, page.php,archive.php – zaczynją od: <?php get_header(); ?>

    czyli w miejsce tej linijki powinnam wstawić to:

    <?php if (ICL_LANGUAGE_CODE == 'de’): ?>
    <?php include(TEMPLATEPATH.’/header-home-de.php’ ); ?>
    <?php else : ?>
    <?php include(TEMPLATEPATH.’/header-home-en.php’ ); ?>
    <?php endif; ?>

    Czy raczej pod tym?
    I jeśli mam języki Polski i Angielski, to wtedy będzie to tak wyglądało:

    <?php if (ICL_LANGUAGE_CODE == 'pl’): ?>
    <?php include(TEMPLATEPATH.’/header-home-pl.php’ ); ?>
    <?php else : ?>
    <?php include(TEMPLATEPATH.’/header-home-en.php’ ); ?>
    <?php endif; ?>

    Bardzo dziękuję za odpowiedź.. wraca wiara, że się uda 🙂

    Thread Starter astharoth89

    (@astharoth89)

    Ten kod skopiowałam z innego forum, więc czy ta ścieżka:
    <?php include(TEMPLATEPATH.’/header-home-en.php’ ); ?> – powinna tak być?

    Bo wszystkie wersje header mam w głównym katalogu, więc wtedy tak to wyglądałoby:

    <?php include(’/header-en.php’ ); ?> – Prosze o wyrozumiałość, bo na prawdę żółtodziób ze mnie z Php – ale obiecuje poprawę 🙂

    Thread Starter astharoth89

    (@astharoth89)

    O złoty człowieku !!! dziękuję serdecznie!!!!!! 🙂

    Sebek87

    (@sebek87)

    Najlepiej byłoby pozostawić jeden plik header, a podmieniać warunkowo tylko ten flash 😉

    Thread Starter astharoth89

    (@astharoth89)

    Hmmm tuż po owacji radości.. otworzyłam stronkę w explorerze – i już czuję, że masz rację.. Bo się rozjechało..

    Więc w head.php – główny kod wygląda tak:

    http://pastebin.com/iFPv8sA9

    Nie jestem pewna czy widac kod w miare czysto – gdyby coś tu jest adres strony: http://astharoth.p.ht/ – wtedy firebugiem jak się najedzie na te cudo flashowe powinno wszystko pokazać.

    Więc, jeśli masz jakiś pomysł… będę niezmiernie wdzięczna 🙂

    Sebek87

    (@sebek87)

    Zaraz zaraz…
    Myślałem, że mówimy o pliku header.php 😉

    W takim razie zrób tak jak wcześniej – podziel kod flasha na dwa pliki i includuj.

    Thread Starter astharoth89

    (@astharoth89)

    A tak, masz rację mówimy o pliku header.php – wczoraj ze zmęczenia się pomyliłam.

    Książe explorer – się gubi i rozjeżdża – Książe bo zawsze z nim są kłopoty i trzeba tworzyć osobne style – gdzie reszta przeglądarek działa poprawnie.

    Więc wracamy do punktu wyjścia. 🙂 ” Najlepiej byłoby pozostawić jeden plik header, a podmieniać warunkowo tylko ten flash 😉 „

    Dziękuję serdecznie za wskazówki 🙂

    Sebek87

    (@sebek87)

    No to właśnie tak zrób.

    Kod flasha sobie podziel na dwa pliki językowe i includuj.

    A rozjeżdza się, bo może masz jakiś błąd w kodzie, może zgubiłaś jakiś znacznik?

    Nie mam niestety IE, żeby zerknąć.

    P.S
    Kod wklejaj na pastebin

    Thread Starter astharoth89

    (@astharoth89)

    Mam dwa banery o nazawach: header_v82.swf i header_v8.swf – wgrane na serwere tylko trzeba je odpowiednio wstawić w ten kod header.php
    Tak żeby sie podmieniały. Ja nie bardzo wiem jak to zrobić..

    Czy mam użyć ten kod:

    <?php if (ICL_LANGUAGE_CODE == 'en’): ?>
    <?php include(TEMPLATEPATH.’/header-en.php’ ); ?>
    <?php else : ?>
    <?php include(TEMPLATEPATH.’/header-pl.php’ ); ?>
    <?php endif; ?>

    Czy inaczej? Wyżej, podałam kod header.php -> i tam jest div class=”flash” – i tam widać, że jest wstawiony jeden z tych banerów.
    Więc jak powinnam w tym miejscu zrobić podmianę? tak, żeby wyświetlały się dwa banery zgodnie z wybranym językiem.

    Dziękuję serdecznie.

    Sebek87

    (@sebek87)

    Całą zawartość <div class=”flash”> rozdziel na wersję językowe, czyli chyba tak wcześniej zrobiłaś?

    Czyli np. banner-pl.php – <div class=”flash”>zawartość</div>

    i

    banner-en.php – <div class=”flash”>zawartość</div>

    W pliku header.php wywalasz <div class=”flash”></div> i w to miejsce dopisujesz ten wcześniejszy warunek PHP.

    Rozumiem, że wszystko masz w wp-content/themes/Twój_theme?

    <?php if (ICL_LANGUAGE_CODE == 'pl’): ?>
    <?php include(get_bloginfo(’template_url’) . '/banner-pl.php’ ); ?>
    <?php else : ?>
    <?php include(get_bloginfo(’template_url’) . '/banner-en.php’ ); ?>
    <?php endif; ?>

    No i oczywiście nie zapomnij w plikach banner-pl.php i banner-en.pl podmienić nazw swf.

    Thread Starter astharoth89

    (@astharoth89)

    A więc zaczynam rozumieć 🙂 Stworzyłam dwa pliki dla banerów: banner-pl.php i banner-en.php –
    Zrobiłam tak:

    skopiowałam tylko div class=”flash” z głównego header.php – i tylko podmieniłam nazwy tych banerów –

    <div class=”flash”>
    <div id=”head”>
    <div class=”alignCenter”>
    <object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,24&#8243;
    width=”980″ height=”484″>
    <param name=”movie” value=”<?php bloginfo(’stylesheet_directory’); ?>/flash/header_v8.swf” />
    <param name=”quality” value=”high” />
    <param name=”menu” value=”false” />
    <param name=”wmode” value=”transparent” />
    <!–[if !IE]><–>
    <object data=”<?php bloginfo(’stylesheet_directory’); ?>/flash/header_v8.swf”
    width=”980″ height=”484″ type=”application/x-shockwave-flash”>
    <param name=”quality” value=”high” />
    <param name=”menu” value=”false” />
    <param name=”pluginurl” value=”http://www.macromedia.com/go/getflashplayer&#8221; />
    <param name=”wmode” value=”transparent” />
    FAIL (the browser should render some flash content, not this).
    </object><!–><![endif]–></object>
    </div>
    </div>
    <script type=”text/javascript”>
    //var fo = new FlashObject(„<?php //bloginfo(’stylesheet_directory’); ?>/header_v8.swf”, „head”, „100%”, „504”, „7”, „”);

    var fo = new FlashObject(„<?php bloginfo(’stylesheet_directory’); ?>/flash/header_v8.swf?xmlUrl=<?php bloginfo(’stylesheet_directory’); ?>/flash/tfile_main.xml”, „play”, „100%”, „504”, „8”, „”);
    fo.addParam(„quality”, „high”);
    fo.addParam(„wmode”, „transparent”);
    fo.addParam(„scale”, „noscale”);
    fo.write(„head”);
    </script>
    </div>

    Potem wywliłam z header.php -> div class=”Flash” – wstawiłam w to miejsce:

    <?php if (ICL_LANGUAGE_CODE == 'pl’): ?>
    <?php include(get_bloginfo(’template_url’) . '/banner-pl.php’ ); ?>
    <?php else : ?>
    <?php include(get_bloginfo(’template_url’) . '/banner-en.php’ ); ?>
    <?php endif; ?>

    W operze działa, w mozilli się rozciągnęły bardzo boczne sidebary.
    Explorer podobnie jak poprzednio rozjechany.

    Sebek87

    (@sebek87)

    Masz spory bałagan w kodzie stawiam na jakiś niedomknięty tag, a druga sprawa:

    <dl class="accordion">
    			<div id="nav_menu-2" class="widget widget_nav_menu">		<dt class="acc"><div class="title">

    Nie umieszcza się divów w liście dl.

    Thread Starter astharoth89

    (@astharoth89)

    Ten szbalon wykupiłam z template monster – i tak były div-y w tej liście <dl> – wszystko działało do momentu zmian z tym banerem. Więc szukam czy gdzieś faktycznie jest niedomknięte ale dziwne.. bo w operze wygląda normalnie, teraz tylko mozilla, explorer rozjeżdża więc.. Gdyby coś było nie dokmknięte to podejrzewam, że rozjeżdżało by się wszędzie?

    Sebek87

    (@sebek87)

    No to nie zmienia tego, że tak nie powinno być zakodowane.

    Wydaje mi się, że widzę brak tagu </div>.

    Dodaj go zaraz po:

    <script type="text/javascript">
    		  //var fo = new FlashObject("/header_v82.swf", "head", "100%", "504", "7", "");
    
    		  var fo = new FlashObject("http://astharoth.p.ht/wp-content/themes/js/../flash/header_v82.swf?xmlUrl=http://astharoth.p.ht/wp-content/themes/js/../flash/tfile_main.xml", "play", "100%", "504", "8", "");
    		  fo.addParam("quality", "high");
    					fo.addParam("wmode", "transparent");
    					fo.addParam("scale", "noscale");
    		  fo.write("head");
    		</script>

Viewing 15 replies - 1 through 15 (of 24 total)
  • Temat ‘dwie skecje head na stronie’ jest zamknięty na nowe odpowiedzi.