24 Eki 2021 00:39 Yeni Konu Oluştur

Haberler:

Üye kayıt esnasında E-posta adresinizin doğru olduğuna ve Aktivasyon Mailinize bakmayı unutmayın.


bölüme göre logo ve arka plan değişimi

Başlatan snrj, 06 Ağu 2021 11:51

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

*

  1. 3,115

  2. 588

  3. 1005

şu konudaki istek doğrultusunda yapıldı
https://smf.konusal.com/index.php?topic=2469.0
daha önce paylaştım zannediyordum ama paylaşmamışım bende dökümanlar kısmına ekleyim dedim:D
basit bi kodlama ile çözüme ulaşalım anlatım smf 2.0.18 default temaya göre siz kendi temanıza uyarlarsınız zaten çok fazla bir değişiklik yok
temanızın index.template.php dosyasında bulun
// Output any remaining HTML headers. (from mods, maybe?)
echo $context['html_headers'];
altına ekleyin
//smf.konusal logo ve arkaplan değiştirici :D
$bolumler="1,2,5"; //aktif olmasını istediğimiz bölümlerin id numaralarını arada virgül olacak şekilde girelim
$bul = explode(',', $bolumler);
if (in_array($context['current_board'],$bul))
{
$context['bolum'] = $context['current_board'];

// ben arkaplan resmini değiştirmek istemiyorum diyen arkadaşlar alttaki kodu silebilirler
echo'', !empty($context['current_board']) ? '<link rel="stylesheet" href="' . $settings['theme_url'] . '/css/arkaplan' . $context['bolum'].'.css">': '', '';
// arkaplan değiştirmeyecek buraya kadar silin

}
koddaki açıklamaları okuyunuz ve kendinzie göre düzeltin sonra
bulun
', empty($settings['site_slogan']) ? '<img id="smflogo" src="' . $settings['images_url'] . '/smflogo.png" alt="Simple Machines Forum" title="Simple Machines Forum" />' : '<div id="siteslogan" class="floatright">' . $settings['site_slogan'] . '</div>', 'değiştirin
', empty($settings['site_slogan']) ? '<img id="smflogo" src="' . $settings['images_url'] . '/smflogo'.$context['bolum'].'.png" alt="Simple Machines Forum" title="Simple Machines Forum" />' : '<div id="siteslogan" class="floatright">' . $settings['site_slogan'] . '</div>', '

örnek olarak $bolumler="1,2,5";   kısmını böyle yaptıınızı varsayarak
temanıızın images klasörüne smflogo1.png, smflogo2.png, smflogo5.png adında 3 tane resim atınız (yani bölüm id numarası 15 se smflogo15.png adında logo yapacaksınız)

arkaplan içinse yine logo gibi ama bu sefer css dosyalaı oluşturacaz
temamızın css klasörün içine arkaplan1.css,arkaplan2.css ,arkaplan5.css dosyası yapalım (yani bölüm id numarası 15 se arkaplan15.css adında cssyapacaksınız)
örnek olarak css dosyası
body {
background: #800000 url(../images/theme/backdrop1.png) repeat-x;
}
tabi buna sadece arkaplan değilde tüm css değişikliklerini ekleyebilirsiniz

*

  1. 37

  2. 10

  3. 3
06 Ağu 2021 17:14 #1 Son düzenlenme: 10 Ağu 2021 10:32 kapt
Hocam ben logoyu değilde, forumumdaki üst headerin backgroundunun resmini değiştirmek istiyorum sizin attığınız arkaplan forumun arkaplanını değiştiriyor. Resimde kırmızı işaretlediğim yeri nasil değiştirebilirim? dosyalarimi atsam bakar misiniz?



Detaylı bakmaniz için geçici forum kurdum isterseniz foruma bakabilirsiniz

*

  1. 150

  2. 40

  3. 173
Anlatım sıfır default temaya göre olup farklı temalar için değişiklik arz edebilir.
Modifikasyon index.template.php ve index.css dosyası olmak üzere 2 dosyada değişiklik gerektirmekle beraber bölüm sayısı kadar da css dosyası ve bölüm sayısı kadar da logo oluşturulması gerektirmektedir.
Bazı bölümlerde standart logonuzu kullanmak isteyebilirsiniz. Bu bölümler için ayrıca css dosyası ve logo oluşturmanıza gerek yok.
index.template.php

Bul:

Kod (php) Seç
<div id="top_section">

            <h1 class="forumtitle">

                <a href="', $scripturl, '">', empty($context['header_logo_url_html_safe']) ? $context['forum_name'] : '<img src="' . $context['header_logo_url_html_safe'] . '" alt="' . $context['forum_name'] . '" />', '</a>

            </h1>';

Değiştir:

Kod (php) Seç
<div id="top_section">';
Bul:

Kod (php) Seç
echo '

    <link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/css/index', $context['theme_variant'], '.css?fin20" />';

Değiştir:

Kod (php) Seç
// The ?fin20 part of this link is just here to make sure browsers don't cache it wrongly.

    if($GLOBALS['board'] == "1.0" || $GLOBALS['board'] == "2.0" || $GLOBALS['board'] == "3.0")

{

echo'

    <link rel="stylesheet" type="text/css" href="',$settings['theme_url'],'/css/index',$GLOBALS['board'],'.css?fin20" />';

}

else

{

echo'

    <link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/css/index', $context['theme_variant'], '.css?fin20" />';

}

index.css

Bul:

Kod (css) Seç
#top_section

{

    min-height: 65px;

    overflow: hidden;

    margin-bottom: 3px;

}

Değiştir:

Kod (css) Seç
#top_section

{

    min-height: 148px;

    overflow: hidden;

    margin-bottom: 3px;

    background: url(../images/logolar/diger.png) no-repeat center center;

}

temanizin images kilasorune logolar diye bir kilasor acin

Daha sonra  hangi bölümlerde farklı logo görünmesini istiyorsak index.template.php dosyasına eklediğimiz kod üzerinde değişiklik yapalım.

Kodumuzun bi parçası şu idi:

Kod (php) Seç
if($GLOBALS['board'] == "1.0" || $GLOBALS['board'] == "2.0" || $GLOBALS['board'] == "3.0")
Kod bu haliyle 1, 2 ve 3 idli boardlara girildiğinde farklı logolar göstermeye yarar. Örneğin siz 23 idli boardda da bir başka logonun görüntülenmesini istiyorsunuz. Bu durumda bu kodda şu şekilde değişiklik yapmanız lazım:
Kod (php) Seç
if($GLOBALS['board'] == "1.0" || $GLOBALS['board'] == "2.0" || $GLOBALS['board'] == "3.0" || $GLOBALS['board'] == "23.0")Sıra geldi css dosyalarımızı oluşturmaya. Bir örnekle açıklayalım. Aşağıdaki örnekte 1 idli board için logo ataması yapalım.
index.css dosyamızda şu kodu buluyoruz:
Kod (css) Seç
#top_section

{

    min-height: 148px;

    overflow: hidden;

    margin-bottom: 3px;

    background: url(../images/logolar/diger.png) no-repeat center center;

}
Bu kodu şu şekilde değiştirip dosyamızı index1.css olarak farklı kaydedip temamızın css klasörüne atıyoruz.

Kod (css) Seç
#top_section

{

    min-height: 148px;

    overflow: hidden;

    margin-bottom: 3px;

    background: url(../images/logolar/bolum_1.png) no-repeat center center;

}

Koddan anlaşılacağı üzere bolum_1.png isimli resim 1 idli kategorinin logo resimi oluyor.

Artık hangi kategorilerde farklı logo göstermek istiyorsanız logolar isimli klasöre bolum_4.png, bolum_5.png isminde resimler oluşturup atarsınız.

*

  1. 3,115

  2. 588

  3. 1005

ben örnek olarak arkaplan değişimini vermiştim
ilgili kısmın css kodunu ekleyip yapabilirsiniz

*

  1. 37

  2. 10

  3. 3
10 Ağu 2021 11:50 #4 Son düzenlenme: 10 Ağu 2021 16:54 kapt
Alıntı yapılan: snrj - 09 Ağu 2021 16:10ben örnek olarak arkaplan değişimini vermiştim
ilgili kısmın css kodunu ekleyip yapabilirsiniz
Hocam yaptım istediğim gibi oldu fakat şöyle bir hata ile karşılaşıyorum hata panelinde. Sanırım koddaki bazı terimler kendi temamın dil dosyasında olmadığı için bu hatayı alıyorum. Yardımcı olacak var mı? Verdiğiniz kodda $bolum,bolumler gibi terimler var bunlardan kaynaklı hata sanırım.


*

  1. 3,115

  2. 588

  3. 1005
temanızın index.template ve ilgili dil dosyasını ekleyin bir bakalım

*

  1. 37

  2. 10

  3. 3
10 Ağu 2021 19:11 #6 Son düzenlenme: 12 Ağu 2021 19:29 kapt
Buyrun. Dil dosyasını bulamadım, hangisi bilmiyorum. Adı ne?

175. satır:    if (in_array($context['current_board'],$bul))
177. satır:    $context['bolum'] = $context['current_board'];

Hatada index.templatedeki 175. satırda sorun var diyor. İlgili satırı üste ekliyorum. 175. satırı silince 177. satır aynı hatayı veriyor onuda altına ekliyorum. Bu iki kod bende hataya sebep oluyor.
Verdiğiniz koddaki bu iki kodu silince hata vermiyor. Sanırım bu 2 kodda sıkıntı var.

*

  1. 3,115

  2. 588

  3. 1005

ekte verdiğimi deneyin


MENU ×