Перейти к публикации

Редактор (shortnews.php) кол-во символов


Рекомендованные сообщения

Добрый день.

Вот пытаюсь в модуле добавления новостей в админке ограничеть кол-во символов в поле textarea - short_news

Код из /editor/shortnews.php

  <textarea id="short_story" onKeyDown="textCounter(this.form.short_story);" 

onKeyUp="textCounter(this.form.short_story);" name="short_story" rows=4 cols=30>{$row['short_story']}</textarea>
Код JS из /inc/addnews.php
<script LANGUAGE="JavaScript">

<!--//

function textCounter(field) {

var maxlimit = 5;

if (field.value.length > maxlimit) 

field.value = field.value.substring(0, maxlimit);

else 

countfield.value = maxlimit - field.value.length;

}

//-->

</script>
Но почему то не работает. Если создать обычный html
<script LANGUAGE="JavaScript">

<!--//

function textCounter(field) {

var maxlimit = 5;

if (field.value.length > maxlimit) 

field.value = field.value.substring(0, maxlimit);

else 

countfield.value = maxlimit - field.value.length;

}

//-->

</script>

  <form>

<textarea name=short_story cols=28 rows=4 

onKeyDown="textCounter(this.form.short_story);" 

onKeyUp="textCounter(this.form.short_story);"></textarea>

<br><small>Осталось 

<input readonly type=text name=remLen size=4 maxlength=3 value="5">

 знаков

</form>

То все работает.

Что делать??

Как можно ограничеть кол-во символов в поле textarea при добавлении новостей?

Изменено пользователем sayber
Ссылка на сообщение
Поделиться на других сайтах

sayber, если в визуальном редакторе то я даже не представляю как - видимо править файлы от Инновы, а в bb_code режиме так как написано у вас.

Единственно что, строчка

countfield.value = maxlimit - field.value.length;

не верная на мой взгляд

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Я JS не знаю практически. Поэтому где что править хз....

А начальство требует что бы все работало.

Пока не работает - они не хотят покупать лицензию.

А я в свою очередь не хочу переходить на другой код. Т.к. этот уже хорошо знаю.

Ссылка на сообщение
Поделиться на других сайтах

sayber, вы лучше напишите что конкретно надо.

в модуле добавления новостей в админке ограничеть кол-во символов
это следствие (одно из возможных решений), а что является причиной (задачей)?
Ссылка на сообщение
Поделиться на других сайтах

Задачей: Что бы "Журналист" не мог добавить в краткую новость больше 400 символов.

И что бы он это понял =)

Если взять выше указанный пример, то там это реализованно. Больше символов не ввести.

Изменено пользователем sayber
Ссылка на сообщение
Поделиться на других сайтах

ну я бы сделал так: написал "правило о 400 символах" и при отправке формы проверял + проверка на уровне php

Ссылка на сообщение
Поделиться на других сайтах

Ну надо что бы именно визуально было видно
я вам говорю вы из-за каприза остановили всю работу над сайтом, спрашивается - зачем? Посмотрите на гиганта простоты: на Гугль, там нет таких извращений, но тем не менее понятно что нужно сделать иили ввести.

А при каждом нажатии клавиши делать проверку на яваскрипте... увольте. Даже если бы знал как это делать в паре с визуальным редактором - не стал бы.

Пока писал текст - пришла мысль: попробуйте вместо

onKeyUp="textCounter(this.form.short_story);"
такую конструкцию
onKeyUp="textCounter(oEdit1.getXHTMLBody());"

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Не работает (((

Капризы то не мои. Капризы Главного Редактора.

Я пытаюсь ему обьяснить что фиг вам... а он по своей плоскости.

Еще вопросик. Можно как то сделать такую вещь:

Когда мы загружаем изображение в редактор больше по размеру чем указанно в конфиге, мы получаем первьюшку.

Выглядет это [thumb=left]......[/thumb]

А можно как то сделать чтобы не BB кодом а рисункуом.

Ссылка на сообщение
Поделиться на других сайтах

Не работает (((
ну попробуйте так:
onKeyUp="alert(oEdit1.getXHTMLBody());"
и посмотрите что выйдет в алерте.
А можно как то сделать чтобы не BB кодом а рисункуом.
Можно. я сделал так: файл engine/inc/files.php заменил
		function insertthumb(selectedImage, selectedThumbs) {


		   imageAlign = document.forms['properties'].imageAlign.value;";


		echo"if (imageAlign == 'center') finalImage = \"[center][thumb]\"+ selectedImage +\"[/thumb][/center]\";

		else finalImage = \"[thumb=\"+ imageAlign +\"]\"+ selectedImage +\"[/thumb]\";

		";


		if(!$wysiwyg){echo"window.opener.doInsert(finalImage, '', false); window.focus();";}

		   else{ echo"	if(navigator.appName.indexOf('Microsoft')!=-1)

		{

		//Use dialogArguments.oUtil.obj to get editor object for IE version

		//-----------------------------------------------------------------

		var obj=dialogArguments.oUtil.obj;

		}

	else

		{

		//Use window.opener.oUtil.obj to get editor object for Mozilla version

		//--------------------------------------------------------------------

		var obj=window.opener.oUtil.obj;

		}


	//Use insertHTML() function to insert your custom html

	obj.insertHTML(finalImage);"; }


						echo"


						}
на
		function insertthumb(selectedImage, selectedThumbs, idImage)

		{

			finalImage = '<a id="'+idImage+'" href="'+selectedImage+'" class="highslide" onclick="return hs.expand (this, { captionEval: \'this.thumb.alt\' })">';

			finalImage+= '<img src="'+selectedThumbs+'" align="left"/></a>';


			if(navigator.appName.indexOf('Microsoft')!=-1)

			{

				//Use dialogArguments.oUtil.obj to get editor object for IE version

				//-----------------------------------------------------------------

				var obj=dialogArguments.oUtil.obj;

			}

			else

			{

				//Use window.opener.oUtil.obj to get editor object for Mozilla version

				//--------------------------------------------------------------------

				var obj=window.opener.oUtil.obj;

			}

			//Use insertHTML() function to insert your custom html

			obj.insertHTML(finalImage);

		}

Изменено пользователем lifestar
Ссылка на сообщение
Поделиться на других сайтах

Спасибо. Я немного поправил твой код.

Кому надо: менять на

   function insertthumb(selectedImage, selectedThumbs, idImage)

		{

			finalImage = '<a id=\"'+idImage+'\" href=\"'+selectedImage+'\" class=\"highslide\" onclick=\"return hs.expand (this, { captionEval: \'this.thumb.alt\' })\">';

			finalImage+= '<img src=\"'+selectedThumbs+'\" align=\"left\"/></a>';


			if(navigator.appName.indexOf('Microsoft')!=-1)

			{

				//Use dialogArguments.oUtil.obj to get editor object for IE version

				//-----------------------------------------------------------------

				var obj=dialogArguments.oUtil.obj;

			}

			else

			{

				//Use window.opener.oUtil.obj to get editor object for Mozilla version

				//--------------------------------------------------------------------

				var obj=window.opener.oUtil.obj;

			}

			//Use insertHTML() function to insert your custom html

			obj.insertHTML(finalImage);

		}

onKeyUp="alert(oEdit1.getXHTMLBody());" не работает алерт

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...