Как добавить любую дополнительную галочку в сборку (решено)

Раздел для тех кто знает слово: декомпиляция, все тонкости, коды, баги, дополнения и т.д.
Ответить
Аватара пользователя
glGizma
Site Admin
Сообщения: 218
Зарегистрирован: Ср сен 27, 2017 2:20 pm

Как добавить любую дополнительную галочку в сборку (решено)

Сообщение glGizma » Сб июл 27, 2019 5:49 am

Часто спрашивают, как добавить любую дополнительную галочку в сборку (например огонёк). Список изменяемых фалов (на самом деле если всё грамотно прописывать их больше), тут указаны только основные, которые мы сегодня затронем:

\templates\Default\profile.tpl
\system\modules\profile.php
\js\main.js
\system\modules\search.php
\templates\Default\search\result_people.tpl
\js\common.js
\system\inc\users.php
\system\inc\massaction.php


/********\

Что мы и, как делаем в пользовательской части:
1) Чтобы добавить галочку нужно ориентироваться на стандартный verification - это самый лучший ориентир для создания дополнительной галки!
2) Открываем "profile.tpl" и ищем строку:

Код: Выделить всё

<div class="titleu"> {name} {lastname} <div class="online_time">{online}</div></div>
И добавляем после {lastname} > {verification} и должно получится так: <div class="titleu"> {name} {lastname} {verification}<div class="online_time">{online}</div></div>. Тут можно делать неограниченное количество галок, вот например в текущей сборке vk-x.ru так:

Код: Выделить всё

<div class="titleu"> {name} {lastname} {verification}{verifi}{verifi_music}{verifi_youtube}{verifi_idea}{verifi_kakaha}{verifi_dota}{verifi_la2}{verifi_vkoff}{verifi_tanki}{verifi_8090g}<div class="online_time">{online}{online2}{onlinehidden}</div></div>
В этом файле всё, идём дальше:
3) Открываем модуль: "profile.php" и ищем:

Код: Выделить всё

$tpl->load_template('profile.tpl');
$row_params = $db->super_query("SELECT verification FROM `".PREFIX."_users` WHERE user_id = '{$id}'", false, "user_{$id}/params");
В этот запрос мы добавляем свою или свои галки:

Код: Выделить всё

$row_params = $db->super_query("SELECT verifi, verification FROM `".PREFIX."_users` WHERE user_id = '{$id}'", false, "user_{$id}/params");
Далее ниже в этом же файле добавляем:

Код: Выделить всё

// Верификация "интересно знать"
$verifi = '<a href="/iz" onclick="Page.Go(this.href); return false;"><img onMouseover="pageVerifiedTipiz(this);" src="{theme}/images/top.gif" /></a>';

// Верификация "интересно знать"
if($row_params['verifi']){
$tpl->set('{verifi}', $verifi);
}else{
$tpl->set('{verifi}', '');
}
Тут всё поехали дальше!
4) В sql таблице vii_users нужно добавить строку (в нашем случае): "verifi" параметры такие:

Код: Выделить всё

name = verifi
type = tinyint
length = 2
decimals = 0
allow null = false
с:
[*]\system\modules\search.php
[*]\templates\Default\search\result_people.tpl
проделываем тоже самое. :)

/********\ А теперь админка:
1) Понеслись в "users.php". тут в самом низу ищем:

Код: Выделить всё

<option value="24">Убрать верификацию пользователя</option>
и добавляем наши значения:

Код: Выделить всё

 <option value="25">Верифицировать (iz)</option>
 <option value="26">Убрать верификацию (iz)</option>
В этом файле всё, сваливаем дальше:
2) Открываем "massaction.php". этот файл будет очень вкусным, если в нём некорректно прописать наши галки, админка отвалится! Ищем:

Код: Выделить всё

if($mass_type <= 24 AND $mass_type >= 1){
и меняем на

Код: Выделить всё

if($mass_type <= 26 AND $mass_type >= 1){
Далее ищем ниже:

Код: Выделить всё

//Убераем верификацию пользователя
else if($mass_type == 24){
//Проверяем есть юзер в базе или нет
$check_user = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
$db->query("UPDATE `".PREFIX."_users` SET verification = '0' WHERE user_id = '{$user_id}'");
mozg_mass_clear_cache_file("user_{$user_id}/params");
}
и после добавляем:

Код: Выделить всё

//Верификация (интересно знать)
else if($mass_type == 25){
//Проверяем есть юзер в базе или нет
$check_user = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
if($check_user['cnt'])
$db->query("UPDATE `".PREFIX."_users` SET verifi = '1' WHERE user_id = '{$user_id}'");
mozg_mass_clear_cache_file("user_{$user_id}/params");
}
					
//Убираем верификацию (интересно знать)
else if($mass_type == 26){
//Проверяем есть юзер в базе или нет
$check_user = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_id = '{$user_id}'");
$db->query("UPDATE `".PREFIX."_users` SET verifi = '0' WHERE user_id = '{$user_id}'");
mozg_mass_clear_cache_file("user_{$user_id}/params");
}
В этом же файле ищем (посередине):

Код: Выделить всё

else if($mass_type == 24)
msgbox('Верификация', 'Выбранные пользователи потеряли верифицированы', '?mod=users');
в вставляем ниже:

Код: Выделить всё

else if($mass_type == 25)
msgbox('Верификация', 'Выбранные пользователи верифицированы в режиме IZ', '?mod=users');
else if($mass_type == 26)
msgbox('Верификация', 'Выбранные пользователи потеряли верификацию IZ', '?mod=users');
На этом всё.!
p.s.:

1) Проверяйте правильность sql. часто ошибки совершают именно тут!.
2) В этой инструкции описан рабочий вариант, он используется и работает безупречно!
3) САМОЕ ГЛАВНОЕ: Не пытайтесь поставить на 1 профиль все галки, работать не будет! Так, как в css стоить "position: absolute;", если его убрать со всех галок, то они пойдут в ряд.
4) Можно выдавать галки без админки, меняя значения в ручную в sql таблице.
5) Если вы планируете делать кучу галок, рекомендую создать отдельный каталог в img\.
6) Вы всё сделали, но не работает. Мой код подойдёт к вашей сборке на 95%, я незнаю вашу сборку и значения могут расходиться, проверяйте .php ...
7) Готовые файлы я не могу скинуть, они очень-очень кардинально изменены и нарушат Вашу сборку, ошибок ух.... будет!
8) Делайте обязательно БЭКАПЫ - что это такое: гугл.

Есть вопросы, задавайте в этой теме, помогу, отвечу ... Вам удачи.
Вложения
ver.jpg
ver.jpg (161.54 КБ) 14114 просмотров

Ответить