kazakru Опубликовано 7 Апреля 2007 Жалоба Поделиться Опубликовано 7 Апреля 2007 На IPB перешел совсем недавно.Планируется заточка форума под свою локалку.И необходимо некоторые поля в профиле и тд сделать скрытыми ( или открытыми но с невозможностью редактирования )для локальных пользователей, для гостей с инета все будет по прежнему. Не спрашивайте зачем - просто нужно. Раньше стоял PHPBB все нормально внедрялсь, а сдесь что то у меня не получается.Вот например в просмотре профиля можно поменять например свой день рождения. Мне надо сделать невозможным изменить это поле локальным пользователям.То есть надо внедрить примерно такой код: $qwe=$_SERVER['REMOTE_ADDR']; $string = substr($qwe, 0,8); if ($string == "192.168.") {echo "Вам запрещено редактировать это поле";} else { а тут родной код который был для инетчиков.} Прошу сказать в какие файлы я могу это вписать.А особенно буду благодарен если покажете на примере этого поля - дня рождения. да и еще попутный вопрос, как сделать что бы в админке при создании пользователя админом были все поля для заполнеия включая доп поля. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 8 Апреля 2007 Автор Жалоба Поделиться Опубликовано 8 Апреля 2007 это просто пипец...ни кто не знает в каких файлах надо редактировать?как же вы моды пишите? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
h8)u Опубликовано 8 Апреля 2007 Жалоба Поделиться Опубликовано 8 Апреля 2007 как же вы моды пишите?Просто мы ленивые =)В ./sources/lib/func_usercp.php поставить проверку на принадлежность к сети, а также проверять, было ли что-то послано пользователем в качестве даты рождения.Чтобы пользователь не из сети ничего не посылал, я бы сделал проверку перед выводом формы изменения профиля и вырезал соответсвующее поле, если юзер нелокальный.А вообще, лучше всего добавить в массив $this->ipsclass->member информацию о принадлежности мембера к сети, чтобы каждый раз не проводить проверку такую длинную. P.S. Это мой вариант решения проблемы =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 9 Апреля 2007 Автор Жалоба Поделиться Опубликовано 9 Апреля 2007 вот хоть один человек взялся помочь, огромный респкт за это.Это конечно вариант, но тоже пока мне не понятный, а вообще хотелось бы просто вырезать код показа формы заполнения полей дня рождения для локальщика и показать ему определенную запись.Мне это представляется примерно так: ( точнее я так делал в PHPBB ) в файлике sources/action_pupblic/profile.php пишем функцию проверки IP пользователя ( ту что я выше прописал )а в условиях пишем свой текст и код формы дня рождения вырезанный из скина профиля. а в скине вместо вырезанной формы вставляем эту функцию.Только я не могу врубиться как... И вообще правильно это или нет...Мне очень хотелось бы что бы кто либо из Вас показал мне дураку на практическом примере как сделать отображения в профиле в левой колонке формы дня рождения для любых IP кроме 192.168. Просто мне много таких изменений надо сделать а днюха это как пример. И по второму вопросу. У пользователя много дополнительных полей типа № договора, телефон №коммутатора " порта и тд и тп.Это все сделано, но так как я сам лично завожу пользователей локальных то мне приходиться сначало в админке создать пользователя вписав только имя пароль и почту, потом лезть админом на сайте в его профиль и там заполнять остальные поля.Вот как сделать что бы сразу в админке все эти поля были, достаточно ли по аналогии с файлом профиля пользователя так же сделать в файлах админки? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 9 Апреля 2007 Жалоба Поделиться Опубликовано 9 Апреля 2007 Мне очень хотелось бы что бы кто либо из Вас показал мне дураку на практическом примере как сделать отображения в профиле в левой колонке формы дня рождения для любых IP кроме 192.168.skin_ucp.phpнайди функцию, которая отображает поле для ДР, с помощью HTML логики прямо в скине регулируй этим куском. А при сохранении в БД делай как тебе уже выше сказали. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
h8)u Опубликовано 9 Апреля 2007 Жалоба Поделиться Опубликовано 9 Апреля 2007 kazakru, как сделал бы я.Создаешь новое поле в ibf_members, какое-нибудь local_user, далее при регистрации (или не знаю, когда ты проверяешь принадлежность к локалке) проверяешь IP и заносишь соответствующее значение (0/1) в поле.Потом выбираешь это поле при формировании кэша юзверя и добавляешь в кэш.А далее в html-шиблонах проверяешь вот так:<if="$this->ipsclass->member['local_user']">Юзер — ты локален! :) <else /> Юзер — ты чужой! :( </if>Если интересует техническая реализация проверки на принадлежность к сети при регистрации и занесение в БД — могу написать пример, но попозже, например, завтра. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 9 Апреля 2007 Автор Жалоба Поделиться Опубликовано 9 Апреля 2007 огромный сенкс, почти все получилосьвот этот кусок <tr> <td width=\"30%\" class=\"row1\" style='padding:6px;'><b>{$this->ipsclass->lang['birthday']}</b></td> <td width=\"70%\" class=\"row2\" style='padding:6px;'> <select name=\"day\"> {$day} </select> <select name=\"month\"> {$mon} </select> <select name=\"year\"> {$year} </select> </td> </tr> я им манипулирую как хочу, все без проблем НО:как мне показать эти данные вне формы "select" ?если просто оставить например {$year} то он выведет весь список годов, а мне надо год рождения даного пользователя.Как эту выборку из базы сделать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
h8)u Опубликовано 9 Апреля 2007 Жалоба Поделиться Опубликовано 9 Апреля 2007 как мне показать эти данные вне формы "select" ?если просто оставить например {$year} то он выведет весь список годов, а мне надо год рождения даного пользователя.Посмотри, как реализован вывод даты в профиле пользователя — profile.php.Как эту выборку из базы сделать?Какую именно?.. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 9 Апреля 2007 Автор Жалоба Поделиться Опубликовано 9 Апреля 2007 ну выборку я и имел ввиду как он выбирает дату из базы вывод сдлеал {$member['bday_year']}именно так как ты подсказал посмотрев в файле profile.php Все, всем огромный СЕНКС, с этим полностью разобрался и понял принципы. теперь по второму вопросу если не сложно подкажите. У пользователя много дополнительных полей типа № договора, телефон №коммутатора " порта и тд и тп.Это все сделано, но так как я сам лично завожу пользователей локальных то мне приходиться сначало в админке создать пользователя вписав только имя пароль и почту, потом лезть админом на сайте в его профиль и там заполнять остальные поля.Вот как сделать что бы сразу в админке все эти поля были, достаточно ли по аналогии с файлом профиля пользователя так же сделать в файлах админки? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
h8)u Опубликовано 9 Апреля 2007 Жалоба Поделиться Опубликовано 9 Апреля 2007 теперь по второму вопросу если не сложно подкажите.В ./sources/action_admin/member.php дописываешь в запросы добавления пользователя соотвествующие поля.В ./skin_acp/IPB2_Standard/acp_skin_html/cp_skin_member.php добавляешь формы для соотвествующих полей. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 9 Апреля 2007 Автор Жалоба Поделиться Опубликовано 9 Апреля 2007 огромное тебе спасибо, есть ведь хорошие люди.Тему можно закрывать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 10 Апреля 2007 Автор Жалоба Поделиться Опубликовано 10 Апреля 2007 мда, век живи, век учись...вот только сейчас нашел что можно всего лишь своих локальщиков засунуть в другую группу в которой указать что редактирование личных данных запрещено... Так что все что выше это зря.. Хотя для общего представления о работе форума мне это пригодится. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 10 Апреля 2007 Жалоба Поделиться Опубликовано 10 Апреля 2007 так ты ж сказал, что нужно дать возможность редактировать только часть данных, а не все запрещать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 10 Апреля 2007 Автор Жалоба Поделиться Опубликовано 10 Апреля 2007 да уже увидел что не прав был...я думал что отключение изменения личных данных не отключает установку аватар и фоток, а оказывется отключает.Так что придется все же лезть в код... Ну и ладно теперь то это не проблема. С группами даже будет наверно проще работать чем с IP, т.е. проверку делать на пользователя.Когда по IP была проверка то впринципе можно было локальному пользователю зайти на сайт из другого инета и поменять данные, а при проверке по группе этого не сделаешь Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
kazakru Опубликовано 21 Апреля 2007 Автор Жалоба Поделиться Опубликовано 21 Апреля 2007 снова вернусь к этому вопросу... вот есть в файле skin_ucp.php функции, возьмем к примеру function email_change($txt="",$msg="") { я в файле usercp.php прописал какой либо код и присвоил его переменной $txt5 и передал ее в скин$this->output .= $this->ipsclass->compiled_templates['skin_ucp']->email_change($txt, $msg, $txt5); так вот если прописатьfunction email_change($txt="",$msg="", $txt5="") { и далее в хтмл вписать $txt5 - то все пашет. но если потом в админке внести какие либо изменения в этот скин то из файла skin_ucp.php стирается , $txt5="" надеюсь понятно обьяснил... Вот как мне передать переменную из usercp.php в skin_cp.php в нужную функцию и так что бы они при редактировании скина не стирались. Ведь $txt="",$msg="" остается... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Jax Опубликовано 30 Апреля 2007 Жалоба Поделиться Опубликовано 30 Апреля 2007 Какой у тебя форум?Начиная с 2.0.х все скиновые изменения проводятся через админку. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.