Перейти к содержанию
Официальный форум поддержки Simpla

Загрузка Фото (Логотипов) Для Вариантов Оплаты И Доставки


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

Запрос в БД

ALTER TABLE `s_payment_methods` ADD `image` VARCHAR(255) NOT NULL AFTER`name`;

 

 

simpla/design/html/payment_method.tpl

 

перед

</script>

вставить

$(".images a.delete").click( function() {
        $("input[name='delete_image']").val('1');
        $(this).closest("ul").fadeOut(200, function() { $(this).remove(); });
        return false;
    });

 

 

После

    <!-- Правая колонка -->
    <div id="column_right">

Вставить

    <!-- Изображение метода -->    
        <div class="block layer images">
            <h2>Изображение метода</h2>
            <input class='upload_image' name=image type=file>            
            <input type=hidden name="delete_image" value="">
            {if $payment_method->image}
            <ul>
                <li>
                    <a href='#' class="delete"><img src='design/images/cross-circle-frame.png'></a>
                    <img src="../{$config->payment_method_images_dir}{$payment_method->image}" alt="" />
                </li>
            </ul>
            {/if}
        </div>
 

 

 

 

simpla/PaymentMethodAdmin.php

 

после

class PaymentMethodAdmin extends Simpla
{    

вставляем

private    $allowed_image_extentions = array('png', 'gif', 'jpg', 'jpeg', 'ico'); 

 

 

После

            if($payment_method->id)
            {
                $this->payment->update_payment_settings($payment_method->id, $payment_settings);            
                $this->payment->update_payment_deliveries($payment_method->id, $payment_deliveries);
            }

Вставляем

            // Удаление изображения
            if($this->request->post('delete_image'))
            {
                $this->payment->delete_image($payment_method->id);
            }
            // Загрузка изображения
            $image = $this->request->files('image');
            if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions))
            {
                $this->payment->delete_image($payment_method->id);
                move_uploaded_file($image['tmp_name'], $this->root_dir.$this->config->payment_method_images_dir.$image['name']);
                $this->payment->update_payment_method($payment_method->id, array('image'=>$image['name']));
            }
            $payment_method = $this->payment->get_payment_method(intval($payment_method->id)); 

 

 

 

api/Payment.php
 
 
Найдем
$query = $this->db->placehold("DELETE FROM __delivery_payment WHERE payment_method_id=?", intval($id));
Ниже вставим
$this->delete_image($id); 

 

 

В самом конце файла перед

}

Пишем

    // Удалить изображение
    public function delete_image($id)
    {
        $id = (array) $id;
        $query = $this->db->placehold("SELECT image FROM __payment_methods WHERE id in(?@)", $id);
        $this->db->query($query);
        $filenames = $this->db->results('image');
        if(!empty($filenames))
        {
            $query = $this->db->placehold("UPDATE __payment_methods SET image=NULL WHERE id in(?@)", $id);
            $this->db->query($query);
            foreach($filenames as $filename)
            {
                $query = $this->db->placehold("SELECT count(*) as count FROM __payment_methods WHERE image=?", $filename);
                $this->db->query($query);
                $count = $this->db->result('count');
                if($count == 0)
                {            
                    @unlink($this->config->root_dir.$this->config->payment_method_images_dir.$filename);        
                }
            }
        }
    }

 

 

 

config/confing.php

 

Найдем

;Изображения категорий
categories_images_dir = files/categories/;

Ниже вставим

;Изображения методов оплаты
payment_method_images_dir = files/payment/;

 

 

Создаем папку payment в директории /files и устанавливаем права 777
 
В шаблоне выводим так:
{if $payment_method->image}<img src="../{$config->payment_method_images_dir}{$payment_method->image}" alt="{$payment_method->name}" />{/if}

 

Для вариантов доставки делаем полностью по аналогии, только в api/Delivery.php нужно после name, вставить Image, в 2-ух местах.

 

P.S. Жду пока Shift перенесет тему в соответствующий раздел.

Изменено пользователем smartycms
Ссылка на сообщение
Поделиться на другие сайты

Ну было уже, зачем дублировать?

 

Там я отвечал человеку на вопрос, а эту тему хотел-бы разместить в разделе "готовые решения", думаю многим пригодится 

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

 

Там я отвечал человеку на вопрос, а эту тему хотел-бы разместить в разделе "готовые решения", думаю многим пригодится

Точно

Ссылка на сообщение
Поделиться на другие сайты
  • 9 месяцев спустя...

Спасибо за решение.

Не подскажите как вывести изображения доставки и оплаты на странице заказа? в order.tpl 

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

Спасибо за решение.

Не подскажите как вывести изображения доставки и оплаты на странице заказа? в order.tpl 

 

в первом посте

 

В шаблоне выводим так:
Ссылка на сообщение
Поделиться на другие сайты

Не выводит,в том то и дело.

Именно в order.tpl

 

А это уж смотря какой order.tpl ...

То, что автор написал в этом пункте инструкции, работает для order.tpl в админке.

А если надо на  сайте, пробуйте так:

 

src="{$config->payment_method_images_dir}{$payment_method->image}"

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

А это уж смотря какой order.tpl ...

То, что автор написал в этом пункте инструкции, работает для order.tpl в админке.

А если надо на  сайте, пробуйте так:

 

src="{$config->payment_method_images_dir}{$payment_method->image}"

На сайте,не в админке.

Так и стоит,а точнее:

 

{if $payment_method->image}
<img src="../{$config->payment_method_images_dir}{$payment_method->image}">
{else}
<img src="design/{$settings->theme}/images/no-pay.png">
{/if}
Ссылка на сообщение
Поделиться на другие сайты

 

Попробуйте вот это удалить:

../

Нет,само условие не срабатывает,выводит на всех списках оплаты и доставки 

<img src="design/{$settings->theme}/images/no-pay.png">
Ссылка на сообщение
Поделиться на другие сайты

Значит, надо распечатать $payment_method и посмотреть, есть ли у него image

Не понял.На странице корзины всё работает.

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

И что?

Это разные модули, причем тут вообще Корзина??

Да,я это понимаю.

Я пробовал в /api/Orders.php добавить o.image в выборку с базы,в функции get_order и get_orders но тогда страницы заказов вообще не открываются.Видимо не совсем понимаю как должно работать.

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

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

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

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

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

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