О нас Форум Баннеры RSS картинка Нас уже 577, Присоединяйся
Страница 3 из 4«1234»
Модератор форума: bR[a]tko 
Форум » uCoz » Помощь по uCoz » Хак версия 3 - Дополнительные поля (Вопросы и ответы по поводу хака версия 3-Дополнительные поля)
Хак версия 3 - Дополнительные поля
Fatal1tiДата: Среда, 12.12.2012, 11:44 | Сообщение # 1
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline


Создал эту тему, что тех у кого возникают какие-либо проблемы или вопросы.
Так постоянно возникают проблемы, возможно прочитав эту тему - вы надёте ответ.

Ссылка на хак - /load/19-1-0-287

Постарайтесь более подробно описать свою проблему или вопрос,
От этого зависит точность и время ответа..


Администратор
SergeySДата: Понедельник, 21.01.2013, 17:25 | Сообщение # 31
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Цитата (Fatal1ti)
из-за одного пробела было.

Да, после 1, уже досмотрел..

Добавлено (21.01.2013, 17:25)
---------------------------------------------
Затишье затянулось... 6


Ученье - свет, а неученье, чуть свет - на работу..
Пользователь
Fatal1tiДата: Пятница, 25.01.2013, 16:34 | Сообщение # 32
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, давно я тут уже ничего не писал.
Старался ответить как можно быстрее, но как то не получилось..

Как я и говорил лучше сделать кнопку расчёта оставшихся символов..
Вот по-быстрому написал js скрипт,
Который нужно вставить в конец "Страницы добавления и редактирования материала":
Код
<?if($PAGE_ID$='add' || $PAGE_ID$='edit')?>  
<script type="text/javascript">
$(function() {
$('.tewrt:last').after('<td><input id="simps" value="Проверить" type="button"></td><td><span id="count">В поля выше можно ввести ограниченное количество символов - 937шт. После ввода нажмите кнопку "Проверить".</span></td>')
$("input[id='simps']").click(function() {
maxchars = 10;
var sar = 0, x;
for(i=1;i<10;i++) {  
x = $("#apodp"+i).val().length;
if(x!='0') {
sar += x;
}}
tart= sar - maxchars;
if(sar <= maxchars){
$("#count").html(maxchars - sar + " символов осталось");
}
if(sar >= maxchars) {
$("#count").html("Превышено max. количество символов. "+tart+" лишних");
}
});
});
</script>
<?endif?>


Текст можно поменять под себя
И данный скрипт рассчитан на 9 полей, чтобы он был на 19 полей например
Нужно эту строчку
Код
for(i=1;i<10;i++)

заменить на эту
Код
for(i=1;i<20;i++)

А если 29 полей, то на эту:
Код
for(i=1;i<30;i++)


Ну и я там написал что макс. 937 символов,
Если полей больше или меньше 9, то эта цифра будет другая,
Чтобы её рассчитать необходимо от 1000 отнять произведение кол. полей на 7
То есть такая формула: 1000 - N * 7
Где N - количество полей
Конечно если используется вариант _x_PS, а не _x_Polus,
Потому что если Polus то будет не цифра 7, а 10...

Ну вот как-то так)


Администратор
SergeySДата: Пятница, 25.01.2013, 20:58 | Сообщение # 33
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Привет, Fatal1ti,
Установил, работает. Но считает некорректно...
При 29 полях ограничение посчитал, получилось 797

Там где 108 символов всего с пробелами, выдает, что лишних 78
Где больше - выдает другое превышение
Возможно считает вместе с названием полей? Тогда где- то так и есть... Надо пересчитать.
А вот здесь maxchars = 10; не надо менять на maxchars = 30;
Ну, а если будет считать как надо, то все супер...


Ученье - свет, а неученье, чуть свет - на работу..
Пользователь
Fatal1tiДата: Пятница, 25.01.2013, 21:02 | Сообщение # 34
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, аа.. блин.. код чуть другой..
Я просто не хотел 900 символов набирать, и решил что проще ограничение до 10 символов
Поэтому код будет нормальным таким:
Код
<?if($PAGE_ID$='add' || $PAGE_ID$='edit')?>   
<script type="text/javascript">  
$(function() {  
$('.tewrt:last').after('<td><input id="simps" value="Проверить" type="button"></td><td><span id="count">В поля выше можно ввести ограниченное количество символов - 797шт. После ввода нажмите кнопку "Проверить".</span></td>')  
$("input[id='simps']").click(function() {  
maxchars = 797;  
var sar = 0, x;  
for(i=1;i<30;i++) {   
x = $("#apodp"+i).val().length;  
if(x!='0') {  
sar += x;  
}}  
tart= sar - maxchars;  
if(sar <= maxchars){  
$("#count").html(maxchars - sar + " символов осталось");  
}  
if(sar >= maxchars) {  
$("#count").html("Превышено max. количество символов. "+tart+" лишних");  
}  
});  
});  
</script>  
<?endif?>


Администратор
SergeySДата: Пятница, 25.01.2013, 21:11 | Сообщение # 35
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Поставил
maxchars = 1000;
Теперь все точно от 1000 отнимает количество знаков с пробелами (если подсчитывать в Worde)

Только зачем в тексте вписывать 797, а не ставить 1000?

Спасибо 1

Добавлено (25.01.2013, 21:11)
---------------------------------------------
Да, теперь понятно, больше 797 знаков не отразятся или заменят первые поля, наверное..


Ученье - свет, а неученье, чуть свет - на работу..
Пользователь
Fatal1tiДата: Пятница, 25.01.2013, 21:20 | Сообщение # 36
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, ну в эту 1000 входят и символы для разделения (_x_PS1, _x_PS2....)
И их тоже нужно учитывать, так как это опора для правильного отображения инфы из доп.полей в разных местах.

А если 1000 поставить то написав 1000 символов и прибавив ещё символы разделения,
Никак не получится кодам вывода найти нужную информацию...
Ну думаю ясно.. Я неделю думал как лучше всего обойти эти 1000 символов
Но пока нормального и компактного решения не смог придумать

Думаю вскоре его найду


Администратор
SergeySДата: Пятница, 25.01.2013, 21:39 | Сообщение # 37
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Цитата (Fatal1ti)
Думаю вскоре его найду


Лучшее - враг хорошего...
Думаю, что надо на чем то останавливаться и двигать основное..

Из всего Хака с полями остался, на мой взгляд, только один недостаток - это то, что приходится в основном поле каждый раз выделять и удалять возврат значение с символами разделения _x_PS1. Ну и еще (при включенном визуальном редакторе) у меня появляется надпись undefinedi
Хотя это не существенно...

И еще, не знаю с каким точно скриптом связано, (может вовсе и не с полями) но у меня страница материала и комментариев отражалась некорректно (не работал слайдер, информер и не было панели редактир. комментариев. Пришлось тревожить службу поддержки. После 3 суток размышлений - мне помогли и точно указали причину: при выключенном визуальном редакторе комментариев все исправилось. Так что теперь вроде ничего принципиально не решаемого у меня не осталось - благодаря Fatal1ti и админам с ucoza 6


Ученье - свет, а неученье, чуть свет - на работу..

Сообщение отредактировал SergeyS - Пятница, 25.01.2013, 21:41
Пользователь
Fatal1tiДата: Воскресенье, 27.01.2013, 10:54 | Сообщение # 38
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, Есть способ увеличить количество символов до 1797 для 29 доп.полей
Даже несколько:

1)Увеличить количество символов в первом доп.поле.
И количество будет расчитываться по такой формуле:
1797 - 9*7 - 19*8 - Количество символов введенных в остальные поля
Думаю ясно.. Ну если точнее то если в остальные 28 полей ничего не введено,
То максимум можно в первое поле ввести 1797 - 63 - 152 = 1582

Но в данном случае, в остальные доп.поля максимум можно ввести 797 символов
А код увеличиться всего на несколько строк

2)Увеличение количества символов в первом и во втором дополнительном поле
Сумма символов в первом и во втором доп.полей не должно превышать вот такое количество символов:
1797 - 8*7 - 19*8 - Количество символов введенных в остальные поля
Ну почти похожая ситуация как и в первом случае.
Код увеличиться в отличии от первого случая так: несколько строк*3

3)Тут уже для трёх.. Аналогичные рассуждения символов
Код увеличиться в отличии от первого случая так: несколько строк*8

Если какой-то вариант устраивает отпишись.


Администратор
SergeySДата: Воскресенье, 27.01.2013, 21:27 | Сообщение # 39
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Fatal1ti,
Мне понравился первый вариант. У меня только проблемка с кодом карты в увеличенном виде. Google карты выдают код в 600 с лишним знаков. Попытки сократить ссылки внутри кода через u.to - это во-первых - головняк, а во вторых - карта неправильно отражается (хотя может я ошибся где-то)
Если я правильно понял - то 1582 символа будут распределятся по всем полям?
Такое решение было бы вполне оптимальным....


Ученье - свет, а неученье, чуть свет - на работу..
Пользователь
Fatal1tiДата: Понедельник, 28.01.2013, 09:53 | Сообщение # 40
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, кинь пример кода google карты
1582 - максимальное количество введённых символов в первое поле, если в остальных пусто
А если что-то есть в других полях, то в первое поле можно ввести уже меньше


Администратор
SergeySДата: Понедельник, 28.01.2013, 13:46 | Сообщение # 41
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Пример кода карты: (в зависимости от настроек может быть разное количество знаков) Основное место занимает ссылка, которую можно заменить на короткую, но надо делать лишние телодвижения и отображается не вид места, а карта. Но без этого жить можна, так что если это занимает время и мысли то давай оставим так как есть. Все остальные данные в 29 полей легко помещаются и счетчик - дает возможность проконтролировать, так что все на уровне...
Код
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?near=%D0%9F%D1%83%D1%88%D0%BA%D0%B8%D0%BD%D1%81%D0%BA%D0%B0%D1%8F+%D1%83%D0%BB.,+106,+%D0%A5%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2,+%D0%A  5%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F+%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C,+%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%  BD%D0%B0+%4050.018501,36.264322&geocode=&q=%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%BD%D0%B0&f=l&hl=ru&sll=50.018748,36.264322&sspn=0.000936,0.001725&ie=UTF8&hq=%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%BD%D0%B0&hnear=&t=m&layer=c&cbll=50.035165,36.242031&panoid=1ikM_ZyAsKRv5U4Snb31Qw&cbp=13,155.71,,0,5.45&source=embed&ll=50.014744,36.263938&spn=0.013237,0.036478&output=svembed"></iframe><br /><small><a href="https://maps.google.com/maps?near=%D0%9F%D1%83%D1%88%D0%BA%D0%B8%D0%BD%D1%81%D0%BA%D0%B0%D1%8F+%D1%83%D0%BB.,+106,+%D0%A5%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2,+%D0%A  5%D0%B0%D1%80%D1%8C%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F+%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C,+%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%  BD%D0%B0+%4050.018501,36.264322&geocode=&q=%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%BD%D0%B0&f=l&hl=ru&sll=50.018748,36.264322&sspn=0.000936,0.001725&ie=UTF8&hq=%D1%8E%D1%80%D0%B8%D0%B4%D0%B8%D1%87%D0%BD%D0%B0&hnear=&t=m&layer=c&cbll=50.035165,36.242031&panoid=1ikM_ZyAsKRv5U4Snb31Qw&cbp=13,155.71,,0,5.45&source=embed&ll=50.014744,36.263938&spn=0.013237,0.036478" style="color:#0000FF;text-align:left">Просмотреть увеличенную карту</a></small>


Немаловажно еще и то, что при замене кода приходится по новой вводить данные по каждому материалу. А это тоже значит что надо остановиться на окончательном варианте. Я немного надеялся, что появится вариант без возврата значений в основное поле с символами разделения типа _x_PS1....., но наверное на это у тебя пока нет времени... Это единственное, что вызывает дискомфорт. К тому же если не убрать и сохранить - все данные из доп полей можна потерять ....
Я имею ввиду вот эти намерения:
Цитата (Fatal1ti)
Конечно этот момент можно немного улучшить так,
Чтобы после нажатия сохранить инфа из доп.полей перешла в message
И после сохранения она автоматически вырезалась из message и вставлялась в поля снизу


Ученье - свет, а неученье, чуть свет - на работу..

Сообщение отредактировал SergeyS - Понедельник, 28.01.2013, 13:55
Пользователь
Fatal1tiДата: Понедельник, 28.01.2013, 14:10 | Сообщение # 42
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, да.. google карты это серьёзно..
Я попробовал код google карты и тут незадача.. вот такое получилось:


Нужно хак переделать.. А то я думаю это не к добру,
что скрипт google карты работает в редактировании..
Прикрепления: 5202675.jpg(12Kb)


Администратор
Fatal1tiДата: Понедельник, 28.01.2013, 14:28 | Сообщение # 43
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
SergeyS, думаю это должно решить проблему
Ищи такую строчку в скрипте:
Код
var afrq=afr.replace('Polus'+i+' ','');  


Удали её и вставь это вместо неё:
Код
var affrq=afr.replace('Polus'+i+' ','');   
var afrq = affrq.replace(/"/g,""");

У меня вот так стало:


Если это не то, отпишись, и скриншоты наверно прикрепи.
Щас как раз время есть)
Прикрепления: 8960049.jpg(15Kb)


Администратор
Fatal1tiДата: Понедельник, 28.01.2013, 14:33 | Сообщение # 44
Сообщений:79
Награды:9
Репутация: 96
Статус:Offline
Блин... в общем не то нужно вставить а это:


Там & guot ;
без пробелов при добавлении сообщения на форум просто заменился на кавычки "
Вручную что-ли вставь..
Прикрепления: 4593343.jpg(6Kb)


Администратор
SergeySДата: Понедельник, 28.01.2013, 16:20 | Сообщение # 45
Сообщений:18
Награды:0
Репутация: 0
Статус:Offline
Fatal1ti,
Проделал так, изменил код
Код
var afrq=afr.replace('PS'+i+' ','');

на
Код
var affrq=afr.replace('PS'+i+' ','');
    var afrq = affrq.replace(/"/g,"&guot");


1.Взял код карты и заменил ссылки на сокращенные через u.to - не получилось - отражается просто карта города а не место
2. Взял код карты полностью (без сокращения) - вставилось нормально но вывело все значения с символами разделения. Возможно опять нет пробела где-то? БЕЗ КОДА карты все значения выводятся нормально.

Код вставлял в поле 7. Потом вставил в поле 1 - результат такой же.



Добавлено (28.01.2013, 16:20)
---------------------------------------------
Fatal1ti,
Этот код порядка 730 символов. Минимальный размер в настройках кода карты...

Но еще раз - код карты можно индивидуально по каждому материалу вставить в основное поле.

А какая перспектива с возвратом значений в это поле, вернее чтоб они отсутствовали?
Прикрепления: 3947609.jpg(40Kb)


Ученье - свет, а неученье, чуть свет - на работу..

Сообщение отредактировал SergeyS - Понедельник, 28.01.2013, 17:06
Пользователь
Форум » uCoz » Помощь по uCoz » Хак версия 3 - Дополнительные поля (Вопросы и ответы по поводу хака версия 3-Дополнительные поля)
Страница 3 из 4«1234»
Поиск: