Автор
Сообщение
	//чё ищем, какой языковый блок
	$find_lang = "en";

	//текст для примера где ищем
	$text = "
	  [lang:ru]  
			[title]Что такое Seditio![/title]
	    [text]		
				<p>Это хорошо, что Вы задали такой вопрос. Это уже может означать только то, 
				что Вы заинтересовались данной системой. Так что же такое Seditio?</p>				
				<p>Кто то называет ее CMS (система управления контентом — 
				или на русском — содержимым сайта), другие называют «Порталом», 
				третьи «Движком сайта». На самом деле и первые, и вторые и третьи – правы.</p>				
				<p>Seditio – это система на основе языка PHP, которая хранит и 
				фильтрует информацию в базе данных MySQL, и посылает эту 
				информацию в формате HTML в браузер пользователя, которую 
				последние видят в красивом виде с помощью встроенных 
				в систему «скинов», иначе «шаблонов».</p>			
			[/text]
		[/lang]
		[lang:en]  
			[title]What Seditio![/title]
	    [text]		
				<p> It's good that you ask this question. It already can only mean,
				that you are interested in this system. So what is Seditio? </p>				
				<p> Someone calls it a CMS (content management system -
				or Russian - the contents of the site), the other is called 'Portal'
				third 'site engine.' In fact, both the first and second and third - the right. </p>				
				<p> Seditio - a system based on the language PHP, which stores and
				filters the information in the database MySQL, and sends this
				information in HTML format in the user's browser, which
				last seen in a beautiful form with built
				In 'skins', or 'templates'. </p>	
			[/text]
		[/lang]
	";

  //парсим блоки
	if(preg_match_all('/\[lang:(.+?)\](.+?)\[\/lang\]/isu', $text, $matches)) 
    {        
				//Ищем нужный блок
				foreach($matches[1] as $key => $lang) 
        {         
            $findkeylang = ($lang == $find_lang) ? $key : '';
        }
        
				if (!empty($findkeylang))
				{
					//выбираем найденный блок
					$findtext = $matches[2][$findkeylang];
					
					//парсим заголовок
					if(preg_match_all('/\[title\](.+?)\[\/title\]/isu', $findtext, $matches2))
					{						
							$page_title = $matches2[1][0];
					}
	
					//парсим текст
					if(preg_match_all('/\[text\](.+?)\[\/text\]/isu', $findtext, $matches3))
					{
							$page_text = $matches3[1][0];
					}        
        }
    
	echo "<h1>".$page_title."</h1>";
	echo $page_text;
			
		}

 

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

[lang:ru] 

[title]Что такое Seditio![/title]

[text]В общем смысл в том, что всё это дело нужно обернуть в функцию, входные параметры у которой 1) Текст страницы 2) Язык а выходные ассоциативный массив с текстом найденного блока и заголовком.

В визуальном редакторе когда будут вставлятся языковые блоки может быть трабл с абзацами.[/text]

[/lang]  

<p>[lang:ru]&nbsp;</p>

<p>[title]Что такое Seditio![/title]</p>

<p>[text]В общем смысл в том, что всё это дело нужно обернуть в функцию, входные параметры у которой 1) Текст страницы 2) Язык а выходные ассоциативный массив с текстом найденного блока и заголовком.</p>

<p>В визуальном редакторе когда будут вставлятся языковые блоки может быть трабл с абзацами.[/text]</p>

<p>[/lang] &nbsp;</p>

Т.е. для текста страницы придётся вставлять открывающийся <p> и закрывающейся тег </p>

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

Что-то это совсем жосткие костыли, мешать ббкод, хтмл и визуальный редактор, думаю дальше.

С заголовком и описанием кое-как решилось через экстра поля, сча задача стоит вырезать ненужный языковой блок контента в зависимости от домена, для "чистой" выдачи.

Что если сипользовать в визуальном редакторе языковые блоки разметки, типа:

<div lang="ru"> ... </div lang="ru">
<div lang="en"> ... </div lang="en">

 

Welcome to mother Russia: Putin, medvedi, matrioshka, balalayka, okhuenno!


отредактировал(а) Antony: 16-11-14 14:31 GMT

Разницы совершенно никакой.

<div lang="ru">
		<title>Что такое Seditio!</title>
    <div id="text">		
			<p>Это хорошо, что Вы задали такой вопрос. Это уже может означать только то, 
			что Вы заинтересовались данной системой. Так что же такое Seditio?</p>				
			<p>Кто то называет ее CMS (система управления контентом — 
			или на русском — содержимым сайта), другие называют «Порталом», 
			третьи «Движком сайта». На самом деле и первые, и вторые и третьи – правы.</p>				
			<p>Seditio – это система на основе языка PHP, которая хранит и 
			фильтрует информацию в базе данных MySQL, и посылает эту 
			информацию в формате HTML в браузер пользователя, которую 
			последние видят в красивом виде с помощью встроенных 
			в систему «скинов», иначе «шаблонов».</p>			
		</div>
</div>

В твоём случае, каждый раз придётся лезть в исходный код страницы и вставлять эти блоки. Плюс нужно также будет парсить текст для вырезки.

А вот в случае с моим представлением теги будут видны непосредственно в редакторе, нинужно никаких плагинов и т.д.

 

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!

И огромный плюс, что и в случае с BBCode режимом всё будет работать )

Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!