mhait 0 ارسال شده در بهمن 92 (ویرایش شده) سلام دوستان من یکی از کامپوننت های جوملا را ویرایش کردم. می خواسم یک اسکریپت به این کامپوننت اضافه کنم که بایستی یک تصویر را نشان دهید مثلا مثل این اسکریپت $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; این خط رو هم به علت امنیت مجبورم اضافه کنم اما نمی دانم چه کار کنم که نه امنیت رو از دست بدم و هم به اون چیزی که میخواهم برسم البته این رو هم بگویم که نمی توانم این چند خط رو درون فایل کامپوننت بزارم چون اینجوری اجرا نمیشه وتصویری که میخواهم لود نمیشه ممنونم از دوستان برنامه نوس که در صورت امکان من را راهنمایی کنن با تشکر ویرایش شده بهمن 92 توسط mhait نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
Saeed_Shamsi 758 ارسال شده در بهمن 92 با سلام دقیقا بگو این فایل رو میخوای از جا لود کنی؟ در ضمن این عکس ثابته یا متغیر؟ یا حق 1 واکنش ها : فرحزادیان نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
mhait 0 ارسال شده در بهمن 92 با سلام دقیقا بگو این فایل رو میخوای از جا لود کنی؟ در ضمن این عکس ثابته یا متغیر؟ یا حق سلام دوست عزیز این فایل یعنی فایل image.php می خواهم درون پوشه کامپوننت باشه و عکس های متغییر که توسط آی دی به این فایل داده میشه درون صفحه اصلی کامپوننت باز کنه مثلا آی2 ارسال میشه به صورت زیر image.php?id=2 و بعد در صفحه default.php کامپوننت در تگ imgخوانده شود مشکل من فقط با قرار دادن defined('_JEXEC') || die; در صفحه image.php است که باعث میشه این اسکریپت کار نکنه ممنون از شما نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
m4mali 478 ارسال شده در بهمن 92 1- مکان پرونده image.php نسبت به فایل view کامپوننت کجاست ؟ 2- چرا نمی نوانید کدها را همان جا داخل فایل view بنویسید ؟ اگر درست آدرس دهی کنید گمان نمی کنم گیری(مانعی) در کار باشد. برای فرستادن value در url هم می توانید هم از api جوملا و هم از دستورهای php استفاده کنید. 1 واکنش ها : Saeed_Shamsi نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
mhait 0 ارسال شده در بهمن 92 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 نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر
m4mali 478 ارسال شده در بهمن 92 با این کد پرونده image.php را در پرونده default.php فراخوانی کنید. include_once ('image.php'); نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر