CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Обсуждение Eleanor CMS 0.9 PRE
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Первые шаги
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45
Alexander
Ну и чем мне это должно помочь?
A1es
Цитата (wormen @ 2013-01-19, 18:38)
Alexander, так речь была не об EleanorServ, а о таблицах в CMS

Вылет базы это баг платформы, а не CMS. Поэтому что вы хотите - непонятно :scratch_one-s_head:
wormen
Alexander, подскажи, какой файл нужно отредактировать, чтобы рядом с надписью локализации отображался соответствующий флаг.
Alexander
wormen, в templates/Uniel/index.php
wormen
Цитата (Alexander @ 2013-01-20, 15:06)
<br /><b>wormen</b>, в templates/Uniel/index.php
<br /><br />

участок кода нашел...

<div class="language">
<?php
if(Eleanor::$vars['multilang'])
{
    $langs=Eleanor::$langs;
    unset($langs[Language::$main]);
    foreach($langs as $k=>$v)
        echo'<a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><b>',substr($k,0,3),'</b></a>';
}
?>
</div>

но как прикрепить картинку, чтобы она менялась вместе с языком таки не разобрался.....
Alexander
Цитата (wormen @ 2020-11-25 00:08)
но как прикрепить картинку, чтобы она менялась вместе с языком таки не разобрался.....


Вместо <b>',substr($k,0,3),'</b> впишите код картинки...
wormen
Цитата (Alexander @ 2013-01-22, 19:13)
Вместо <b>',substr($k,0,3),'</b> впишите код картинки...


Alexander, если я тебя правильно понял, ты предлагаешь использовать картинки вместо текста, но мне нужен и текст и картинки
Alexander
wormen, когда на фоне картинки написан текст?
wormen
Цитата (Alexander @ 2020-11-25 00:08)
wormen, когда на фоне картинки написан текст?


верно.....чтобы было так......флаг+текст rus/eng
Alexander
wormen, в верстке я плохо понимаю: дайте код, который хотите получить на выходе - я вам покажу, как добиться такого результата.
wormen
исходная часть кода для вывода текста локализации

<div class="language">
<?php
if(Eleanor::$vars['multilang'])
{
    $langs=Eleanor::$langs;
    unset($langs[Language::$main]);
    foreach($langs as $k=>$v)
        echo'<a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><b>',substr($k,0,3),'</b></a>';
}
?>
</div>

эта часть <b>',substr($k,0,3),'</b> кода я так понял выводит непосредственно сам текст, на мой взгляд в итоге должен получиться примерно следующий код

<div class="language">
<?php
if(Eleanor::$vars['multilang'])
{
    $langs=Eleanor::$langs;
    unset($langs[Language::$main]);
    foreach($langs as $k=>$v)
        echo'<a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><div class="flag"></div><b>',substr($k,0,3),'</b></a>';
}
?>
</div>

<div class="flag"></div> часть кода куда будет подгружаться картинка флага

это можно сделать с помощью jquery, но я просто не понял откуда подгружается текст в этот участок кода <b>',substr($k,0,3),'</b> и к тому же в этом участке кода нету никаких идентификаторов чтобы зацепить скрипт......уже даже мысля пришла в голову, чтобы менять картинку в зависимости какой текст в теге.......

выше я описал как это вижу, было бы еще неплохо, если бы ты поподробнее описал эту часть кода
<div class="language">
<?php
if(Eleanor::$vars['multilang'])
{
    $langs=Eleanor::$langs;
    unset($langs[Language::$main]);
    foreach($langs as $k=>$v)
        echo'<a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><b>',substr($k,0,3),'</b></a>';
}
?>
</div>

что откуда подгружается.....а jquery скрипт я уже сам напишу
Alexander
Строка substr($k,0,3) выводит "rus", "eng" т.е. первые три буквы языка. Таким образом можно вставить и уникальный идентификатор.
wormen
не стал я сильно разбираться что откуда подгружается, и написал свой мини плагин для отображения картинки рядом с текстом локализации, сначала я подкоректировал исходную часть кода:

<div class="language">
<?php
if(Eleanor::$vars['multilang'])
{
$langs=Eleanor::$langs;
unset($langs[Language::$main]);
foreach($langs as $k=>$v)
echo'<div class="flag"></div><a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><b id="localize">',substr($k,0,3),'</b></a>';
}
?>
</div>

В теме в файле index.php дописываем строку
<script type="text/javascript" src="<?php echo$theme?>js/init.js"></script>

в папке /templates/Uniel/js/ создал файл init.js
в него прописал содержимое:

$(function flags() {
//позиционирование блока <div class="flag"></div> и создание размера
$( ".flag" ).css({
'position': 'relative', 
'top': '-6px', 
'float': 'left', 
'width': '47px', 
'height': '32px'
})
//сканируем тег <b id="localize"></b> на наличие текста
if ($("b#localize").text() == "rus") { $( ".flag" ).css({'background': 'url(/templates/Uniel/images/rus.png)'}) } //если текст rus
if ($("b#localize").text() == "eng") { $( ".flag" ).css({'background': 'url(/templates/Uniel/images/eng.png)'}) } //если текст eng
});


для украинской локализации не делал, не было необходимости, скрипт меняется легко, кому нужно допишите
картинки флагов прилагаю 


wormen
я тут немного затупил....

Alexander, перенеси мой последний пост в эту тему

....и плагин добавь в стандартную комплектацию CMS, наверняка эти функции еще не раз пригодятся....
wormen
в CMS есть свои картинки с флагами, то пути будут такими

if ($("b#localize").text() == "rus") { $( ".flag" ).css({'background': 'url(/images/lang_flags/rus.png)'}) } //если текст rus
if ($("b#localize").text() == "eng") { $( ".flag" ).css({'background': 'url(/images/lang_flags/eng.png)'}) } //если текст eng
Alexander
wormen, к сожалению переносить посты сейчас невозможно :(

Пару комментариев.

foreach($langs as $k=>$v)
	echo'<div class="flag"></div><a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><b id="localize">',substr($k,0,3),'</b></a>';

Во-впервых это создает невалидный код. Потому что идентификаторы элементов должны быть уникальными.

Во-вторых, я же писал, что строка substr($k,0,3) возвращает 3 первых буквы языка... Таким образом, ваш JS можно удалить, а вместо вышенаписанного (в моеём посте) кода, нужно написать примерно следующее:


foreach($langs as $k=>$v)
{
	$pref3=substr($k,0,3);
	echo'<div class="flag" style="background:url(images/lang_flags/',$pref3,'.png)"></div><a href="',Eleanor::$filename,'?language=',$k,'" title="',$v['name'],'"><b>',$pref3,'</b></a>';
}


Вот так.
wormen
ну ты в принципе сделал тоже самое, только средствами PHP...
Alexander
wormen, просто обратите внимание, что совершенно не обязательно усложнять настолько себе жизнь.
wormen
Alexander, а в чем невалидность моего кода?
что касается идентификаторов, то это еще спорный вопрос....

if ($("b").text() == "rus") { $( ".flag" ).css({'background': 'url(/images/lang_flags/rus.png)'}) }
if ($("b").text() == "eng") { $( ".flag" ).css({'background': 'url(/images/lang_flags/eng.png)'}) }

там скрипт просто сканирует наличие нужного текста в теге, и вставляет нужную картинку в div
Alexander
wormen, невалидный код создает <b id="localize"> - идентификаторы должны быть уникальным на странице.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.