Wsparcie » Zaawansowane » dwie skecje head na stronie

  • 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)
  • 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; ?>

    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 🙂

    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ę 🙂

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

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

    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 🙂

    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.

    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 🙂

    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

    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.

    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.

    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.

    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.

    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?

    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)
  • The topic ‘dwie skecje head na stronie’ is closed to new replies.