رفتن به مطلب
mhait

افزودن یک اسکریپت php به کامپوننت

پست های پیشنهاد شده

ارسال شده در (ویرایش شده)

سلام دوستان


من یکی از کامپوننت های جوملا را ویرایش کردم. می خواسم یک اسکریپت به این کامپوننت اضافه کنم که بایستی یک تصویر را نشان دهید


 


مثلا مثل این اسکریپت


$file = '/home/test/image/test.jpg';

header('Content-Type:image/jpeg');

header("Content-Type: image/jpeg"); 

@readfile($file);    

 

این اسکریپت باید آدرس عکس رو که خارج از پوشه اصلی سایت است رو بخونه

 

من باید این اسکریپت رو در فایلی به نام

image.php

ذخیره کنم و بعدش در خود کامپوننت با یک تگی مثل 


<img src="/image.php" />

تصویر را

نمایش دهم

 

مشکل اینجانست که اگر فایل

image.php

را مستقیم درون کامپوننت قرار دهم همه موارد بخوبی اجرا میشود اما اگر بخواهم این فایل را از دسترسی مستقیم با افزودن خط زیر جلوگیری کنم دیگر کار نمی کند

defined('_JEXEC') || die;

 

این خط رو هم به علت امنیت مجبورم اضافه کنم اما نمی دانم چه کار کنم که نه امنیت رو از دست بدم و هم به اون چیزی که میخواهم برسم

 

البته این رو هم بگویم که نمی توانم این چند خط رو درون فایل کامپوننت بزارم چون اینجوری اجرا نمیشه وتصویری که میخواهم لود نمیشه

 

ممنونم از دوستان برنامه نوس که در صورت امکان من را راهنمایی کنن

 

با تشکر

 

ویرایش شده توسط mhait

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با سلام

 

دقیقا بگو این فایل رو میخوای از  جا لود کنی؟

در  ضمن این عکس ثابته یا متغیر؟

 

 

یا حق

سلام دوست عزیز

این فایل یعنی فایل 

image.php

می خواهم درون پوشه کامپوننت باشه و عکس های متغییر که توسط آی دی به این فایل داده میشه درون صفحه اصلی کامپوننت باز کنه

مثلا آی2 ارسال میشه به صورت زیر

image.php?id=2

 و بعد در صفحه 

default.php 

کامپوننت در تگ imgخوانده شود

 

  مشکل من فقط با قرار دادن 

defined('_JEXEC') || die;

 در صفحه 

image.php

است که باعث میشه این اسکریپت کار نکنه

 

ممنون از شما

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

1- مکان پرونده image.php  نسبت به فایل view کامپوننت کجاست ؟

2- چرا نمی نوانید کدها را همان جا داخل فایل view  بنویسید ؟ اگر درست آدرس دهی کنید گمان نمی کنم گیری(مانعی) در کار باشد. برای فرستادن value  در url هم می توانید هم از api جوملا و هم از دستورهای php استفاده کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

1- مکان پرونده image.php  نسبت به فایل view کامپوننت کجاست ؟

2- چرا نمی نوانید کدها را همان جا داخل فایل view  بنویسید ؟ اگر درست آدرس دهی کنید گمان نمی کنم گیری(مانعی) در کار باشد. برای فرستادن value  در url هم می توانید هم از api جوملا و هم از دستورهای php استفاده کنید.

 

سلام دوست عزیز

 

فایل های image.php  و Default.php درون پوشه tmpl کامپوننت هستند.

 

و فایل view.html.php درون کامپوننت حاوی کدهای زیر است

 

<?php
defined('_JEXEC') || die;
 
class payViewpayList extends JViewLegacy
{
 
    protected $items;
 
    protected $pagination;
    public function display($tpl = null)
    {
        $this->items = $this->get('Items');
        $this->pagination = $this->get('Pagination');
        $this->addToolBar();
 
        $errors = $this->get('Errors');
 
        if(count($errors))
        {
            JFactory::getApplication()->enqueueMessage(implode('<br />', $errors), 'error');
 
            return;
        }
 
        parent::display($tpl);
 
        $this->setDocument();
    }
 
    protected function addToolBar()
    {
        JToolBarHelper::title(JText::_('تراکنش ها'), 'pay');
 
   JToolbarHelper::preferences('com_pay');
    }
 
    protected function setDocument()
    {
        JFactory::getDocument()->setTitle(JText::_('تراکنش ها'));
    }
}
?>
 
ممنون میشوم بفرمایید چه کاری بایستی انجام دهم درون این فایل  View 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با این کد پرونده image.php  را در پرونده default.php فراخوانی کنید.

include_once ('image.php');

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...