• Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
  • Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
  • Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
  • Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.

[tips and tricks]Номер владельца картинкой

administrator

Блудный сын.
Команда форума
Вместо города номер телефона. Есть целая статья на тему как выводить номер телефона, зачем мудорыдания совершать?
 

dertsb

Новичок
Стоит тема bender

1. Создал папку phone в oc-content/uploads.
2. Сунул код из первого поста вниз файла item.php после всех кодов что там есть, сам файл item.php в папке / oc-content / themes / bender/.
3. Создал дополнительное поле при помощи custom attribute назвал его Телефон: и сделал его обязательным для всех категорий и выбрал для него текстовое значение.

Результат:

Поле телефон появилось, под объявлением, но в нем телефон в виде текста.В папке uploads генерируется пустой рисунок.
В футере еще одно поле Телефон: но только название.
В item.php не нашел ничего подобного что отвечало бы за телефон.

PS, в php не очень силен, поэтому не понял что куда и как передавать, в частности по этому моменту - $phone_mobile = $value;// В переменную $value нужно передавать номер телефона.
 
Последнее редактирование:

centurion

Администратор
Команда форума
На форуме есть тема: Телефон для незарегистрированных пользователей, попробуйте с нее начать, затем скачивайте книгу CSS для чайников и читаете ее. Экзамен лично буду принимать!
 

Andy Larkin

Активный пользователь
А где связь css с php
Dertsb, если ты создал custom attributes, то в item_detail_field.php пишешь в цикле foreach ($fields as $field) {<?php if ($label == "Телефон") {?>
 

dertsb

Новичок
А где связь css с php
Dertsb, если ты создал custom attributes, то в item_detail_field.php пишешь в цикле foreach ($fields as $field) {<?php if ($label == "Телефон") {?>

Я не совсем понял что и как но цикл нашел, я правильно понял что это в модуле custom attributes? Да вообще выложу свой item_detail_field.php, если есть возможность покажите что и куда вставить.
Код:
<?php
if ( !defined('ABS_PATH') ) {
exit('ABS_PATH is not loaded. Direct access is not allowed.');
}
?>
<table>
<tbody>
<?php
$hide_empty = osc_get_preference('hide_empty', CA_PLUGIN_NAME);
foreach ($fields as $field) {  //цикл этот как я понял.
$type = $field['s_type'];
$label = $field['s_label'];
$value = Attributes::newInstance()->getValue($item_id, $field['pk_i_id']);
if (!empty($hide_empty) && 'hide' == $hide_empty) {
if ('checkbox' != $type && '' == trim($value)) {
continue;
}
}
if ($type == 'checkbox') {
if ($value == 'checked') $value = 'Yes';
else $value = 'No';
}
?>
<tr>
<td class='detail_label'><?php echo $label; ?></td>
<td class='detail_label'><?php echo $value; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php //END

И еще один момент который меня смущает. Строчка из вашего первого поста именно эта
Код:
Телефон:<img src="/<?php echo $fname;?>">

Куда вставляется она, просто я ее вставил в конец item.php своего шаблона и у меня еще один лейбл телефон аж под футером, как я понимаю так не должно быть.
 

centurion

Администратор
Команда форума
Код вставляется в том месте, куда вы хотите его выводить. Вы не полностью прочитали тему.
 

Andy Larkin

Активный пользователь
item_detail_fields.php
PHP:
<?php
if ( !defined('ABS_PATH') ) { 
exit('ABS_PATH is not loaded. Direct access is not allowed.');
}
?>
<table>
<tbody>
<?php 
$hide_empty = osc_get_preference('hide_empty', CA_PLUGIN_NAME);
foreach ($fields as $field) {
$type = $field['s_type'];
$label = $field['s_label'];
$value = Attributes::newInstance()->getValue($item_id, $field['pk_i_id']);
if (!empty($hide_empty) && 'hide' == $hide_empty) {
if ('checkbox' != $type && '' == trim($value)) {
continue;
}
}
if ($type == 'checkbox') {
if ($value == 'checked') $value = 'Yes';
else $value = 'No';
}
?>
<?php if ($label == "Телефон") {?>
<?php
$font = 'oc-content/uploads/phone/arial.ttf'; 
$phone_mobile = $value;
$userid=osc_user_id();//osc_item_id()
$fname = 'oc-content/uploads/phone/phone_img-'.$userid.'.png';
 
$img_mobile = imagecreatetruecolor(150, 18); 
$white = imagecolorallocate($img_mobile, 255, 255, 255);
$black=imagecolorallocate($img_mobile, 0, 0, 0);
imagefilledrectangle($img_mobile, 0, 0, 149, 17, $white);
imagettftext($img_mobile, 13, 0, 0, 15, $black, $font, $phone_mobile);
imagepng($img_mobile, $fname);
imagedestroy($img_mobile);
 ?>
 
<tr>
<td class='detail_label'><?php echo $label; ?></td>
<td class='detail_label'><img src="/<?php echo $fname;?>"> </td>
</tr>
<?php } else {?>
<tr>
<td class='detail_label'><?php echo $label; ?></td>
<td class='detail_label'><?php echo $value; ?></td>
</tr>
<?php } ?>
<?php } ?>
</tbody>
</table>
<?php //END
 

dertsb

Новичок
Огромное спасибо разобрался. Просто надо было Ваш код вставлять не в item.php шаблона, а в item_detail_fields.php плагина custom attributes. И добавить файл arial.ttf в папку к картинкам.
 
Последнее редактирование:

dertsb

Новичок
Еще один момент, похоже есть какая то проблема с кэшированием, дело в том что при переключении на другое объявление, картинка с телефоном остается со старого, пока не обновишь страницу браузером, что можно предпринять, чтобы избавиться от этого явления?
 

dertsb

Новичок
Все разобрался, нужно было в строчке $userid=osc_user_id();//osc_item_id() поставить то что в комментарии и все заработало как надо теперь телефон каждый раз перерисовывается при переходах по разным объявлениям. :)
 

combat

Новичок
С позволения автора, я бы немного изменил его код. При коде автора, будет так:
PHP:
Телефон: <img src="/oc-content/uploads/phone/phone_img-'.$userid.'.png" />
Изменяем код:
PHP:
<?php
$phone_mobile = $value;// В переменную $value нужно передавать номер телефона
$userid=osc_item_id();
$fname = base64_encode(file_get_contents('/oc-content/uploads/phone/phone_img-'.$userid.'.png')); // Здесь кодируем картинку
$img_mobile = imagecreate(200, 17);
imagecolorallocatealpha( $img_mobile, 0, 0, 0, 127 );
$textcolor=imagecolorallocate($img_mobile, 0, 0, 0);
imagestring($img_mobile, 4, 2, 0, $phone_mobile, $textcolor);
//imagepng($img_mobile, $fname);
?>
Телефон: <?php echo '<img src="data:image/png;base64,'.$fname.'" />';?> // вставляем data:uri
В итоге получаем следущее:
PHP:
Телефон: <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAARAQMAAACip3E6AAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAFlJREFUGJW9zrENwCAQA0DnC0Bp/Bv8qhYDJGzAqqF/mkhR3J5sGfg0lSEjrCZpPlBcpSXxJafr9K2Yy7IEA0ZZ5M7Q7JjdtREZ1torGbIDGyEJXuCdHvyUB4CDEtrKAjs1AAAAAElFTkSuQmCC" />
 
Последнее редактирование:
Верх