# Sitego (14.09.2016 / 17:21)
Читаю во многих темах эти все тёрки по поводу переводов и озадачен мыслью - покажите мне хоть один мультиязычный сайт (в полном смысле этого понятия) на JohnCMS. На счёт названия ссылок и менюшек на л
Полная мультиязычность делается по другому.
В джоне это просто возможность сделать сайт на языке, отличном от русского и не напрягаться с переводом.
Обычный полностью мультиязычный сайт конечно на джоне сделать чтобы надо попотеть...
Simba, ну так а я о чём? Зачем все эти тёрки с языковыми файлами, если можно непосредственно в файлах сайта прописать названия на нужном языке? Баловство. Как будто кто-то собирается менять название ссылок чаще, чем несколько раз в год. Если так, то тогда вообще не важно что там написано, можно писать например "абырвалг"
# ДоХтор (14.09.2016 / 17:15)
А ты попробуй вынести подключение шапки после switch'а - результат должен быть такой же, но дублирующегося кода будет меньше.
ну так обычно идет
ядро
место
тайтл
шапка
свитч
кейс 1
кейс 2
...
кейс 100500
в таком случае все кейсы будут иметь один тайтл.
ядро
место
свитч
кейс 1
тайтл
шапка
кейс 2
тайтл
шапка
...
кейс 100500
тайтл
шапка
в таком будет каждому свой.
ну или я не так тебя понял?
кажется понял
MARAZM,
ну или я не так тебя понял?
Не знаю, так или нет, но попробую написать код для примера.
MARAZM,
демонстрационный пример (+/-)
<?php
const _IN_JOHNCMS = 1;
require_once '../incfiles/core.php';
!isset($_GET['go']) ?: $go = functions::checkin($_GET['go']);
switch($go) {
case 'forum':
$textl = 'Форум';
break;
case 'gallery':
$textl = 'Галерея';
break;
case 'library':
$textl = 'Библиотека';
break;
default:
$textl = 'Главная';
break;
}
// Подключаем head.php после переключателя switch
require_once '../incfiles/head.php';
echo 'Вы в разделе <b>'. $textl .'</b><br />'.
'<a href="?go=forum">Форум</a><br />'.
'<a href="?go=gallery">Галерея</a><br />'.
'<a href="?go=library">Библиотека</a><br />'.
'<a href="?">На главную</a><br />';
require_once '../incfiles/end.php';
____________________________
И разумеется, в заголовке браузера <title> будет корректно перезаписываться.
ДоХтор, Макс писал крутую штуку с буфером, там можно в любом месте было задать титл
# Koenig (14.09.2016 / 19:37)
ДоХтор, Макс писал крутую штуку с буфером, там можно в любом месте было задать титл
Да, я видел ) Даже изучал его класс на гитхабе - сперва не мог понять, как создаётся у него объект класса, если конструктор приватный ... Ну а потом дочитал код до метода getInstance(), и понял, что он-то и создаёт экземпляр класса PageBuffer.
3мя строчками кода на js можно сделать.
4мя на пхп через буфер.
более того, я бы настоятельно рекомендовал использовать это.
не важно каким способом, но начать генерить из контента метатеги, титлы и микроразметку
малость говнокода (+/-)
function customHeaderRegistry($name = null, $value = null, $tag = false)
{
static $data = [];
if(is_null($name) AND is_null($value)){
return $data;
}else{
if($tag){
$data['tags'][$name] = $value;
}else{
$data[$name] = $value;
}
}
}
function createCustomHeader(array $header = [])
{
customHeaderRegistry('boxstart', isset($header['boxstart']) ? $header['boxstart'] : '<newheader>');
customHeaderRegistry('boxend', isset($header['boxend']) ? $header['boxend'] : '</newheader>');
customHeaderRegistry('tags', isset($header['tags']) ? $header['tags'] : []);
ob_start();
}
function setCustomHeader($tag, $value)
{
customHeaderRegistry($tag, $value, true);
}
function replaceCustomHeader()
{
$data = customHeaderRegistry();
$html = ob_get_contents();
ob_clean();
foreach ($data['tags'] as $tag=>$value){
$html = preg_replace('|(<[^>]+'.$tag.'.*?)content="([^"]+)|is', '\1 content="'.$value, $html);
$html = preg_replace('|<'.$tag.'>([^<]+)|is', '<'.$tag.'>'.$value, $html);
}
ob_start();
echo $html;
}
createCustomHeader(); // запускаем в самой самой шапке
setCustomHeader('title', 'test script');
setCustomHeader('description', 'test 222');
// в любом месте скрипта вставляем подобные строчки
replaceCustomHeader(); // в самоооом самом конце
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes">
<meta name="HandheldFriendly" content="true">
<meta name="MobileOptimized" content="width">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta name="Generator" content="JohnCMS, http://johncms.com
<meta name="keywords" content="johncms, cms, php, wap, mobile">
<meta name="description" content="test 222">
<link rel="stylesheet" href="http://johncms.com/theme/selemet/style.css">
<link rel="shortcut icon" href="http://johncms.com/favicon.ico">
<link rel="alternate" type="application/rss+xml" title="RSS | Новости ресурса" href="http://johncms.com/rss/rss.php">
<title>test script</title>
</head>
Добавлено: 14.09.2016 / 23:36
я конечно попросил помощи, это просто нечто, люблю этот сайт
Добавлено: 20.04.2017 / 09:18
Помогите вывести Название фильма
$res2 = mysql_fetch_assoc(mysql_query('SELECT `movies` FROM `id` WHERE `name` '));
$textl = 'Фильм: '. $res2 .'';