|
_uNewsAdder.Ajax(ver.1.0) | by Трудяга
|
|
Вторник, 27.07.2010, 18:10
Проверенный
Пример: здесь(при нажатии на добавить новость)(pass: test007 login: test007) Скрин: Скрипт выводит ajax окно с формой для добавления новости, после заполнения и отправки новость автоматически добавляется и ajax окно закрывается (обратите внимание что всё это происходит без единого обновления). Также присутствует проверка на заполненность полей при незаполненном поле выводится надпись вверху окна предупреждающая об этом. Установка: Шаг №1: Заходим на главную сайта как админ, нажимаем под новостью на эдакую кнопку и ПОСЛЕ всего содержимого (там его не должно быть много) вставляем ЭТОТ код: Code <script type="text/javascript"> function newAjax(){ new _uWnd('addingNews','Добавление новости',600,400,{align:0,shadow:1,autosize:1,resize:0, modal:1},'<fieldset id="newsF"><legend><span id="newsAdder">Новость:</span></legend>Название материала:</br><form><input type="text" id="newsTitle" maxlenght="50" style="width: 100%"></br>Краткое описание:</br><textarea cols="80" rows="4" id="newsBrief"></textarea></form>Полное описание:</br><textarea cols="80" rows="4" id="newsMessage"></textarea></br>Теги(через запятую):</br><input type="text" id="newsTags" maxlenght="50" style="width: 100%"></br></br><center><input type="submit" id="adder" value="Отправить" onclick="addNews();"></center></form></fieldset>'); } function addNews(){ newsTitle = $('#newsTitle').val(); newsBrief = $('#newsBrief').val(); newsMessage = $('#newsMessage').val(); newsTags = $('#newsTags').val(); if(!newsTitle){ $("#newsAdder").css('color', 'red').html('Поле "Название материала" обязательно для заполнения!'); return false; } else if(!newsBrief){ $("#newsAdder").css('color', 'red').html('Поле "Краткое описание" обязательно для заполнения!'); return false; } else if(!newsMessage){ $("#newsAdder").css('color', 'red').html('Поле "Полное описание" обязательно для заполнения!'); return false; } else { $('#adder').attr('disabled','disabled'); $('#newsF').replaceWith('<center><span style="position: relative; top: 135px">Добавление...</br><img src="http://vkontakte.ru/images/upload.gif"></span></center>'); $.get('/news/0-0-0-0-1', function (data){ ssid = $('input[name="ssid"]', data).val(); $.post('/news',{ a: 2, jkd428: 1, jkd498: 1, title: newsTitle, brief: newsBrief, message: newsMessage, ssid: ssid },
function ( response ) { if ( $(response).text().indexOf ('успешно') != -1 ) { setTimeout(function(){ _uWnd.close("addingNews"); } , 1000); $('#newsField').load('/index/0-1 #newsField'); } }); }) } } </script> Шаг №2: На нашу ссылку добавление новости вешаем атрибут: Code onclick="newAjax();return false;" Тоеть находим надпись Добавить новость (или какая там у вас) перед ней знак > и перед этим знаком ставим код что выше. Шаг №3: Находим $LAST_NEWS$ и меняем на: Code <div id="newsField">$LAST_NEWS$</div> Шаг №4: Настраиваем модуль новости сайта как на скрине: Об авторстве: Код для кого-то может и говно-код, но я старался:) Во избежания флуда все благодарности в репу. Добавление Ваших полей, установка на Ваш сайт или ещё что нибудь = 1$ |
Пост отредактировал Труд9га - Среда, 28.07.2010, 17:52 |
|
Проверенный
| Труд9га, ну поля додавать неважко! |
|
|
Проверенный
Очень даже пригодится  |
|
Проверенный
| Отличный скрипт благодарю |
http://www.torrent-kuno.ru |
|
Проверенный
seruy_admin, добавить в форму не важко(html знает каждый второй), а вот отправить данные на сервер не каждый знает, ну и мне под заработать хочецо:) RapBass, Twifan Quote (Труд9га) Во избежания флуда все благодарности в репу. |
Пост отредактировал Труд9га - Среда, 28.07.2010, 10:17 |
|
Проверенный
| Было бы неплохо добавить BB-коды и поддержку капчи. Ну а так — скрипт нормальный, на 9 из 10, сам когда-то хотел такой написать. |
|
Проверенный
| Скоро будет ver 2.0 в ней попробую реализировать, и спасибо за оценку, а как ты можешь оценить сам код? |
|
Проверенный
| Код нормальный, только вот Quote (Труд9га) $("span#newsAdder") нужно убрать span и оставить выборку только по ID. jQuery задействует встроенный метод getElementById, а так он сначала пройдётся по всем тегам SPAN, а потом будет искать в них ID newsAdder, это на порядок медленнее по скорости работы. Ну и Quote (Труд9га) $("span#newsAdder").replaceWith нелогично заменять через replaceWith один спан другим, точно таким же, только с другим цветом текста и содержимым. Лучше было бы написать так: Code $("#newsAdder").css('color', 'red').html('Содержимое'); |
Пост отредактировал $USERNAME$ - Среда, 28.07.2010, 16:54 |
|
Проверенный
| Спасибо оптимизировал, ну и запомнил на будущее. |
|
|
|
Проверенный
XameleoN, Quote (Труд9га) Во избежания флуда все благодарности в репу. айяйяй |
Пост отредактировал Труд9га - Среда, 28.07.2010, 18:39 |
|
Проверенный
| Труд9га, думаешь, это кто-то читает? Им лишь бы посты набить. |
|
Пользователь
| Спасибо се поставил +сик не дам но наградку кину |
Стать проверенным - ??? Набрать 150 постов - ??? Набрать 150 репутации - ??? |
|
Проверенный
| ага, пользуйся. Добавлено (28.07.2010, 19:12) --------------------------------------------- блин забыл выключить премодерацию новостей  |
Пост отредактировал Труд9га - Среда, 28.07.2010, 19:16 |
|
Четверг, 29.07.2010, 00:02
Проверенный
| Вот это что-то! Спасибо за скрипт, ловите +15 за создание этого скрипта! |
|
|