|
|
| Модератор форума: JonMagon |
| Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Скрипт запрета удаление тем на форуме |
| Скрипт запрета удаление тем на форуме |
|
Здравсвуйте,нужен скрипт для запрета удаления определенных тем форума.Чтоб не кто не мог удалить тему пока прописан скрипт.
Не в самой теме не было окна/строчки модерирования темы (можно полностью чтоб ее не было), не в самом разделе где находится тема - не было иконки удаления возле названия. |
|
vitya5181, подобное сделать нельзя. Возможно всего лишь скрыть модер-панель у необходимой темы, но это не сделает запрет на удаление темы. Пример:
Код #tt58343 a.modBut{display:none} Как узнать айди темы описано тут → //forum.ucoz.ru/forum/6-46098-963385-16-1356645637 Профессиональный сервис опросов WebAsk
|
|
Как на счёт ограничения прав доступа пользователям? Или нужно именно определённых тем, а не всех? Простите, не спал - трижды перечитал, но в целом так и не понял задачу. Запретить удаление отдельных при наличии прав удаления тем - думаю, действительно невозможно без PHP, как минимум. Но решения на PHP подсказать, к сожалению, не могу.
В продолжение темы скрытия кнопки удаления (dislpay:none) - предполагаю, что надёжней будет её вовсе удалять скриптом - jquery: .remove() В первом случае (dislpay:none), просто скрыв кнопку - любой школьник обладающий основами CSS - восстановит вид через консоль или Firebug. А если вырезать кнопку полностью по завершению загрузки страницы, то чтобы удалить тему - придётся напрячься чуточку больше. Я не знаю, какие классы на форуме. нет возможности проверить. Буду руководствоваться сообщением товарища выше и указанными им классами и идентификаторами для определения нужной кнопки. Насколько я понял, "#tt58343" - это идентификатор темы, родитель в котором лежит соответствующая кнопка удалить - тег А с классом "modBut". Исходя из этого скрипт, который вырезает кнопки только нужных тем. Нужно просто в массиве topics через запятую указать ID нужных тем: Код <script> $(function() { var topics = ['58343', '100', '355']; for(i=0;i<topics.length;i++) { $('#tt'+topics[i]+' a.modBut').remove() }});</script> Скрипт с использование jQuery. Напомню, кто забыл, он по-умолчанию вшит во все сайты Ucoz. Скрипт ставим в шаблон форума. Выполняется он при завершении загрузки страницы - так что можно ставить в любое место - в head, до контента, после контента. |
|
TommyPanda, как бы красиво не преподнести на блюдечке – это всё равно не решит проблему. Например в Опере (или в другом браузере) зайдя в исходный код можно удалить данный скрипт (или заменить его значение) и тема уже будет доступна с модер-панелью и проблем с удалением темы «нубу\новичку» не возникнет.
В первом случае (dislpay:none), просто скрыв кнопку - любой школьник обладающий основами CSS - восстановит вид через консоль или Firebug. Смешно. Как я описывал ваше – в вашем случае аналогично выйдет. Много писанины, а толку нуль. К тому же, мы забыли что имеется модер-панель в самой теме. Скрыть не задев ничего её можно также стилями с помощью условных операторов. Также прямой адрес удаления никто не закрывал (/forum/38-58343-0-21). Профессиональный сервис опросов WebAsk
|
|
Удалить скрипт, чтобы он не выполнялся при перезагрузке страницы, куда сложнее чем выключить display:none.
|
|
Удалить скрипт, чтобы он не выполнялся при перезагрузке страницы, куда сложнее чем выключить display:none. Чем же это? Ctrl + U, вырезал, сохранил. Даже проще, т.к. не надо лезть в файл стилей, чтобы оттуда вырезать. Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail. |
|
Shеriff, TommyPanda, в моем случаем нужно только визуально (а именно в самой теме модер-панель и в разделе возле этой темы убрать иконку удаления,можно и переноса и под первым сообщением темы,убрать - Удалить) скрыть все возможности удаления определенных тем,то что через ссылку будет возможно я это знаю.
Добавлено (29 Окт 2013, 01:50:30) --------------------------------------------- Пока удалось скрыть только кнопку удаления темы возле ее названия в разделе,не заходя в саму тему Добавлено (29 Окт 2013, 02:18:16) Сообщение отредактировал vitya5181 - Вторник, 29 Окт 2013, 02:03:05
|
|
vitya5181, скрыть опции модератора - в Общий вид форума до $BODY$:
Цитата <?($URI_ID$ == "frTreadздесь_ID_темы")?> <style type="text/css"> form[name="moderoptions"], moderOptions, #modBut2 {display:none;} </style> <?endif?> Кнопку удалить в первом сообщении тоже надо скрывать, но для этого надо видеть код шаблона "Вид сообщений" Или поступить проще - скрыть саму форму подтверждения на странице удаления темы - заменить $BODY$ на: Цитата <?($URI_ID$ == "threadDelete" && strpos($REQUEST_URI$,"-здесь_ID_темы-0-21")!= -1)?><?else?>$BODY$<?endif?> Сообщение отредактировал Drinko - Вторник, 29 Окт 2013, 03:02:31
|
|
vitya5181,
Код <?if($URI_ID$ == "frTreadздесь_ID_темы")?> <style type="text/css"> form[name="moderoptions"], moderOptions, #modBut2 {display:none;} </style> <?endif?> Код <?if($URI_ID$ == "threadDelete" && strpos($REQUEST_URI$,"-здесь_ID_темы-0-21")!= -1)?><?else?>$BODY$<?endif?> Профессиональный сервис опросов WebAsk
|
|
Первую тему //forum.ucoz.ru/forum/38-58343-1 уже переместили и закрыли но появилась одна проблема
Данный скрипт запрещает подтверждение удаления ВСЕХ тем а не указанных в нем.Я прописывал несколько тем через or Как быть? Прикрепления:
9301862.png
(3.0 Kb)
|
Вот так вот у меня сейчас прописано в шаблоне Добавлено (29 Окт 2013, 18:34:42) Прикрепления:
1592734.png
(5.8 Kb)
Сообщение отредактировал vitya5181 - Вторник, 29 Окт 2013, 18:29:59
|
|
vitya5181, пробуйте:
Код <?if($URI_ID$ == "threadDelete" && (strpos($REQUEST_URI$,"-191873-0-21")!= -1 || strpos($REQUEST_URI$,"-4465-0-21")!= -1 || strpos($REQUEST_URI$,"-191969-0-21")!= -1 || strpos($REQUEST_URI$,"-3098-0-21")!= -1))?><?else?>$BODY$<?endif?> |
| |||
| |||
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!

Чат сообщества







