php Замена поля ICQ на ВК или Skype(CS:BANS) инструкция.

Сообщения
104
Реакции
38
Помог
1 раз(а)
Доброго времени суток форумчане.
С недавних пор ломал себе голову как заменить в банлисте ненужную графу ICQ на странице админов(Мелочь а приятно).
Вот так это выглядит на стандартной версии:
screen1.png
Погуглив нашел тему на всем известном ресурсе c-s.net, в той теме был мануал как переделать поле ICQ в поле ВК или скайп, а так же добавить любое другое поле, для ваших нужд.
В итоге после всех манипуляций мы получим колонку такого вида:
2017-07-14 (2).png screen3.png
1. В файле protected/models/amxadmins.php сделать следующие изменения:
Изменить
Код:
* @property integer $icq Контакты
на
Код:
* @property integer $icq Skype
Изменить
Код:
array('icq, ashow, days, change', 'numerical', 'integerOnly'=>true),
на
Код:
array('ashow, days, change', 'numerical', 'integerOnly'=>true),
array('icq', 'length', 'max'=>32),
Изменить
Код:
'icq' => 'ICQ'
на
Код:
'icq' => 'Skype'
2. В файле /protected/views/amxadmins/index.php сделать следующие изменения:
Изменить
Код:
'value' => '$data->icq != 0 ? CHtml::encode($data->icq) : "<i>Не задан</i>"',
на
Код:
'value' => '$data->icq ? CHtml::image("/ban/images/skype.ico"). " " . CHtml::link($data->icq, "skype:".$data->icq."?call") : "<i>Не указано</i>"',
3. В файле protected/controllers/AmxadminsController.php сделать следующие изменения:
Изменить
Код:
<tr>";
 $info .= "<td><b>Контакты</b></td>";
 $info .= "<td>" . ($model->icq ? CHtml::image("//icq-rus.com/icq/3/".$model->icq.".gif"). " " . $model->icq : 'Не задан') . "</td>";
 $info .= "</tr>
на
Код:
<tr>";
 $info .= "<td><b>Skype</b></td>";
 $info .= "<td>" . ($model->icq ? CHtml::image("/ban/images/skype.ico"). " " . CHtml::link($model->icq, "skype:".$model->icq."?call") : 'Не указано') . "</td>";
 $info .= "</tr>
В базе в таблице amxadmins для колонки "icq" выставить тип "varchar" с длинной "32"

1. В файле protected/models/amxadmins.php сделать следующие изменения:
Изменить
Код:
* @property integer $icq Контакты
на
Код:
* @property integer $icq Вконтакте
Изменить
Код:
array('icq, ashow, days, change', 'numerical', 'integerOnly'=>true),
на
Код:
array('ashow, days, change', 'numerical', 'integerOnly'=>true),
array('icq', 'length', 'max'=>32),
Изменить
Код:
'icq' => 'ICQ'
на
Код:
'icq' => 'Вконтакте'
2. В файле /protected/views/amxadmins/index.php сделать следующие изменения:
Изменить
Код:
'value' => '$data->icq != 0 ? CHtml::encode($data->icq) : "<i>Не задан</i>"',
на
Код:
'value' => '$data->icq ? CHtml::image("/ban/images/vk.ico"). " ". CHtml::link($data->icq, "http://".$data->icq, array("target"=>"_blank")): "<i>Не указано</i>"',
3. В файле protected/controllers/AmxadminsController.php сделать следующие изменения:
Изменить
Код:
<tr>";
 $info .= "<td><b>Контакты</b></td>";
 $info .= "<td>" . ($model->icq ? CHtml::image("//icq-rus.com/icq/3/".$model->icq.".gif"). " " . $model->icq : 'Не задан') . "</td>";
 $info .= "</tr>
на
Код:
<tr>";
 $info .= "<td><b>Вконтакте</b></td>";
 $info .= "<td>" . ($model->icq ? CHtml::image("/ban/images/vk.ico"). " " . CHtml::link($model->icq, "http://".$model->icq, array("target"=>"_blank")) : 'Не указано') . "</td>";
 $info .= "</tr>
В базе в таблице amxadmins для колонки "icq" выставить тип "varchar" с длинной "32"

В файле protected/models/amxadmins.php сделать следующие изменения:
После
Код:
* @property integer $icq Вконтакте
Добавить
Код:
* @property integer $skype Skype
Изменить
Код:
array('username, access, flags, steamid, nickname', 'length', 'max'=>32),
на
Код:
array('username, access, flags, steamid, nickname, skype', 'length', 'max'=>32),
Изменить
Код:
array('id, username, password, access, flags, steamid, nickname, icq, ashow, created, expired, days', 'safe', 'on'=>'search'),
на
Код:
array('id, username, password, access, flags, steamid, nickname, icq, ashow, created, expired, days, skype', 'safe',  'on'=>'search'),
После
Код:
'icq' => 'Вконтакте',
добавить
Код:
'skype' => 'Skype',
После
Код:
$criteria->compare('icq',$this->icq);
добавить
Код:
$criteria->compare('skype',$this->skype);
2. В файле /protected/views/amxadmins/index.php сделать следующие изменения:
После
Код:
,
 array(
 'name' => 'icq',
 'type' => 'raw',
 'value' => '$data->icq ? CHtml::image("/ban/images/vk.ico"). " ". CHtml::link($data->icq, "http://".$data->icq, array("target"=>"_blank")): "<i>Не указано</i>"',
 'htmlOptions' => array(
 'style' => 'width: 170px;'
 )
 )
добавить
Код:
,
 array(
 'name' => 'skype',
 'type' => 'raw',
 'value' => '$data->skype ? CHtml::image("/ban/images/skype.ico"). " " . CHtml::link($data->skype, "skype:".$data->skype."?call") : "<i>Не указано</i>"',
 'htmlOptions' => array(
 'style' => 'width: 170px;'
 )
 )
3. В файле protected/controllers/AmxadminsController.php сделать следующие изменения:
После
Код:
<tr>";
 $info .= "<td><b>Вконтакте</b></td>";
 $info .= "<td>" . ($model->icq ? CHtml::image("/ban/images/vk.ico"). " " . CHtml::link($model->icq, "http://".$model->icq, array("target"=>"_blank")) : 'Не указано') . "</td>";
 $info .= "</tr>
добавить
Код:
<tr>";
 $info .= "<td><b>Skype</b></td>";
 $info .= "<td>" . ($model->skype ? CHtml::image("/ban/images/skype.ico"). " " . CHtml::link($model->skype, "skype:".$model->skype."?call") : 'Не указано') . "</td>";
 $info .= "</tr>
4. В файле /protected/views/amxadmins/_form.php сделать следующие изменения:
После
Код:
echo $form->textFieldRow($model,'icq',array('class' => 'span6',));
добавить
Код:
echo $form->textFieldRow($model,'skype',array('class' => 'span6',));
5. В файле /protected/views/amxadmins/view.php сделать следующие изменения:
После
Код:
'icq'
добавить
Код:
'skype',


В базе в таблице amxadmins нужно создать колонку "skype" тип "varchar" с длинной "32"

Но мне хотелось сделать по другому, я хотел сделать что бы это было реализовано только иконкой. Допустим если вк указан то иконка была ярко синего цвета, если не указана то иконка была бы прозрачная. И в итоге мне подсказали решение моей проблемы и я реализовал вывод страницы вк такого вида которого хотел и заодно пример добавления дополнительного поля в моем случае Skype(Кстати колонку Skype по аналогии так же можно будет сделать иконкой:
screen2.png
1. В файле protected/models/amxadmins.php сделать следующие изменения:
Изменить
Код:
* @property integer $icq Контакты
на
Код:
* @property integer $icq Вконтакте
Изменить
Код:
array('icq, ashow, days, change', 'numerical', 'integerOnly'=>true),
на
Код:
array('ashow, days, change', 'numerical', 'integerOnly'=>true),
array('icq', 'length', 'max'=>32),
Изменить
Код:
'icq' => 'ICQ'
на
Код:
'icq' => 'Вконтакте'
2. В файле /protected/views/amxadmins/index.php сделать следующие изменения:
Изменить
Код:
'value' => '$data->icq != 0 ? CHtml::encode($data->icq) : "<i>Не задан</i>"',
на
Код:
'value' => '$data->icq ? CHtml::link(CHtml::image("/ban/images/vk.ico"), "http://vk.com/".$data->icq, array("target"=>"_blank")): CHtml::image("/ban/images/vk_neukazan.ico")',
3. В файле protected/controllers/AmxadminsController.php сделать следующие изменения:
Изменить
Код:
<tr>";
 $info .= "<td><b>Контакты</b></td>";
 $info .= "<td>" . ($model->icq ? CHtml::image("//icq-rus.com/icq/3/".$model->icq.".gif"). " " . $model->icq : 'Не задан') . "</td>";
 $info .= "</tr>
на
Код:
<tr>";
 $info .= "<td><b>Вконтакте</b></td>";
$info .= "<td>" . ($model->icq ? CHtml::link(CHtml::image("/ban/images/vk.ico"), "http://vk.com/".$model->icq, array("target"=>"_blank")) : CHtml::image("/ban/images/vk_neukazan.ico")) . "</td>";
 $info .= "</tr>
Следует обратить внимание что:
vk.com/ - если в качестве идентификатора только айди вводите, иначе ссылка не будет ссылаться на вк.
vk_neukazan.ico - наименование файла от "неуказанного" вк

В базе в таблице amxadmins для колонки "icq" выставить тип "varchar" с длинной "32"

Пример работы:

Для малоимущих выкладываю иконки ВК и скайпа:
vk.png vkop.png skype.png

Надеюсь что моя статься кому либо пригодится.
Спасибо за внимание.

Огромное спасибо пользователю форума c-s.net(Inf19) за предоставленный мануал.
Доработал: ImbaSS​
 
Сообщения
160
Реакции
456
Спасибо за старания:) Идея хорошая, сейчас проделал у себя пошагово: "Замена icq на VK(Только иконка с ссылкой)"

И столкнулся с проблемой: Ошибка 500. В чем может быть проблема?
 

Download all Attachments

Сообщения
104
Реакции
38
Помог
1 раз(а)
Попробуй заменить на мои файлы, всякое бывает.
/protected/views/amxadmins/index.php
protected/controllers/AmxadminsController.php
14 Июл 2017
И кажется в курсе твоей проблемы:
Код:
$info .= "<td><b>Вконтакте</b></td>";
$info .= "<td>" . ($model->icq ? CHtml::link(CHtml::image("http://cserv.pro/bans/vk.png"), "http://vk.com/".$model->icq, array("target"=>"_blank")) : CHtml::image("http://cserv.pro/bans/vkop.png")) . "</td>";
$info .= "</tr><tr>";
И сравни как у тебя сделано.
 

Вложения

Сообщения
160
Реакции
456
ImbaSS, Супер! Спасибо! Помогло:thank_you::good2::ok:
 
Сообщения
342
Реакции
65
Помог
6 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
ImbaSS, не работает, я и до этого тоже самое делал, поэтому и написал в предыдущей теме, что не работает
14 Июл 2017
xZenon, покажи, как выглядит?
 
  • Нравится
Реакции: DES
Сообщения
104
Реакции
38
Помог
1 раз(а)
ops244, Странно даже, а что пишет то хоть? Ошибку или вообще не работает ?
в БД запись отредактировал ?
 
Сообщения
342
Реакции
65
Помог
6 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
ImbaSS, нет) а ты и не указал, что нужно xD
 
  • Нравится
Реакции: DES
Сообщения
104
Реакции
38
Помог
1 раз(а)
ops244, А что у тебя за ошибка вообще, опиши полностью процесс и что у тебя не получается ?
 
Сообщения
75
Реакции
66
Помог
1 раз(а)
ImbaSS, Не знаю планируете ли вы дальше двигатся в теме изминений csbans, но так как я в web-dev. ничерта не понимаю, то оставлю свою идею здесь.
1) Можно заменить столбик флаги на привилегии. Чтобы при наличии определенных флагов в поле выдавало имя привилегии. К примеру у игрока есть флаги abc, в поле выдает привилегию1, есть флаги qsrt выдает привилегию2.
2) При добавлении админов поле флаги так же заменить на привилегию. Чтобы не возится с флагами выбираешь нужную привилегию, будь то вип, админ или что другое и для этих привилегий флаги заданы по умолчанию.
Это всего лишь идея, не принимайте это как требование или тому подобное :)
 
Сообщения
104
Реакции
38
Помог
1 раз(а)
zerg, Идея интересная но жаль я не разработчик) Я гость в этой системе! :) А вообще идея не плохая, но сейчас это реализовано путем добавления дополнительного полня например и прописывать туда каждому человеку его привилегию :)
2017-07-16.png
 
Сообщения
75
Реакции
66
Помог
1 раз(а)
ImbaSS, была мысля вписывать в отдельное поле. Конечно это не совсем то, что нужно, но так как нет возможности сделать как желает душа, то вполне сойдет. Спасибо за информацию)
Надеюсь, кого то заинтересует мое предыдущее сообщение и он возьмется за реализацию этого.
 
Сообщения
29
Реакции
15
Контактную информацию можно как раз таки заменить на "привилегии" в ручную писать, админ, вип-уип и т.п.

Все равно контактная информация никому нафиг не нужна
 
Сообщения
104
Реакции
38
Помог
1 раз(а)
Nebo, Как вариант :) Интересно как это реализовать в автоматическом режиме..
 
Сообщения
83
Реакции
63
Помог
1 раз(а)
ImbaSS,
спасибі .. Намагався .. Кілька днів мучився з цим .. Тепер може навіть запозичу вашу ідею .. Непогано виглядає коли неактивна іконка))
zerg, вашою ідеєю задавався теж .. Та не тільки я)
це думаю треба багато чого дописувати. ідею повідомили автору .. Сподіваємося в новій версісі вона буде реалізована ..
Поки що користуюся тим же способом додавши новою колонку для введення руками привілеї гравцеві.
 
Последнее редактирование:
Сообщения
1
Реакции
0
ImbaSS, привет а у вас есть готовое? скиньте пожалуста! у меня не получается!
27 Июл 2017
xZenon, помаги мне!
 
Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Batys KZ, все готовое в первом сообщение. Если вы не понимаете, как использовать поиск по файлам и навыки "copy-paste", то готовые файлы вам не помогут - они вызовут у вас еще больше трудностей и вопросов.
Учитесь и разбирайтесь, анализируйте готовый мануал и ищите ошибки в своих действиях.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
'value' => '$data->icq ? CHtml::image("/ban/images/skype.ico"). " " . CHtml::link($data->icq, "skype:".$data->icq."?call") : "<i>Не указано</i>"',
как же бесит такое. это из офф мануала по Yii 1.x. Суть в том что в такой записи происходит eval кода что в строке. Лучше заменить на
PHP:
'value' => function ($data) {
return $data->icq ? CHtml::image("/ban/images/skype.ico"). " " . CHtml::link($data->icq, "skype:". $data->icq. "?call") : "<i>Не указано</i>";
}

Плюс ко всему названия поля в базе можна просто заменить
ALTER TABLE `amx_amxadmins` CHANGE `icq` `skype` varchar(32) DEFAULT NULL;
27 Июл 2017
Также можна добавить и скайп и ВК и другие соц сети
 
Сообщения
104
Реакции
38
Помог
1 раз(а)
Многие не могут понять как сделать этот пункт:
"В базе в таблице amxadmins для колонки "icq" выставить тип "varchar" с длинной "32"

Так вот делается это следующим образом:
Заходите в свою базу данных куда установлен cs bans, находите таблицу amx_amxadmins:
scr1.png
Далее выбираете вверху вкладку "Структура":
scr2.png
Следующий шаг, находим поле "icq" и нажимаем кнопку изменить:
scr33.png
И самый последний шаг, редактируем только поля "тип" и "длинна" и жмем кнопку сохранить.
scr4.png

Вот собственно и все.
 
Последнее редактирование:
Сообщения
152
Реакции
18
Помог
2 раз(а)
ImbaSS, тоже не нашел сразу.
Только после ответа в ЛС)
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу