Снова редактор...

Перелопатил здесь кучу топиков про выравнивание текста. По этим топикам прикрутил кнопки к редактору markitup, прописал теги в Jevix.php. Вроде как все получилось, но оказалось что нет. Главное что интересно — выравнивание по краям и по центру работает, а вот выравнивание по ширине не хочет ни в какую… Кто нибудь прикручивал выравнивание текста к редактору? Помогите пожалуйста решить проблему.
Вот мой jevix.php может там где то что то добавить или убрать надо…
Просто непонятно почему
<div align="right">текст</div><div align="center">текст</div><div align="left">текст</div>
работают, а
<div align="justify">текст</div>
нифига не работает. Кто знает что за тайна?

На всякий случай вот мой jevix

<?php

return array(
	'default' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('ls', 'cut', 'a', 'img', 'i', 'b', 'u', 's', 'video', 'em',  'strong', 'nobr', 'li', 'ol', 'ul', 'sup', 'abbr', 'sub', 'acronym', 'h4', 'h5', 'h6', 'br', 'hr', 'pre', 'code', 'object', 'param', 'embed', 'blockquote', 'iframe', 'table', 'th', 'tr', 'td', 'div', 'p'),
			),			
		),
		// Коротие теги типа
		'cfgSetTagShort' => array(
			array(
				array('br','img', 'hr', 'cut','ls')
			),
		),
		// Преформатированные теги
		'cfgSetTagPreformatted' => array(
			array(
				array('pre','code','video')
			),
		),
		// Разрешённые параметры тегов
		'cfgAllowTagParams' => array(
			// вызов метода
			array(
				'img',
				array('src', 'alt' => '#text', 'title', 'align' => array('right', 'left', 'center', 'middle'), 'width' => '#int', 'height' => '#int', 'hspace' => '#int', 'vspace' => '#int', 'class'=> array('image-center'))
			),

			array(
                                'div',
                                array('align'=> array('left','center','right','justify'))
                        ),       
               
           array(
                                'p',
                                array('align'=> array('left','center','right','justify'))
                        ),       

           


			// следующий вызов метода
			array(
				'a',
				array('title', 'href', 'rel' => '#text', 'name' => '#text', 'target' => array('_blank'))
			),
			// и т.д.
			array(
				'cut',
				array('name')
			),
			array(
				'object',
				array('width' => '#int', 'height' => '#int', 'data' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')), 'type' => '#text')
			),
			array(
				'param',
				array('name' => '#text', 'value' => '#text')
			),
			array(
				'embed',
				array('src' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')), 'type' => '#text','allowscriptaccess' => '#text', 'allowfullscreen' => '#text','width' => '#int', 'height' => '#int', 'flashvars'=> '#text', 'wmode'=> '#text')
			),
			array(
				'acronym',
				array('title')
			),
			array(
				'abbr',
				array('title')
			),
			array(
				'iframe',
				array('width' => '#int', 'height' => '#int', 'src' => array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')))
			),
			array(
				'ls',
				array('user'=>'#text')
			),
			array(
				'td',
				array('colspan'=>'#int','rowspan'=>'#int','align'=>array('right', 'left', 'center', 'justify'),'height'=>'#int','width'=>'#int')
			),
			array(
				'table',
				array('border'=>'#int','cellpadding'=>'#int','cellspacing'=>'#int','align'=>array('right', 'left', 'center', 'justify'),'height'=>'#int','width'=>'#int')
			),
		),
		// допустимые комбинации значений у параметров
		'cfgSetTagParamCombination' => array(
			array(
				'param',
				'name',
				array(
					'allowScriptAccess' => array(
						'value'=>array('sameDomain'),
					),
					'movie' => array(
						'value'=>array('#domain'=>array('youtube.com','rutube.ru','vimeo.com')),
					),
					'align' => array(
						'value'=>array('bottom','middle','top','left','right','justify','center'),
					),
					'base' => array(
						'value'=>true,
					),
					'bgcolor' => array(
						'value'=>true,
					),
					'border' => array(
						'value'=>true,
					),
					'devicefont' => array(
						'value'=>true,
					),
					'flashVars' => array(
						'value'=>true,
					),
					'hspace' => array(
						'value'=>true,
					),
					'quality' => array(
						'value'=>array('low','medium','high','autolow','autohigh','best'),
					),
					'salign' => array(
						'value'=>array('L','T','R','B','TL','TR','BL','BR'),
					),
					'scale' => array(
						'value'=>array('scale','showall','noborder','exactfit'),
					),
					'tabindex' => array(
						'value'=>true,
					),
					'title' => array(
						'value'=>true,
					),
					'type' => array(
						'value'=>true,
					),
					'vspace' => array(
						'value'=>true,
					),
					'wmode' => array(
						'value'=>array('window','opaque','transparent'),
					),
				),
				true, // Удалять тег, если нет основного значения параметра в списке комбинаций
			),
		),
		// Параметры тегов являющиеся обязательными
		'cfgSetTagParamsRequired' => array(
			array(
				'img',
				'src'
			),			
		),
		// Теги которые необходимо вырезать из текста вместе с контентом
		'cfgSetTagCutWithContent' => array(
			array(
				array('script',  'style')
			),
		),
		// Вложенные теги
		'cfgSetTagChilds' => array(
			array(
				'ul',
				array('li'),
				false,
				true
			),
			array(
				'ol',
				array('li'),
				false,
				true
			),
			array(
				'object',
				'param',
				false,
				true
			),
			array(
				'object',
				'embed',
				false,
				false
			),
			array(
				'table',
				array('tr'),
				false,
				true
			),
			array(
				'tr',
				array('td','th'),
				false,
				true
			),
		),
		// Если нужно оставлять пустые не короткие теги
		'cfgSetTagIsEmpty' => array(
			array(
				array('param','embed','a','iframe')
			),
		),
		// Не нужна авто-расстановка 
		'cfgSetTagNoAutoBr' => array(
			array(
				array('ul','ol','object','table','tr')
			)
		),
		// Теги с обязательными параметрами
		'cfgSetTagParamDefault' => array(
			array(
				'embed',
				'wmode',
				'opaque',
				true
			),
		),
		// Отключение авто-добавления 
		'cfgSetAutoBrMode' => array(
			array(
				true
			)
		),
		// Автозамена
		'cfgSetAutoReplace' => array(
			array(
				array('±', '©', '©', '®', '©', '©', '®'),
				array('±', '©', '©', '®', '©', '©', '®')
			)
		),
		// Список допустимых протоколов для ссылок
		'cfgSetLinkProtocolAllow' => array(
			array(
				array('http','https','ftp')
			)
		),
		'cfgSetTagNoTypography' => array(			
			array(
				array('code','video','object')
			),
		),
		// Теги, после которых необходимо пропускать одну пробельную строку
		'cfgSetTagBlockType' => array(
			array(
				array('h4','h5','h6','ol','ul','blockquote','pre','table','iframe')
			)
		),
		'cfgSetTagCallbackFull' => array(
			array(
				'ls',
				array('_this_','CallbackTagLs'),
			),
		),
	),
	
	// настройки для обработки текста в результатах поиска
	'search' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('span'),
			),			
		),
		// Разрешённые параметры тегов
		'cfgAllowTagParams' => array(
			array(
				'span',
				array('class' => '#text')
			),			
		),
	),
);

Не получается добавить свой тег

Хочу добавить свой тег «hide», который будет проверять текущее кол-во комментариев у юзера. Если меньше 10, то показывать, скажем, фигу, в противном случае скрытый текст

Как я понял, тег добавляется внесением изменений в код всего лишь двух файлов:
  1. config/jevix.php
  2. engine/modules/text/

Что было сделано:
Тег был добавлен в список разрешённых тегов
return array(
	'default' => array(
		// Разрешённые теги
		'cfgAllowTags' => array(
			// вызов метода с параметрами
			array(
				array('ls','hide',


В конец файла Text.class.php добавил код:
public function CallbackTagHide($sText) {
$iCountCommentUser=$this->Comment_GetCountCommentsByUserId($this->oUserCurrent->getId(),'topic');
		if ($iCountCommentUser<=10) {
		$sText='Не хватает комментариев';
		return $sText;}
		else {
		$sText=str_replace("<hide>",'<p class="hide"><hide>',$sText);
		$sText=str_replace("</hide>",'</hide></p>',$sText);
		return $sText;
		}
		}


в этом же файле добавил:
/**
	 * Парсит текст, применяя все парсеры
	 *
	 * @param string $sText Исходный текст
	 * @return string
	 */
	public function Parser($sText) {
		if (!is_string($sText)) {
			return '';
		}
		$sResult=$this->FlashParamParser($sText);
		$sResult=$this->JevixParser($sResult);
		$sResult=$this->VideoParser($sResult);
		$sResult=$this->CodeSourceParser($sResult);
		<strong>$sResult=$this->CallbackTagHide($sResult);</strong>
		return $sResult;
	}
Может и не надо было, но делал по аналогии с code

На сайте в TinyMCE в html окне редактора вставляю код:
<hide>Скрытый текст</hide>

после нажатия обновить он превращается в
<p>Текст</p>


Думал что не работает условие и пробовал такой вариант:
public function CallbackTagHide($sText) {
		$sText=str_replace("<hide>",'<p><hide>',$sText);
		$sText=str_replace("</hide>",'</hide></p>',$sText);
		return $sText;
		}


Не работает.
Хороших мануалов по добавлению тегов не нашёл. Может где ещё нужно какой код добавить? Всем спасибо.

Спам в тегах

В последнее время, заглянув в статистику, обнаружил большое количество ссылающихся сайтов, преимущественно китайских. Ссылки приблизительно такого вида t.xnrg.net/?page=1433&url=www.touhao.org.cn. Посмотрел куда они ссылаются — на теги. В итоге получается такая страница с тегом www.mysite.ru/tag/www.touhao.org.cn/.
тег
Так вот вопрос следующего характера, не определят поисковики это как спам? И второй вопрос, как можно с этим бороться, может как-то в поле input добавить тег nofollow или как-то еще. Может кто сталкивался с такой проблемой.

Запретить новые теги

Добрый день!

Кто-то может подсказать, как можно запретить пользователю при создании новой темы добавлять к нему новые теги, а оставить возможность выбирать уже имеющиеся в базе теги?

Подскажите

В какой файл вставить код рекламы, чтобы она отображалась как здесь на сайте в правом меню, только желательно чтоб была в самом низу

Категоризация

Не нашел реализации до сих пор, а сталкиваться с написанием плагинов с нуля пока что не хочу.
Вдруг что-то пропустил?

Требуется реализовать некоторую «надстройку» для тегов. Идея такова, что люди будут ошибаться проставляя теги и вообще ленивые и им нужна возможность создавать субкатегории. Причем идеально не для персонального блога, а для пользователя, что резоннее делать «личными тегами»

А.к.а
1) чтобы была возможность сделать выборку постов пользователя, попадающих под категорию А и категорию Б (но не одноименные категории другого пользователя)
2) Чтобы пользователь мог динамично выбирать нужные категории из списка и редактировать их у себя в профиле.

Если нет реализации, прошу подсказать как проще можно сделать — или же сдаться и начать писать плагин с нуля)

P.S. Если я мог отправить это в подходящий блог — скажите, я так и не понял что подойдет для такого вопроса лучше)

Убрать в списке

Подскажите какой файл содержит код построения списка в редакторе. Необходимо убрать br после тега ul и перед /ul.

Извините, теги порезались

$ - Исправить баг в плагине Теги для блогов

Добрый день. Кто возьмется за вознаграждение исправить баг в плагине Теги для блогов?

Сейчас в нем существует такая проблема: если пользователь создает блог, забыв указать тег к блогу, то выскакивает вот это:

Notice: Undefined index: blog_tags_array in Z:\home\localhost\www\testsite.ru\plugins\blogtags\classes\hooks\HookBlogTags.class.php on line 21

[Денвер: показать возможную причину ошибки]

Warning: implode() [function.implode]: Invalid arguments passed in Z:\home\localhost\www\testsite.ru\plugins\blogtags\classes\hooks\HookBlogTags.class.php on line 21

Warning: Cannot modify header information — headers already sent by (output started at Z:\home\localhost\www\testsite.ru\plugins\blogtags\classes\hooks\HookBlogTags.class.php:21) in Z:\home\localhost\www\testsite.ru\engine\include\function.php on line 234

Warning: Cannot modify header information — headers already sent by (output started at Z:\home\localhost\www\testsite.ru\plugins\blogtags\classes\hooks\HookBlogTags.class.php:21) in Z:\home\localhost\www\testsite.ru\engine\include\function.php on line 235

Нужно что бы вместо этого просто выводилось сообщение «Вы забыли указать тег для блога».