Перейти к контенту

Внедрение своего кода в форум


Рекомендуемые сообщения

На IPB перешел совсем недавно.

Планируется заточка форума под свою локалку.

И необходимо некоторые поля в профиле и тд сделать скрытыми ( или открытыми но с невозможностью редактирования )для локальных пользователей, для гостей с инета все будет по прежнему. Не спрашивайте зачем - просто нужно. Раньше стоял PHPBB все нормально внедрялсь, а сдесь что то у меня не получается.

Вот например в просмотре профиля можно поменять например свой день рождения. Мне надо сделать невозможным изменить это поле локальным пользователям.

То есть надо внедрить примерно такой код:

 

$qwe=$_SERVER['REMOTE_ADDR'];
$string = substr($qwe, 0,8);
if ($string == "192.168.")
{echo "Вам запрещено редактировать это поле";}
else { а тут родной код который был для инетчиков.}

 

Прошу сказать в какие файлы я могу это вписать.

А особенно буду благодарен если покажете на примере этого поля - дня рождения.

 

да и еще попутный вопрос, как сделать что бы в админке при создании пользователя админом были все поля для заполнеия включая доп поля.

Ссылка на комментарий
Поделиться на других сайтах

как же вы моды пишите?
Просто мы ленивые =)

В ./sources/lib/func_usercp.php поставить проверку на принадлежность к сети, а также проверять, было ли что-то послано пользователем в качестве даты рождения.

Чтобы пользователь не из сети ничего не посылал, я бы сделал проверку перед выводом формы изменения профиля и вырезал соответсвующее поле, если юзер нелокальный.

А вообще, лучше всего добавить в массив $this->ipsclass->member информацию о принадлежности мембера к сети, чтобы каждый раз не проводить проверку такую длинную.

 

P.S. Это мой вариант решения проблемы =)

Ссылка на комментарий
Поделиться на других сайтах

вот хоть один человек взялся помочь, огромный респкт за это.

Это конечно вариант, но тоже пока мне не понятный, а вообще хотелось бы просто вырезать код показа формы заполнения полей дня рождения для локальщика и показать ему определенную запись.

Мне это представляется примерно так: ( точнее я так делал в PHPBB )

 

в файлике sources/action_pupblic/profile.php пишем функцию проверки IP пользователя ( ту что я выше прописал )

а в условиях пишем свой текст и код формы дня рождения вырезанный из скина профиля.

 

а в скине вместо вырезанной формы вставляем эту функцию.

Только я не могу врубиться как... И вообще правильно это или нет...

Мне очень хотелось бы что бы кто либо из Вас показал мне дураку на практическом примере как сделать отображения в профиле в левой колонке формы дня рождения для любых IP кроме 192.168.

 

Просто мне много таких изменений надо сделать а днюха это как пример.

 

 

И по второму вопросу. У пользователя много дополнительных полей типа № договора, телефон №коммутатора " порта и тд и тп.

Это все сделано, но так как я сам лично завожу пользователей локальных то мне приходиться сначало в админке создать пользователя вписав только имя пароль и почту, потом лезть админом на сайте в его профиль и там заполнять остальные поля.

Вот как сделать что бы сразу в админке все эти поля были, достаточно ли по аналогии с файлом профиля пользователя так же сделать в файлах админки?

Ссылка на комментарий
Поделиться на других сайтах

Мне очень хотелось бы что бы кто либо из Вас показал мне дураку на практическом примере как сделать отображения в профиле в левой колонке формы дня рождения для любых IP кроме 192.168.

skin_ucp.php

найди функцию, которая отображает поле для ДР, с помощью HTML логики прямо в скине регулируй этим куском.

 

А при сохранении в БД делай как тебе уже выше сказали.

Ссылка на комментарий
Поделиться на других сайтах

kazakru, как сделал бы я.

Создаешь новое поле в ibf_members, какое-нибудь local_user, далее при регистрации (или не знаю, когда ты проверяешь принадлежность к локалке) проверяешь IP и заносишь соответствующее значение (0/1) в поле.

Потом выбираешь это поле при формировании кэша юзверя и добавляешь в кэш.

А далее в html-шиблонах проверяешь вот так:

<if="$this->ipsclass->member['local_user']">Юзер — ты локален! :) <else /> Юзер — ты чужой! :( </if>

Если интересует техническая реализация проверки на принадлежность к сети при регистрации и занесение в БД — могу написать пример, но попозже, например, завтра.

Ссылка на комментарий
Поделиться на других сайтах

огромный сенкс, почти все получилось

вот этот кусок

 

				<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} то он выведет весь список годов, а мне надо год рождения даного пользователя.

Как эту выборку из базы сделать?

Ссылка на комментарий
Поделиться на других сайтах

как мне показать эти данные вне формы "select" ?если просто оставить например {$year} то он выведет весь список годов, а мне надо год рождения даного пользователя.
Посмотри, как реализован вывод даты в профиле пользователя — profile.php.
Как эту выборку из базы сделать?
Какую именно?..
Ссылка на комментарий
Поделиться на других сайтах

ну выборку я и имел ввиду как он выбирает дату из базы

 

 

вывод сдлеал

{$member['bday_year']}

именно так как ты подсказал посмотрев в файле profile.php

 

Все, всем огромный СЕНКС, с этим полностью разобрался и понял принципы.

 

 

теперь по второму вопросу если не сложно подкажите.

 

У пользователя много дополнительных полей типа № договора, телефон №коммутатора " порта и тд и тп.

Это все сделано, но так как я сам лично завожу пользователей локальных то мне приходиться сначало в админке создать пользователя вписав только имя пароль и почту, потом лезть админом на сайте в его профиль и там заполнять остальные поля.

Вот как сделать что бы сразу в админке все эти поля были, достаточно ли по аналогии с файлом профиля пользователя так же сделать в файлах админки?

Ссылка на комментарий
Поделиться на других сайтах

теперь по второму вопросу если не сложно подкажите.

В ./sources/action_admin/member.php дописываешь в запросы добавления пользователя соотвествующие поля.

В ./skin_acp/IPB2_Standard/acp_skin_html/cp_skin_member.php добавляешь формы для соотвествующих полей.

Ссылка на комментарий
Поделиться на других сайтах

мда, век живи, век учись...

вот только сейчас нашел что можно всего лишь своих локальщиков засунуть в другую группу в которой указать что редактирование личных данных запрещено...

Так что все что выше это зря.. Хотя для общего представления о работе форума мне это пригодится.

Ссылка на комментарий
Поделиться на других сайтах

так ты ж сказал, что нужно дать возможность редактировать только часть данных, а не все запрещать.
Ссылка на комментарий
Поделиться на других сайтах

да уже увидел что не прав был...

я думал что отключение изменения личных данных не отключает установку аватар и фоток, а оказывется отключает.

Так что придется все же лезть в код... Ну и ладно теперь то это не проблема. С группами даже будет наверно проще работать чем с IP, т.е. проверку делать на пользователя.

Когда по IP была проверка то впринципе можно было локальному пользователю зайти на сайт из другого инета и поменять данные, а при проверке по группе этого не сделаешь :D

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

снова вернусь к этому вопросу...

 

вот есть в файле 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="" остается...

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.