Написал скрипт Дополнительные поля БЕЗ JS
JacksonMihailov
Сообщений: 259
Сообщение # 1 |
04:18:37
05 Дек 2013
Доброе время суток, товарищи)) В новой версии данного скрипта js используется только на странице добавления/редактирования. На странице материала же, все выводится при помощи стандартных ucoz кодов. Инструкции: 1. Заходим на страницу, входим в свой uId http://www.jmblog.ru/publ/1-0-0-0-1 2. Далее заполняем поля по своему усмотрению (Внимание! Поля от "Имя" до "Текст 2" сгенерированы скриптом) 3. Переходим на страницу материала жмем CTRL+U и смотрим, что в исходном коде на самом деле нету JS 4. Жмем на редактирование материала и все содержимое полей должно быть на своих местах. Если тесты пройдем успешно, то программу допишу, поправлю, закончу. И выложу на всеобщие пытки)) В планах еще к этому всему написать онлайн конструктор для полей )
jmDB - Текстовая база данных для uCoz
Сообщение от JacksonMihailov
Miss_Esq
Сообщений: 13859
Уровень замечаний:
Сообщение # 2 |
04:21:10
05 Дек 2013
JacksonMihailov , Гостям запрещено просматривать данную страницу, пожалуйста войдите на сайт как пользователь. [ Вход ]
JacksonMihailov
Сообщений: 259
Сообщение # 3 |
04:25:26
05 Дек 2013
Цитата JacksonMihailov (
)
1. Заходим на страницу, входим в свой uId
Придется зайти, иначе "гости" не могут редактировать свои материалы ))
jmDB - Текстовая база данных для uCoz
Сообщение от JacksonMihailov
Miss_Esq
Сообщений: 13859
Уровень замечаний:
Сообщение # 4 |
04:41:43
05 Дек 2013
JacksonMihailov , ПроМблемаС в том что ссылка не работает, в исходном нет системных файлов jQuery и вряд ли вход по UID случится при таких обстоятельствах ..
JacksonMihailov
Сообщений: 259
Сообщение # 5 |
10:44:31
05 Дек 2013
Miss_Esq , мдэ я гений )) исправил.
jmDB - Текстовая база данных для uCoz
Сообщение от JacksonMihailov
bandjuk
Сообщений: 6816
Уровень замечаний:
Сообщение # 6 |
11:57:15
05 Дек 2013
JacksonMihailov , гы, работает )
JacksonMihailov
Сообщений: 259
Сообщение # 7 |
22:10:14
06 Дек 2013
Что, форум умер? Где активность?
jmDB - Текстовая база данных для uCoz
Сообщение от JacksonMihailov
bandjuk
Сообщений: 6816
Уровень замечаний:
Сообщение # 8 |
11:52:44
17 Дек 2013
JacksonMihailov , не разобрался как применить ваш скрипт в интернет-магазине Код
3.2 вместо $MESSAGE$: <table id="JMTransformed"></table> <div id="messageJM" style="display:none;">$MESSAGE$</div>
в шаблоне "Страница товара" нет $MESSAGE$
Miss_Esq
Сообщений: 13859
Уровень замечаний:
Сообщение # 9 |
11:55:51
17 Дек 2013
bandjuk , А что там есть ?
bandjuk
Сообщений: 6816
Уровень замечаний:
Сообщение # 10 |
12:00:29
17 Дек 2013
Miss_Esq , вот полный код, даже ума не приложу что сочинить ( :
<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title><?if($META_TITLE$)?>$META_TITLE$<?else?><?if($ENTRY_MODE$ == "spec")?>Спецификация <?endif?><?if($ENTRY_MODE$ == "imgs")?>Изображения <?endif?><?if($ENTRY_MODE$ == "comm")?>Отзывы <?endif?>$ENTRY_TITLE$ - $MODULE_NAME$ - $SITE_NAME$<?endif?></title> <?$META_DESCRIPTION$?> <link type="text/css" rel="StyleSheet" href="/.s/src/css/943.css" /> </head> <body style="background:#AFB3A5; margin:0px; padding:10px;"> $ADMIN_BAR$ <table cellpadding="0" cellspacing="0" border="0" width="100%"> <tr><td valign="top" align="center"> <table cellpadding="0" cellspacing="0" border="0" width="730"> <tr><td colspan="4"><img src="/.s/t/943/1.gif" border="0"></td></tr> <tr><td width="18" rowspan="2" style="background:url('/.s/t/943/2.gif') right repeat-y;"><img src="/.s/t/943/2.gif" border="0"></td> <td height="86" style="background:url('/.s/t/943/3.jpg') no-repeat;padding-left:20px;"><span style="color:#FFFFFF;font:20pt bold Verdana,Tahoma;"><!-- <logo> -->Мой сайт<!-- </logo> --></span></td> <td width="177" style="background:url('/.s/t/943/4.gif') bottom repeat-x #788770;" align="center" class="topLink"><a href="$HOME_PAGE_LINK$" title="Главная"><!--<s5176>-->Главная<!--</s>--></a><br><?if($USERS_ON$)?><?if($USER_LOGGED_IN$)?><a href="$PERSONAL_PAGE_LINK$" title="Мой профиль"><!--<s5214>-->Мой профиль<!--</s>--></a><?else?><a href="$REGISTER_LINK$" title="Регистрация"><!--<s3089>-->Регистрация<!--</s>--></a><?endif?><?endif?><?if($USERS_ON$)?><?if($USER_LOGGED_IN$)?><br><a href="$LOGOUT_LINK$" title="Выход"><!--<s5164>-->Выход<!--</s>--></a><?else?><br><a href="$LOGIN_LINK$" title="Вход"><!--<s3087>-->Вход<!--</s>--></a><?endif?><?endif?></td> <td width="16" rowspan="2" style="background:url('/.s/t/943/5.gif') repeat-y;"><img src="/.s/t/943/5.gif" border="0"></td> </tr> <tr> <td width="519" style="background:url('/.s/t/943/6.gif'); border-bottom:1px solid #E9EAE2;" valign="top"> <table cellpadding="0" cellspacing="0" border="0" width="519"> <tr><td><img src="/.s/t/943/7.jpg" border="0"></td></tr> <tr><td height="43" style="background:url('/.s/t/943/8.jpg'); text-align:right;padding-right:20px;"><?if($MODULE_NAME$)?><h1>$MODULE_NAME$</h1><?endif?></td></tr> <tr><td valign="top" style="padding:5px 8px 5px 5px;"><!-- <middle> --><!-- <body> --> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td style="white-space: nowrap;">$SHOP_PATH$</td> <?if($EDIT_ENTRY_LINK$)?><td align="right" style="white-space: nowrap;">[ <a href="$EDIT_ENTRY_LINK$"><!--<s4443>-->Редактировать товар<!--</s>--></a> ]</td><?endif?> </tr> </table> <h1><?if($MODER_PANEL$)?>$MODER_PANEL$ <?endif?>$ENTRY_TITLE$</h1> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"><td style="padding-right:10px; width:1%"> $IMGS_ARRAY_JS$ <script type="text/javascript"> function _bldCont(indx){ var bck=indx-1;var nxt=indx+1; if (bck<0){bck = allEntImgs$ID$.length-1;} if (nxt>=allEntImgs$ID$.length){nxt=0;} var imgs=''; if (allEntImgs$ID$.length>1){ for (var i=0;i<allEntImgs$ID$.length;i++){var img=i+1; if(allEntImgs$ID$[i][0].length<1){continue;} if (i==indx){imgs += '<b class="pgSwchA">'+img+'</b> ';} else {imgs += '<a class="pgSwch" href="javascript://" rel="nofollow" onclick="_bldCont('+i+');return false;">'+img+'</a> ';} } imgs = '<div align="center" style="padding:8px 0 5px 0;white-space:nowrap;overflow:auto;overflow-x:auto;overflow-y:hidden;"><a class="pgSwch" href="javascript://" rel="nofollow" onclick="_bldCont('+bck+');return false;">« Back</a> '+imgs+'<a class="pgSwch" href="javascript://" rel="nofollow" onclick="_bldCont('+nxt+');return false;">Next »</a> </div> ';} var hght = parseInt(allEntImgs$ID$[indx][2]); if ($.browser.msie) { hght += 28; }; _picsCont = '<div id="_prCont" style="position:relative;"><img alt="" border="0" src="' + allEntImgs$ID$[indx][0] + '"/>'+imgs+'</div>'; new _uWnd('wnd_prv', "Изображения товара", 10, 10, { waitimages:300000, autosizewidth:1, hideonresize:1, autosize:1, fadetype:1, closeonesc:1, align:'center', min:0, max:0, resize:1 }, _picsCont); } </script> <img alt="" src="$THUMB$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" id="ipreview" idx="0" title="Кликните для увеличения изображения"> <?if($SMALL_1$)?> <img alt="" src="$SMALL$" class="gphoto" onclick="var el=getElementById('ipreview'); el.src='$THUMB$'; el.setAttribute('idx',0);"> <img alt="" src="$SMALL_1$" class="gphoto" onclick="var el=getElementById('ipreview'); el.src='$THUMB_1$'; el.setAttribute('idx',1);"> <?endif?> <?if($SMALL_2$)?><img alt="" src="$SMALL_2$" class="gphoto" onclick="var el=getElementById('ipreview'); el.src='$THUMB_2$'; el.setAttribute('idx',2);"><?endif?> <?if($SMALL_3$)?><img alt="" src="$SMALL_3$" class="gphoto" onclick="var el=getElementById('ipreview'); el.src='$THUMB_3$'; el.setAttribute('idx',3);"><?endif?> </td><td> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <?if($RATING$)?> <td width="1%"> <div style="margin-bottom:10px;"><?$RSTARS$('30','/.s/img/stars/3/30.png','1','float')?><div style="font-size:10px; text-align:center;"><!--<s3119>-->Рейтинг<!--</s>-->: <b><span id="entRating$ID$">$RATING$</span></b>/<span id="entRated$ID$">$RATED$</span></div></div> </td> <?endif?> <td align="right"><b style="font-size:14px; padding:0 10px;"><?if($PRICE_OLD$)?><s>$PRICE_OLD$</s> <span class="newprice">$PRICE$</span><?else?>$PRICE$<?endif?></b> $2BASKET_Q$</td> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr valign="top"> <td><ul class="shop-options" id="id-$ID$-options"> <?if($BRAND$)?><li><span class="opt"><!--<s4379>-->Производитель<!--</s>-->:</span> <span class="val">$BRAND$</span></li><?endif?> <?if($ART_NO$)?><li><span class="opt"><!--<s4749>-->Артикул<!--</s>-->:</span> <span class="val art">$ART_NO$</span></li><?endif?> <li><span class="opt"><!--<s4377>-->Наличие<!--</s>-->:</span> <span class="val stock">$STOCK$</span></li> <?if($WARR$)?><li><span class="opt"><!--<s4376>-->Гарантия<!--</s>-->:</span> <span class="val">$WARR$</span></li><?endif?> <?if($UNIT$)?><li><span class="opt"><!--<s4750>-->Единица<!--</s>-->:</span> <span class="val">$UNIT$</span></li><?endif?> <?if($WEIGHT$)?><li><span class="opt"><!--<s4751>-->Вес<!--</s>-->:</span> <span class="val">$WEIGHT$</span></li><?endif?> <?if($ENTRY_TYPE$ == 1)?><li><span class="opt"><!--<s5119>-->Размер<!--</s>-->:</span> <span class="val">$FILE_SIZE$</span></li><?endif?> <?if($TAGS$)?>Теги: $TAGS$<?endif?> $OPTIONS$ </ul></td> <?if($BUY_NOW$)?> <td align="center" width="1%" nowrap> <div style="float:right;" class="goods-list"><!--<s5454>-->Купить сейчас<!--</s>--> $BUY_NOW$ $2WISHLIST$</div> </td> <?endif?> </table> </td></tr> </table> <ul class="shop-tabs with-clear"> <li<?if($ENTRY_MODE$ == 'desc')?> class="postRest1"<?endif?>><a href="$DESC_LINK$"><!--<s4375>-->Описание<!--</s>--></a></li> <?if($SPEC$)?> <li<?if($ENTRY_MODE$ == 'spec')?> class="postRest1"<?endif?>><a href="$SPEC_LINK$"><!--<s4781>-->Спецификация<!--</s>--></a></li> <?endif?> <?if($PHOTO_1$)?> <li<?if($ENTRY_MODE$ == 'imgs')?> class="postRest1"<?endif?>><a href="$IMGS_LINK$"><!--<s3183>-->Изображения<!--</s>--></a></li> <?endif?> <?if($COM_IS_ACTIVE$)?> <li<?if($ENTRY_MODE$ == 'comm')?> class="postRest1"<?endif?>><a href="$COMM_LINK$"><!--<s4783>-->Отзывы<!--</s>--></a></li> <?endif?> </ul> <div class="shop-info"> <?if($ENTRY_MODE$ == 'desc')?> <?if($DESCRIPTION$)?>$DESCRIPTION$<?else?><!--<s4782>-->Описание товара отсутствует<!--</s>--><?endif?> <?endif?> <?if($ENTRY_MODE$ == 'spec')?> $SPEC$ <?endif?> <?if($ENTRY_MODE$ == 'imgs')?> <div class="shop-imgs with-clear"> <?if($PHOTO$)?><img alt="" src="$THUMB$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="0" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_1$)?><img alt="" src="$THUMB_1$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="1" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_2$)?><img alt="" src="$THUMB_2$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="2" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_3$)?><img alt="" src="$THUMB_3$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="3" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_4$)?><img alt="" src="$THUMB_4$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="4" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_5$)?><img alt="" src="$THUMB_5$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="5" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_6$)?><img alt="" src="$THUMB_6$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="6" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_7$)?><img alt="" src="$THUMB_7$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="7" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_8$)?><img alt="" src="$THUMB_8$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="8" title="Кликните для увеличения изображения"><?endif?> <?if($PHOTO_9$)?><img alt="" src="$THUMB_9$" class="gphoto" onclick="_bldCont1($ID$, this.getAttribute('idx'));" idx="9" title="Кликните для увеличения изображения"><?endif?> </div> <?endif?> <?if($ENTRY_MODE$ == 'comm')?> <?if($COM_IS_ACTIVE$)?> <?if($COM_CAN_READ$)?> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr><td width="60%" height="25"><!--<s5183>-->Всего комментариев<!--</s>-->: <b>$COM_NUM_ENTRIES$</b></td><td align="right" height="25">$COM_PAGE_SELECTOR$</td></tr> <tr><td colspan="2">$COM_BODY$</td></tr> <tr><td colspan="2" align="center">$COM_PAGE_SELECTOR1$</td></tr> <tr><td colspan="2" height="10"></td></tr> </table> <?endif?> <?if($COM_CAN_ADD$)?> $COM_ADD_FORM$ <?else?> <?if($USER_LOGGED_IN$)?><?else?><div align="center" class="commReg"><!--<s5237>-->Добавлять комментарии могут только зарегистрированные пользователи.<!--</s>--><br />[ <a href="$REGISTER_LINK$"><!--<s3089>-->Регистрация<!--</s>--></a> | <a href="$LOGIN_LINK$"><!--<s3087>-->Вход<!--</s>--></a> ]</div><?endif?> <?endif?> <?endif?> <?endif?> </div> <div style="margin-top: 10px; text-align:right;"><?if($ADD_UID$)?><!--<s3178>-->Добавил<!--</s>-->: <a href="/shop/user/$ADD_UID$/goods" title="Все товары $ADD_USER$">$ADD_USER$</a>,<?else?><!--<s4417>-->Добавлен в каталог<!--</s>-->:<?endif?> $ADD_WDAY$, $ADD_DATE$</div> <?if($LASTV_2$)?><hr /><div style="font-size:20px; padding:5px 0 10px 0"><!--<s7005>-->Просмотренные ранее товары<!--</s>--></div>$LASTV_2$<?endif?> <!-- </body> --><!-- </middle> --></td></tr> </table> </td> <td valign="top" style="background:#E9EAE2;" align="center"> <div id="boxMenu"> <!-- <sblock_menu> --> <?if($SMENU_1$)?> <!-- <bc> -->$SMENU_1$<!-- </bc> --> <?endif?> <!-- </sblock_menu> --> </div> $GLOBAL_CLEFTER$ <br> <br> </td> </tr> <tr><td colspan="4"><img src="/.s/t/943/9.gif" border="0"></td></tr> </table> </td></tr></table> $GLOBAL_BFOOTER$ </body> </html>
код стандартный
JacksonMihailov
Сообщений: 259
Сообщение # 11 |
12:46:32
17 Дек 2013
bandjuk , Добрый день, скрипт который выложен на моем сайте, это пробник. Скрипт в этом посте, тоже пробник, но другой)) Нашел некоторые недочеты.. На данный момент, что могу предложить: Без js на странице материала Стабильно работающий скрипт только с input type="text", checkbox, select, radio. С textarea имеются проблемы, поэтому ее пока не будет. Все поля без html и bb кодов - они и не нужны, т.к. в шаблоне материала можно все вывести стандартными uCoz кодами и оформить как душа велит. Максимум, можно сделать примерно 15 - 20 полей(если честно не проверял, там есть свои нюансы, все объясню в нотации к готовому продукту). Ограничение по кол-ву символов, для каждого поля, ставите какое пожелаете. (Мне кажется идеальный вариант для сайтов: кино, интернет магазин, и т.п. где необходимо заполнение множества полей.) Полностью на js. (Не закончен) Все выше сказанное, плюс Можно реализовать input type="text", checkbox, select, radio, и так же textarea. Честно говоря, уже бы давно закончил, но сейчас сессии, менял дизайн на сайте, плюс еще заказ на один сайт. Так что я уже разрываюсь как могу. Конечно же все доведу до ума, как только будет время(сумасшедшие недели.). Многие ждут стабильной версии, постараюсь не разочаровать. К этому вопрос , чем плоха JS версия, если почти все поисковики видят результаты яваскрипта? Мне говорили о желании сгенерированные поля вставить в meta теги и на js это нереально.. Но все же, еще есть стандартные доп поля, которые можно использовать. Поэтому я считаю, что js версия скрипта вполне может быть актуальна. В конце концов, php на ucoz тоже выводится яваскриптом, но никого это не волнует(меня, если честно, раздражает). И следовательно дополнительные поля на php, это тот же самый яваскрипт, только конечно грузит страницу меньше. Если я где то не прав, поправьте) Какие вы видите возможности? и может обладаете какой либо информацией, которая может помочь мне в развитии программы. P.S. форумчане, активнее. Такое чувство, что тут всего человек 5 осталось. Я не знаю, может поделитесь с кем то ссылкой на топик, если на самом деле интересно. P.S.S спасибо тем кто помог протестировать работу.
jmDB - Текстовая база данных для uCoz
Сообщение от JacksonMihailov
bandjuk
Сообщений: 6816
Уровень замечаний:
Сообщение # 12 |
12:54:58
17 Дек 2013
JacksonMihailov , если не трудно, выложите вариант "Без js на странице материала" для интернет-магазина, как раз и протестирую его на практике. По поводу мета-тегов, то не вижу проблем, пусть выводят стандартными полями, а скриптовой вариант используют для других целей
Miss_Esq
Сообщений: 13859
Уровень замечаний:
Сообщение # 13 |
13:44:47
17 Дек 2013
JacksonMihailov , Плохо что поля не будут видны поисковикам ... bandjuk , Цитата
По поводу мета-тегов
Для каталога статей это проблема, решение нескриповое есть но .... только для соображающих и многодельно ...
Сообщение отредактировал Miss_Esq - Вторник, 17 Дек 2013, 13:45:34
JacksonMihailov
Сообщений: 259
Сообщение # 14 |
14:06:55
17 Дек 2013
Miss_Esq , Цитата Miss_Esq (
)
Плохо что поля не будут видны поисковикам ...
Гугл индексирует и интерпретериует JS. В т.ч. события. Остальным поисковикам: Так как, поисковики не видят дальше исходного кода страницы, а все поля хранятся в $MESSAGE$, можно вывести весь $MESSAGE$ на странице. После, в <head> прописать скрипт, который моментально скроет $MESSAGE$ при загрузки страницы. Тем самым поисковик нас заметит. Как такой вариант?Добавлено (17 Дек 2013, 14:06:55) --------------------------------------------- Без js можно попробовать так: <div style="overflow:hidden; height:1px;">$MESSAGE$</div> display:none ни в коем случае нельзя использовать, т.к. можно получить не приятное письмо от yandex.
jmDB - Текстовая база данных для uCoz
Сообщение от JacksonMihailov