برای حل مشکل محتوای زیر را در فایل /public_html/language/fa-IR/localise.php جایگزین کنید. defined('_JEXEC') or die; use Joomla\CMS\Date\Date; abstract class Fa_IRLocalise { public static function getPluralSuffixes($count) { if ($count == 0) { $return = array('0'); } elseif($count == 1) { $return = array('ONE', '1'); } else { $return = array('OTHER', 'MORE'); } return $return; } public static function getIgnoredSearchWords() { $search_ignore = array(); $search_ignore[] = "and"; $search_ignore[] = "in"; $search_ignore[] = "on"; return $search_ignore; } public static function getLowerLimitSearchWord() { return 3; } public static function getUpperLimitSearchWord() { return 20; } public static function getSearchDisplayedCharactersNumber() { return 200; } } class fa_IRDate extends Date { const DAY_NUMBER = "\x027\x03"; const DAY_NUMBER2 = "\x030\x03"; const DAY_YEAR = "\x032\x03"; const MONTH_ABBR = "\x033\x03"; const MONTH_NAME = "\x034\x03"; const MONTH_NUMBER = "\x035\x03"; const MONTH_NUMBER2 = "\x036\x03"; const MONTH_LENGTH = "\x037\x03"; const YEAR_ABBR = "\x040\x03"; const YEAR_NAME = "\x041\x03"; const AM_LOWER = "\x042\x03"; const AM_UPPER = "\x043\x03"; const PERSIAN_EPOCH = 1948320.5; protected static $month_names = array("فروردين","ارديبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"); public function calendar($format, $local = false, $translate = true) { // Replace format strings that can be translated. $format = preg_replace('/(^|[^\\\])d/', "\\1".self::DAY_NUMBER2, $format); $format = preg_replace('/(^|[^\\\])j/', "\\1".self::DAY_NUMBER, $format); $format = preg_replace('/(^|[^\\\])z/', "\\1".self::DAY_YEAR, $format); $format = preg_replace('/(^|[^\\\])M/', "\\1".self::MONTH_ABBR, $format); $format = preg_replace('/(^|[^\\\])F/', "\\1".self::MONTH_NAME, $format); $format = preg_replace('/(^|[^\\\])n/', "\\1".self::MONTH_NUMBER, $format); $format = preg_replace('/(^|[^\\\])m/', "\\1".self::MONTH_NUMBER2, $format); $format = preg_replace('/(^|[^\\\])t/', "\\1".self::MONTH_LENGTH, $format); $format = preg_replace('/(^|[^\\\])y/', "\\1".self::YEAR_ABBR, $format); $format = preg_replace('/(^|[^\\\])Y/', "\\1".self::YEAR_NAME, $format); $format = preg_replace('/(^|[^\\\])a/', "\\1".self::AM_LOWER, $format); $format = preg_replace('/(^|[^\\\])A/', "\\1".self::AM_UPPER, $format); // Format the date using parent method. $return = parent::calendar($format, $local); // Convert to Jalali date. $jd = gregoriantojd($this->month, $this->day, $this->year); $jalaliDate = self::jd_to_persian($jd); $m = $jalaliDate['mon']; $d = $jalaliDate['day']; $y = $jalaliDate['year']; // Replace placeholders with Persian values. if (strpos($return, self::DAY_NUMBER) !== false) { $return = str_replace(self::DAY_NUMBER, $d , $return); } if (strpos($return, self::DAY_NUMBER2) !== false) { $return = str_replace(self::DAY_NUMBER2, sprintf("%02d",$d), $return); } if (strpos($return, self::DAY_YEAR) !== false) { $return = str_replace(self::DAY_YEAR, $jd - self::persian_to_jd(1,1,$y)+1, $return); } if (strpos($return, self::MONTH_ABBR) !== false) { $return = str_replace(self::MONTH_ABBR, self::$month_names[$m-1] , $return); } if (strpos($return, self::MONTH_NAME) !== false) { $return = str_replace(self::MONTH_NAME, self::$month_names[$m-1] , $return); } if (strpos($return, self::MONTH_NUMBER) !== false) { $return = str_replace(self::MONTH_NUMBER, $m , $return); } if (strpos($return, self::MONTH_NUMBER2) !== false) { $return = str_replace(self::MONTH_NUMBER2, sprintf("%02d", $m) , $return); } if (strpos($return, self::MONTH_LENGTH) !== false) { $return = str_replace(self::MONTH_LENGTH, ($m < 7 ? 31 : (($m < 12 ? 30 : self::leap_persian($y)) ? 30 : 29)) , $return); } if (strpos($return, self::YEAR_ABBR) !== false) { $return = str_replace(self::YEAR_ABBR, sprintf("%02d",$y % 100), $return); } if (strpos($return, self::YEAR_NAME) !== false) { $return = str_replace(self::YEAR_NAME, $y, $return); } if (strpos($return, self::AM_LOWER) !== false) { $return = str_replace(self::AM_LOWER, $this->format('a',$local)=='pm' ? 'ب ظ' : 'ق ظ', $return); } if (strpos($return, self::AM_UPPER) !== false) { $return = str_replace(self::AM_UPPER, $this->format('a',$local)=='pm' ? 'ب ظ' : 'ق ظ', $return); } return $return; } /** * Converts a Julian Day to a Persian (Jalali) date. */ public static function jd_to_persian($jd) { $depoch = $jd - self::persian_to_jd(1, 1, 475); $cycle = floor($depoch / 1029983); $cyear = $depoch % 1029983; if ($cyear == 1029982) { $ycycle = 2820; } else { $aux1 = floor($cyear / 366); $aux2 = $cyear % 366; $ycycle = floor(((2134 * $aux1) + (2816 * $aux2) + 2815) / 1028522) + $aux1 + 1; } $year = $ycycle + (2820 * $cycle) + 474; if ($year <= 0) { $year--; } $yday = ($jd - self::persian_to_jd(1, 1, $year)) + 1; $month = ($yday <= 186) ? ceil($yday / 31) : ceil(($yday - 6) / 30); $day = ($jd - self::persian_to_jd($month, 1, $year)) + 1; return array('year'=>$year, 'mon'=>$month,'day'=> $day); } /** * Converts a Persian (Jalali) date to Julian Day. */ public static function persian_to_jd($month, $day, $year) { $epbase = $year - (($year >= 0) ? 474 : 473); $epyear = 474 + $epbase % 2820; return $day + (($month <= 7) ? (($month - 1) * 31) : ((($month - 1) * 30) + 6)) + floor((($epyear * 682) - 110) / 2816) + ($epyear - 1) * 365 + floor($epbase / 2820) * 1029983 + self::PERSIAN_EPOCH; } /** * Checks if a Persian year is a leap year. */ public static function leap_persian($year) { return (((((($year - (($year > 0) ? 474 : 473)) % 2820) + 474) + 38) * 682) % 2816) < 682; } }
ادامه مطلبجمعه, 15 بهمن 1403
آموزش برنامه نویسی جوملا
ساده ترین روش تبدیل تاریخ میلادی به شمسی
اگر شما هم به دنبای یک کلاس ساده بدون استفاده از توابع پیچیده برای تبدیل تاریخ میلادی به شمسی هستید از این کلاس می توانید استفاده کنید. function SDate($langcode,$langname,$datetime,$format){ $formatter = new IntlDateFormatter( "$langcode@calendar=$langname", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, "$format" ); return $formatter->format($datetime);} برای استفاده از این کلاس به شکل زیر صدا بزنید. میلادی: <?php echo SDate('en_GB','english',$date,'EEEE، d MMMM Y');?> شمسی: <?php echo SDate('fa_IR','persian',$date,'EEEE، d MMMM Y');?> خروجی دوشنبه، ۱۵ بهمن ۱۴۰۳
ادامه مطلبیکشنبه, 08 دی 1403
آموزش برنامه نویسی جوملا
طراحی ماژول اپلود تصاویر با اجاکس و بوت استراپ
در اینجا به طور مختصر مراحل ایجاد ماژول جوملا برای آپلود تصویر با استفاده از PHP و AJAX را شرح میدهم. برای سادگی، ما ابتدا یک ماژول ساده ایجاد میکنیم که فرم آپلود تصویر را در آن قرار دهیم. مراحل ایجاد یک ماژول جوملا برای آپلود تصویر ساخت ساختار فایلهای ماژول برای ایجاد یک ماژول، باید یک دایرکتوری در پوشه modules ایجاد کنید و سپس فایلهای لازم را در آن قرار دهید. به مسیر زیر بروید: /modules/mod_imageupload ساخت فایلهای مورد نیاز: در پوشه mod_imageupload، چند فایل اصلی خواهیم داشت: mod_imageupload.php (فایل اصلی ماژول) helper.php (برای کدهای کمکی و پردازش) tmpl/default.php (نمایش فرم آپلود و پروگرس بار) mod_imageupload.xml (فایل نصب و تنظیمات ماژول) 1. فایل mod_imageupload.php: این فایل عملکرد اصلی ماژول را بر عهده دارد. در آن فرم آپلود به همراه پردازشها را قرار میدهیم. <?php // دسترسی مستقیم به فایل ممنوع است defined('_JEXEC') or die; // شامل فایل helper require_once dirname(__FILE__) . '/helper.php'; // دریافت خروجی از helper $uploadForm = modImageUploadHelper::getUploadForm(); require JModuleHelper::getLayoutPath('mod_imageupload'); 2. فایل helper.php: در این فایل، میتوانید منطق پردازش فایل را بنویسید، مثلا بررسی فایل و آپلود آن. برای اینکه کار با این ماژول راحتتر باشد، همه کدهای اصلی آپلود را در اینجا قرار میدهیم. <?php // دسترسی مستقیم به فایل ممنوع است defined('_JEXEC') or die; class modImageUploadHelper { public static function getUploadForm() { // بررسی ارسال فایل و آپلود if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['image'])) { $uploadDir = JPATH_ROOT . '/images/uploads/'; $maxFileSize = 5 * 1024 * 1024; // حداکثر حجم فایل 5MB $allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; $file = $_FILES['image']; // بررسی نوع فایل if (!in_array($file['type'], $allowedTypes)) { return 'فرمت فایل مجاز نیست.'; } // بررسی اندازه فایل if ($file['size'] > $maxFileSize) { return 'حجم فایل بیش از حد مجاز است.'; } // ساخت نام تصادفی برای فایل $fileName = uniqid('img_') . '.' . pathinfo($file['name'], PATHINFO_EXTENSION); $uploadPath = $uploadDir . $fileName; // انتقال فایل به پوشه مقصد if (move_uploaded_file($file['tmp_name'], $uploadPath)) { return 'فایل با موفقیت آپلود شد!'; } else { return 'خطا در آپلود فایل!'; } } // اگر فایل آپلود نشد، فرم را باز میگرداند return null; } } 3. فایل tmpl/default.php: در اینجا فرم HTML و کد AJAX را قرار میدهیم. این کد مشابه همان کدی است که قبلاً برای آپلود تصویر طراحی کرده بودیم، اما در قالب ماژول جوملا. <?php // دسترسی مستقیم به فایل ممنوع است defined('_JEXEC') or die; ?> <div class="container mt-5"> <h2 class="text-center mb-4">فرم آپلود تصویر</h2> <!-- نمایش پیغام آپلود --> <?php if ($uploadForm): ?> <div class="alert alert-info"><?php echo $uploadForm; ?></div> <?php endif; ?> <!-- فرم آپلود --> <form id="uploadForm" enctype="multipart/form-data" method="POST"> <div class="mb-3"> <label for="name" class="form-label">نام و نام خانوادگی:</label> <input type="text" class="form-control" id="name" name="name" required> </div> <div class="mb-3"> <label for="image" class="form-label">انتخاب تصویر:</label> <input type="file" class="form-control" id="image" name="image" accept="image/*" required> </div> <button type="submit" class="btn btn-primary">ارسال</button> </form> <!-- نمایش پروگرس بار --> <div id="progressWrapper" style="display: none;"> <p>در حال آپلود: <span id="progressText">0%</span></p> <div id="progressBar" class="progress"> <div id="progress" class="progress-bar" role="progressbar" style="width: 0;"></div> </div> </div> </div> <!-- اسکریپتهای جاوااسکریپت --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { $("#uploadForm").submit(function(event) { event.preventDefault(); // نمایش پروگرس بار $("#progressWrapper").show(); var formData = new FormData(this); $.ajax({ url: "<?php echo JURI::root() . 'modules/mod_imageupload/helper.php'; ?>", // مسیر پردازش فایل type: "POST", data: formData, contentType: false, processData: false, xhr: function() { var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", function(e) { if (e.lengthComputable) { var percent = (e.loaded / e.total) * 100; $("#progress").width(percent + "%"); $("#progressText").text(Math.round(percent) + "%"); } }); return xhr; }, success: function(response) { alert("آپلود با موفقیت انجام شد!"); console.log(response); $("#progressWrapper").hide(); }, error: function(xhr, status, error) { alert("خطا در آپلود فایل!"); $("#progressWrapper").hide(); } }); }); }); </script> 4. فایل mod_imageupload.xml: این فایل، فایل نصب و پیکربندی ماژول است که برای نصب ماژول در جوملا استفاده میشود. <?xml version="1.0" encoding="utf-8"?> <extension type="module" version="4.0" method="upgrade"> <name>mod_imageupload</name> <author>نام شما</author> <creationDate>2024-12-28</creationDate> <copyright>کپیرایت</copyright> <license>GPLv2 or later</license> <version>1.0.0</version> <description>ماژول آپلود تصویر</description> <files> <file plugin="mod_imageupload">mod_imageupload.php</file> <file>helper.php</file> <folder>tmpl</folder> </files> <languages> <language tag="en-GB">language/en-GB/en-GB.mod_imageupload.ini</language> <language tag="fa-IR">language/fa-IR/fa-IR.mod_imageupload.ini</language> </languages> </extension> 5. نصب و استفاده از ماژول در جوملا ماژول را با استفاده از فایل XML در بخش Extension Manager در جوملا نصب کنید. پس از نصب، ماژول را از بخش Module Manager فعال کرده و به یک موقعیت (Position) مناسب در قالب جوملا خود متصل کنید. توضیحات: این ماژول فرم آپلود را در هر موقعیتی که به آن وصل شود نمایش میدهد. فایلها در مسیر images/uploads/ ذخیره میشوند. شما میتوانید این مسیر را متناسب با نیاز خود تغییر دهید. برای حفظ امنیت، حتماً بررسیهایی مانند محدودیت نوع فایل و اندازه فایلها انجام میدهیم. این مراحل به شما کمک میکند که یک ماژول ساده برای آپلود تصویر در جوملا ۵ ایجاد کنید.
ادامه مطلبیکشنبه, 08 دی 1403
آموزش
طراحی فرم اپلود تصاویر با استفاده از اجاکس بوت استراپ و php
فرم آپلود تصویر را با استفاده از فریمورک بوتاسترپ (Bootstrap) طراحی میکنیم. بوتاسترپ به ما این امکان را میدهد که به راحتی طراحی زیبایی ایجاد کنیم بدون نیاز به نوشتن CSS زیاد. 1. کد HTML با بوتاسترپ: ابتدا کد HTML فرم را با استفاده از بوتاسترپ تنظیم میکنیم. برای اینکه از ویژگیهای بوتاسترپ استفاده کنیم، باید فایلهای CSS و JS بوتاسترپ را در صفحه وارد کنیم. <!DOCTYPE html> <html lang="fa"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>فرم آپلود تصویر</title> <!-- لینک به بوتاسترپ 5 --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"> <style> /* پروگرس بار */ #progressWrapper { display: none; margin-top: 20px; } #progressBar { width: 100%; height: 20px; background-color: #f3f3f3; border-radius: 5px; } #progress { height: 100%; width: 0; background-color: #28a745; border-radius: 5px; } </style> </head> <body> <div class="container mt-5"> <h2 class="text-center mb-4">فرم آپلود تصویر</h2> <form id="uploadForm" enctype="multipart/form-data"> <div class="mb-3"> <label for="name" class="form-label">نام و نام خانوادگی:</label> <input type="text" class="form-control" id="name" name="name" required> </div> <div class="mb-3"> <label for="image" class="form-label">انتخاب تصویر:</label> <input type="file" class="form-control" id="image" name="image" accept="image/*" required> </div> <button type="submit" class="btn btn-primary">ارسال</button> </form> <!-- نمایش پروگرس بار --> <div id="progressWrapper"> <p>در حال آپلود: <span id="progressText">0%</span></p> <div id="progressBar"> <div id="progress"></div> </div> </div> </div> <!-- اسکریپتهای جاوااسکریپت --> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"></script> <script src="/script.js"></script> </body> </html> 2. کد جاوااسکریپت (AJAX) در این بخش همانطور که قبلاً ذکر شد، از FormData و XMLHttpRequest استفاده میکنیم تا فایل آپلود شده را به سرور ارسال کنیم و پروگرس بار را به نمایش درآوریم. $(document).ready(function() { $("#uploadForm").submit(function(event) { event.preventDefault(); // نمایش پروگرس بار $("#progressWrapper").show(); var formData = new FormData(this); $.ajax({ url: "upload.php", // فایل PHP برای پردازش type: "POST", data: formData, contentType: false, processData: false, xhr: function() { var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", function(e) { if (e.lengthComputable) { var percent = (e.loaded / e.total) * 100; $("#progress").width(percent + "%"); $("#progressText").text(Math.round(percent) + "%"); } }); return xhr; }, success: function(response) { alert("آپلود با موفقیت انجام شد!"); console.log(response); $("#progressWrapper").hide(); }, error: function(xhr, status, error) { alert("خطا در آپلود فایل!"); $("#progressWrapper").hide(); } }); }); }); 3. کد PHP برای پردازش آپلود کد PHP برای پردازش فایل آپلودی به شکل مشابهی خواهد بود که قبلاً ذکر شد: <?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $uploadDir = 'uploads/'; // مسیر پوشه آپلودها $maxFileSize = 5 * 1024 * 1024; // حداکثر حجم فایل 5MB $allowedTypes = ['image/jpeg', 'image/png', 'image/gif']; // انواع فایل مجاز $name = $_POST['name']; // گرفتن نام و نام خانوادگی $file = $_FILES['image']; // بررسی نوع فایل if (!in_array($file['type'], $allowedTypes)) { echo 'فرمت فایل مجاز نیست.'; exit; } // بررسی اندازه فایل if ($file['size'] > $maxFileSize) { echo 'حجم فایل بیش از حد مجاز است.'; exit; } // ساخت نام تصادفی برای فایل $fileName = uniqid('img_') . '.' . pathinfo($file['name'], PATHINFO_EXTENSION); // مسیر نهایی فایل $uploadPath = $uploadDir . $fileName; // انتقال فایل به پوشه مقصد if (move_uploaded_file($file['tmp_name'], $uploadPath)) { echo 'فایل با موفقیت آپلود شد!'; } else { echo 'خطا در آپلود فایل!'; } } else { echo 'درخواست غیر معتبر'; } ?> توضیحات: بوتاسترپ: این فریمورک به شما کمک میکند تا بدون نوشتن CSS زیاد، فرم خود را به شکلی زیبا طراحی کنید. در اینجا از کلاسهای بوتاسترپ برای استایلدهی به فرم و دکمهها استفاده شده است. پروگرس بار: به محض اینکه آپلود شروع میشود، یک پروگرس بار به نمایش درمیآید که درصد آپلود فایل را نشان میدهد. AJAX: فرم به صورت AJAX ارسال میشود و صفحه رفرش نمیشود. PHP: فایلها در سرور ذخیره میشوند و انواع فایل و حجم آنها محدود به تنظیمات مشخص شدهاند. این روش ساده و امن برای ایجاد فرم آپلود تصویر با استفاده از بوتاسترپ، AJAX و PHP است.
ادامه مطلبپنجشنبه, 13 آذر 1403
آموزش برنامه نویسی جوملا
یک کامپوننت جوملا با استفاده از PHP و MySQL بسازید.
کامپوننتهای جوملا معمولاً شامل فایلها و ساختار خاصی هستند که باید رعایت شوند. در اینجا یک راهنمای کلی برای ساخت یک کامپوننت ساده جوملا با استفاده از PHP و MySQL آورده شده است. مراحل ساخت کامپوننت جوملا: ساخت پوشه کامپوننت: کامپوننتهای جوملا در پوشه components قرار میگیرند. پوشه کامپوننت خود را در مسیر components/com_yourcomponent ایجاد کنید. ساخت فایل XML: این فایل تنظیمات و متاداده کامپوننت را تعریف میکند. در این فایل اطلاعاتی مانند نام کامپوننت، نسخه، فایلهای مورد نیاز و دسترسیها قرار میگیرد. فایل XML باید با نام yourcomponent.xml باشد و در پوشه اصلی کامپوننت قرار گیرد. نمونه فایل yourcomponent.xml: <extension type="component" version="3.9" client="site"> <name>Your Component</name> <author>Your Name</author> <description>Describe your component here</description> <files> <folder>models</folder> <folder>views</folder> <folder>controllers</folder> <file type="administration" name="yourcomponent.php">yourcomponent.php</file> <file name="controller.php">controller.php</file> <file name="helper.php">helper.php</file> <file name="view.html.php">view.html.php</file> </files> <administration> <menu>yourcomponent</menu> </administration> </extension> ساخت فایلهای PHP اصلی: شما به حداقل ۴ فایل برای کامپوننت نیاز دارید: yourcomponent.php: این فایل اصلی است که برای بارگذاری کامپوننت استفاده میشود. controller.php: برای کنترل عملیات مربوط به کامپوننت. helper.php: برای نگهداری توابع کمکی (مثلاً اتصال به دیتابیس). view.html.php: برای نمایش نتایج یا دادهها. فایلهای PHP و توضیحات: 1. yourcomponent.php (این فایل برای بارگذاری کامپوننت استفاده میشود): <?php defined('_JEXEC') or die('Restricted access'); // Load the controller $controller = JControllerLegacy::getInstance('YourComponent'); $controller->execute(JRequest::getCmd('task')); $controller->redirect(); 2. controller.php: <?php defined('_JEXEC') or die; class YourComponentController extends JControllerLegacy { public function display($cachable = false, $urlparams = false) { parent::display($cachable, $urlparams); } public function addItem() { // Connect to the database and insert an item $model = $this->getModel('Item'); $model->addItem(); $this->setRedirect(JRoute::_('index.php?option=com_yourcomponent', false)); } } 3. helper.php (برای اتصال به دیتابیس و انجام عملیات): <?php defined('_JEXEC') or die; class YourComponentHelper { public static function addItemToDatabase($data) { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->insert($db->quoteName('#__yourcomponent_items')) ->columns($db->quoteName(array('name', 'description'))) ->values($db->quote($data['name']) . ',' . $db->quote($data['description'])); $db->setQuery($query); $db->execute(); } } 4. view.html.php (برای نمایش دادهها): <?php defined('_JEXEC') or die; class YourComponentViewYourComponent extends JViewLegacy { public function display($tpl = null) { // Get data from model $model = $this->getModel(); $items = $model->getItems(); // Assign data to the view $this->assignRef('items', $items); parent::display($tpl); } } 5. model.php (برای دریافت دادهها از دیتابیس): <?php defined('_JEXEC') or die; class YourComponentModelYourComponent extends JModelLegacy { public function getItems() { $db = JFactory::getDbo(); $query = $db->getQuery(true) ->select('*') ->from($db->quoteName('#__yourcomponent_items')); $db->setQuery($query); return $db->loadObjectList(); } } 6. قابلیت نصب و استفاده از کامپوننت: بعد از آمادهسازی فایلهای کامپوننت، میتوانید آن را به صورت یک بسته ZIP فشرده کنید و در بخش مدیریت جوملا (Install Extension) نصب کنید. نکات و پیشنهادات: امنیت: حتماً از توابع آماده جوملا (مثل JFactory::getDbo() برای دسترسی به دیتابیس و JRequest::getVar() برای دریافت ورودیها) استفاده کنید تا از حملات SQL Injection و Cross-Site Scripting (XSS) جلوگیری شود. جداسازی کدها: بهتر است مدل، ویو و کنترلر را به صورت جداگانه ایجاد کنید تا کدهای شما تمیزتر و قابل نگهداریتر باشند. گزارش خطا: برای اشکالزدایی و گزارش خطاها از قابلیتهای گزارشگیری جوملا استفاده کنید.
ادامه مطلبپنجشنبه, 13 آذر 1403
آموزش برنامه نویسی وردپرس
برنامه نویسی و طراحی یک پلاگین چت با هوش مصنوعی در وردپرس
ما به یک پلاگین ساده نیاز داریم که پیامها را از کاربران دریافت کرده و با استفاده از ChatGPT API (یا مدل هوش مصنوعی دیگری) پاسخهای مربوطه را ارسال کند و این پیامها را در پایگاه داده ذخیره نماید. به علاوه، در تنظیمات پلاگین، باید فضایی برای وارد کردن API Key برای ارتباط با OpenAI فراهم کنیم. در ادامه، مراحل گام به گام ایجاد این پلاگین برای وردپرس توضیح داده شده است. گام اول: ساختار پلاگین ساختار دایرکتوری پلاگین وردپرس به شکل زیر خواهد بود: /wp-content/plugins/ /chat-ai/ chat-ai.php /admin/ settings.php /assets/ /js/ script.js /css/ style.css /includes/ /db.php /chat.php گام دوم: ساخت فایل اصلی پلاگین (chat-ai.php) در ابتدا، باید یک فایل اصلی برای پلاگین خود بسازید که وردپرس آن را شناسایی کند. این فایل باید اطلاعات مربوط به پلاگین را داشته باشد و همچنین افزونه را بارگذاری کند. <?php /* Plugin Name: Chat AI Plugin URI: https://example.com/chat-ai Description: پلاگین چت با هوش مصنوعی با استفاده از APIهای GPT-3 یا GPT-4 Version: 1.0 Author: Your Name Author URI: https://example.com License: GPL2 */ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } // بارگذاری فایلهای اسکریپت و استایل function chat_ai_enqueue_scripts() { wp_enqueue_script('chat-ai-js', plugin_dir_url(__FILE__) . 'assets/js/script.js', array('jquery'), null, true); wp_enqueue_style('chat-ai-css', plugin_dir_url(__FILE__) . 'assets/css/style.css'); } add_action('wp_enqueue_scripts', 'chat_ai_enqueue_scripts'); // ایجاد جدول در پایگاه داده هنگام فعالسازی پلاگین function chat_ai_install() { global $wpdb; $table_name = $wpdb->prefix . 'chat_messages'; // بررسی وجود جدول و ایجاد آن if ($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, user_message text NOT NULL, ai_response text NOT NULL, timestamp datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } } register_activation_hook(__FILE__, 'chat_ai_install'); // ایجاد منو برای تنظیمات پلاگین در پنل مدیریت وردپرس function chat_ai_admin_menu() { add_menu_page('Chat AI Settings', 'Chat AI', 'manage_options', 'chat-ai', 'chat_ai_settings_page'); } add_action('admin_menu', 'chat_ai_admin_menu'); // صفحه تنظیمات پلاگین در پنل مدیریت function chat_ai_settings_page() { ?> <div class="wrap"> <h1>تنظیمات Chat AI</h1> <form method="post" action="options.php"> <?php settings_fields('chat_ai_options_group'); do_settings_sections('chat-ai'); ?> <table class="form-table"> <tr valign="top"> <th scope="row">کلید API ChatGPT</th> <td><input type="text" name="chat_ai_api_key" value="<?php echo esc_attr(get_option('chat_ai_api_key')); ?>" /></td> </tr> </table> <?php submit_button(); ?> </form> </div> <?php } // ثبت تنظیمات پلاگین function chat_ai_register_settings() { register_setting('chat_ai_options_group', 'chat_ai_api_key'); } add_action('admin_init', 'chat_ai_register_settings'); گام سوم: ایجاد فایلهای جاوااسکریپت و استایل در پوشه /assets/js/، یک فایل جاوااسکریپت به نام script.js بسازید که مسئول ارسال پیامها به سرور و دریافت پاسخ باشد. // assets/js/script.js jQuery(document).ready(function($) { $('#chat-send-btn').click(function() { var userMessage = $('#user-message').val(); if (userMessage.trim() === "") return; // نمایش پیام کاربر $('#chat-box').append('<div><strong>شما:</strong> ' + userMessage + '</div>'); $('#user-message').val(''); // پاک کردن ورودی // ارسال درخواست به سرور $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'chat_ai_send_message', user_message: userMessage }, success: function(response) { // نمایش پاسخ هوش مصنوعی var aiResponse = response.ai_response; $('#chat-box').append('<div><strong>هوش مصنوعی:</strong> ' + aiResponse + '</div>'); $('#chat-box').scrollTop($('#chat-box')[0].scrollHeight); } }); }); }); در پوشه /assets/css/، یک فایل CSS به نام style.css برای طراحی ساده چت ایجاد کنید. /* assets/css/style.css */ #chat-box { width: 100%; height: 300px; border: 1px solid #ddd; padding: 10px; overflow-y: scroll; } #user-message { width: 80%; padding: 10px; } #chat-send-btn { padding: 10px; } گام چهارم: مدیریت درخواستها و ذخیره پیامها در پایگاه داده برای ارسال و ذخیره پیامها، نیاز داریم که یک اکشن AJAX تعریف کنیم. در فایل اصلی پلاگین (chat-ai.php)، این کد را اضافه کنید: // مدیریت ارسال پیام و ذخیره آن در پایگاه داده function chat_ai_send_message() { global $wpdb; // دریافت پیام از کاربر $user_message = sanitize_text_field($_POST['user_message']); // دریافت API key از تنظیمات پلاگین $api_key = get_option('chat_ai_api_key'); if (empty($api_key)) { wp_send_json_error(array('ai_response' => 'کلید API معتبر نیست.')); } // درخواست به API ChatGPT (OpenAI) $ai_response = chat_ai_get_ai_response($user_message, $api_key); // ذخیره پیام و پاسخ در پایگاه داده $table_name = $wpdb->prefix . 'chat_messages'; $wpdb->insert($table_name, array( 'user_message' => $user_message, 'ai_response' => $ai_response, )); // ارسال پاسخ به فرانتاند wp_send_json_success(array('ai_response' => $ai_response)); } add_action('wp_ajax_chat_ai_send_message', 'chat_ai_send_message'); // ارسال درخواست به ChatGPT API function chat_ai_get_ai_response($message, $api_key) { $url = 'https://api.openai.com/v1/completions'; $data = array( 'model' => 'gpt-4', 'prompt' => $message, 'max_tokens' => 150, 'temperature' => 0.7 ); $args = array( 'body' => json_encode($data), 'headers' => array( 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $api_key ), 'method' => 'POST', 'data_format' => 'body' ); $response = wp_remote_post($url, $args); $body = wp_remote_retrieve_body($response); $result = json_decode($body, true); return $result['choices'][0]['text'] ?? 'پاسخی یافت نشد.'; } گام پنجم: نمایش فرم چت در فرانتاند حالا باید کدی برای نمایش چت در صفحات سایت ایجاد کنیم. این کد باید از طریق شورتکد (shortcode) یا مستقیماً در تم قرار گیرد. برای اضافه کردن شورتکد برای فرم چت: // نمایش فرم چت در صفحات با استفاده از شورتکد function chat_ai_display_chat() { ob_start(); ?> <div id="chat-box"></div> <input type="text" id="user-message" placeholder="پیام خود را وارد کنید..."> <button id="chat-send-btn">ارسال</button> <?php return ob_get_clean(); } add_shortcode('chat_ai', 'chat_ai_display_chat'); گام ششم: نصب پلاگین تمامی فایلهای مربوطه را در پوشه پلاگین chat-ai/ قرار دهید. پوشه پلاگین را به /wp-content/plugins/ منتقل کنید. از بخش پلاگین ها نصب کنید. پلاگین ها در پنل مدیریت وردپرس، پلاگین را فعال کنید. 4. پس از فعالسازی، به صفحه تنظیمات پلاگین بروید و کلید API ChatGPT خود را وارد کنید. 5. از شورتکد [chat_ai] برای نمایش فرم چت در هر صفحه یا پست استفاده کنید. نتیجه نهایی: حالا شما یک پلاگین وردپرس دارید که به شما این امکان را میدهد تا از طریق یک فرم چت با ChatGPT ارتباط برقرار کنید، پیامها را در پایگاه داده ذخیره کنید و همچنین یک بخش تنظیمات برای وارد کردن API Key ایجاد کنید. اگر به مشکلی برخوردید یا سوالی داشتید، خوشحال میشوم کمک کنم!
ادامه مطلبپنجشنبه, 13 آذر 1403
آموزش برنامه نویسی جوملا
مراحل ساخت فایل ZIP قابل نصب در Joomla
می خواهم گامبهگام آموزش بدهم که چطور یک کد را به صورت دستی در یک فایل ZIP فشرده کنید تا بتوانید آن را در Joomla نصب کنید. مراحل ساخت فایل ZIP قابل نصب در Joomla: ایجاد ساختار دایرکتوری: ابتدا باید ساختار پوشهها و فایلهای کامپوننت را مطابق با ساختار زیر بسازید: /com_chat_ai/ /admin/ /controllers/ chat.php /models/ chat.php /views/ /chat/ view.html.php tmpl/ default.php /languages/ en-GB.com_chat_ai.ini /site/ /controllers/ chat.php /models/ chat.php /views/ /chat/ view.html.php tmpl/ default.php /media/ com_chat_ai.xml index.php ایجاد فایلهای PHP و XML: شما باید هر یک از فایلهای PHP و XML که در کد قبلی ذکر شد را در پوشههای مربوطه ایجاد کنید. برای مثال: com_chat_ai.xml: پیکربندی کامپوننت chat.php: فایلهای کنترلر و مدل view.html.php و default.php: فایلهای نمایشی ایجاد فایل زبان (اختیاری): شما میتوانید یک فایل زبان ساده برای جوملا ایجاد کنید. این فایل معمولاً شامل متغیرهای متنی است که در کامپوننت استفاده میشود. فایل en-GB.com_chat_ai.ini میتواند به این صورت باشد: COM_CHAT_AI="Chat AI" COM_CHAT_AI_SEND_MESSAGE="Send Message" ایجاد فایل index.php: در پوشه اصلی com_chat_ai باید یک فایل index.php ایجاد کنید که برای جلوگیری از دسترسی مستقیم به پوشهها مورد استفاده قرار میگیرد. این فایل میتواند بسیار ساده باشد و فقط شامل کد زیر باشد: <?php // No direct access defined('_JEXEC') or die; فشردهسازی پوشه: پس از ایجاد تمامی فایلها و ساختار پوشهها، حالا باید پوشه com_chat_ai را به یک فایل ZIP فشرده کنید. ابتدا پوشه com_chat_ai را انتخاب کنید. روی آن راستکلیک کرده و گزینه Send to > Compressed (zipped) folder را انتخاب کنید. یک فایل ZIP ایجاد میشود که میتوانید آن را در بخش مدیریت افزونهها در Joomla نصب کنید. نصب در Joomla: به مدیریت افزونهها بروید. گزینه نصب را انتخاب کنید. فایل ZIP که ساختهاید را بارگذاری کنید. پس از نصب موفق، کامپوننت باید در منوی مدیریت جوملا در دسترس باشد. جمعبندی: با انجام مراحل بالا، میتوانید کامپوننت خود را در Joomla به صورت یک فایل ZIP ایجاد کرده و آن را نصب کنید. اگر همه چیز درست پیش برود، شما یک کامپوننت چت با هوش مصنوعی در جوملا خواهید داشت که میتوانید آن را از طریق پنل کاربری استفاده کنید!
ادامه مطلبپنجشنبه, 13 آذر 1403
آموزش برنامه نویسی جوملا
ساخت کامپوننت چت با هوش مصنوعی برای جوملا ۵
ساخت یک کامپوننت چت با هوش مصنوعی برای جوملا 5 (Joomla 5) میتواند به صورت مراحل مختلف انجام شود. در اینجا به طور کلی روند ساخت این نوع کامپوننت توضیح داده میشود. در نظر داشته باشید که جوملا یک CMS (سیستم مدیریت محتوای) متن باز است و به راحتی میتوان آن را برای افزودن قابلیتهای مختلف گسترش داد. مراحل ساخت کامپوننت چت با هوش مصنوعی برای جوملا 5 1. بررسی الزامات پروژه هوش مصنوعی: میتوانید از سرویسهایی مثل OpenAI (GPT-3 یا GPT-4)، Dialogflow، IBM Watson یا هر API هوش مصنوعی دیگر برای پردازش دادهها استفاده کنید. پلتفرم چت: شما باید یک سیستم چت با رابط کاربری ساده برای تعامل با کاربران داشته باشید. اینترنت و اتصال API: برای ارتباط با مدل هوش مصنوعی، به اینترنت و یک اتصال API نیاز دارید. 2. ایجاد یک کامپوننت جوملا ابتدا باید یک کامپوننت برای جوملا ایجاد کنید که کاربر بتواند با آن تعامل داشته باشد. ساخت کامپوننت در جوملا نیاز به دانش PHP و نحوه تعامل با API دارد. الف. ایجاد ساختار کامپوننت: برای ساخت یک کامپوننت در جوملا، از ساختار زیر استفاده کنید: components/com_yourchat/ admin/ - قسمت مدیریت کامپوننت site/ - قسمت عمومی و نمایش چت models/, views/, controllers/ - معماری MVC جوملا ب. فایلهای اصلی: com_yourchat.php: فایل اصلی کامپوننت که در آن ساختار کلی کامپوننت قرار میگیرد. yourchat.php: این فایل برای نمایش چت استفاده میشود. controller.php: این فایل برای مدیریت درخواستها از کاربر و ارسال آنها به API هوش مصنوعی است. 3. ساخت رابط چت در قسمت Frontend (بخش سایت) در این بخش، شما باید یک چت UI (رابط کاربری) برای کاربران طراحی کنید که به راحتی با آن تعامل داشته باشند. الف. استفاده از HTML و JavaScript برای چت: در بخش views کامپوننت، یک فایل HTML برای نمایش چت ایجاد کنید: <div id="chat-box"> <div id="chat-window"></div> <input type="text" id="chat-input" placeholder="پیام خود را وارد کنید..." /> <button id="send-btn">ارسال</button> </div> <script> document.getElementById('send-btn').addEventListener('click', function() { const message = document.getElementById('chat-input').value; if (message) { sendMessage(message); } }); function sendMessage(message) { // ارسال پیام به سرور (API جوملا) fetch('/index.php?option=com_yourchat&task=chat.sendMessage', { method: 'POST', body: JSON.stringify({ message: message }), headers: { 'Content-Type': 'application/json' } }) .then(response => response.json()) .then(data => { document.getElementById('chat-window').innerHTML += `<div>${data.response}</div>`; document.getElementById('chat-input').value = ''; }); } </script> 4. اتصال به API هوش مصنوعی در قسمت مدیریت کامپوننت، شما باید به یک سرویس هوش مصنوعی متصل شوید. برای مثال، اگر از OpenAI استفاده میکنید، میتوانید از کد زیر استفاده کنید: الف. ارسال درخواست به OpenAI: public function sendMessageToAI($message) { $api_key = 'your_openai_api_key'; $url = 'https://api.openai.com/v1/completions'; $data = [ 'model' => 'gpt-4', // یا مدل دیگری که استفاده میکنید 'messages' => [['role' => 'user', 'content' => $message]], 'max_tokens' => 150, ]; $options = [ 'http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json\r\n" . "Authorization: Bearer $api_key\r\n", 'content' => json_encode($data), ], ]; $context = stream_context_create($options); $response = file_get_contents($url, false, $context); return json_decode($response, true); } ب. پردازش درخواست در کامپوننت جوملا: این متد را در کنترلر کامپوننت جوملا قرار دهید تا پیامهای کاربران را دریافت و به OpenAI ارسال کند. پس از دریافت پاسخ، آن را به کاربر نشان دهید. 5. مدیریت پیامها و ذخیرهسازی در دیتابیس (اختیاری) شما میتوانید پیامهای چت را در دیتابیس جوملا ذخیره کنید تا بتوانید آنها را بعداً مرور کنید. برای این کار باید یک مدل جدید برای ذخیرهسازی پیامها در دیتابیس جوملا بسازید. 6. امنیت از توکنهای امنیتی برای جلوگیری از حملات CSRF استفاده کنید. بررسی کنید که دادههای ورودی از کاربران به طور مناسب فیلتر شوند. 7. آزمایش و بهینهسازی بعد از پیادهسازی، باید کامپوننت خود را به خوبی آزمایش کنید تا مطمئن شوید که چت به درستی با API هوش مصنوعی ارتباط برقرار میکند و عملکرد صحیحی دارد. 8. نصب و راهاندازی در جوملا برای نصب این کامپوننت، باید یک فایل XML برای نصب جوملا ایجاد کنید که شامل تنظیمات و اطلاعات کامپوننت باشد. نتیجهگیری این یک راهنمای کلی برای ساخت یک کامپوننت چت با هوش مصنوعی برای جوملا 5 است. این فرآیند شامل طراحی رابط کاربری، ارتباط با API هوش مصنوعی، پردازش دادهها و پیادهسازی امنیت است.
ادامه مطلبپنجشنبه, 13 آذر 1403
آموزش
استفاده از هوش مصنوعی در چت AJAX و PHP با ذخیرهسازی دادهها در پایگاه داده MySQL
سلام! برای استفاده از هوش مصنوعی در چت با استفاده از AJAX و PHP و ذخیرهسازی دادهها در پایگاه داده MySQL، مراحل زیر را میتوانید دنبال کنید: مراحل کلی: ساخت پایگاه داده MySQL: ابتدا باید یک پایگاه داده MySQL برای ذخیرهسازی دادههای چت ایجاد کنید. این دادهها میتوانند شامل پیامها، تاریخ و زمان ارسال، و وضعیت پیامها (خوانده شده یا نشده) باشند. ایجاد API برای ارتباط با PHP و MySQL: برای ارتباط بین چت (که به طور معمول از AJAX استفاده میکند) و پایگاه داده، باید یک API در PHP طراحی کنید که دادهها را از پایگاه داده خوانده و در صورت لزوم، پیامها را ذخیره کند. پیادهسازی هوش مصنوعی در چت: میتوانید از سرویسهای هوش مصنوعی مانند OpenAI، GPT-3 یا GPT-4، یا حتی مدلهای خاص خودتان استفاده کنید تا چت را هوشمندتر کنید. این مدلها میتوانند پاسخهای خودکار به پیامهای کاربر بدهند. پیادهسازی AJAX برای ارسال و دریافت پیامها: از AJAX برای ارسال و دریافت دادهها به صورت غیر همزمان استفاده میکنید. به این ترتیب، صفحه چت بدون نیاز به بارگذاری مجدد به روز میشود. 1. ساخت پایگاه داده MySQL ابتدا یک پایگاه داده و جدول برای ذخیره پیامها بسازید: CREATE DATABASE chat_db; USE chat_db; CREATE TABLE messages ( id INT AUTO_INCREMENT PRIMARY KEY, user_message TEXT, bot_response TEXT, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 2. کدنویسی PHP برای ذخیره و خواندن پیامها ایجاد یک فایل PHP برای ذخیره پیامهای کاربر و پاسخهای هوش مصنوعی: save_message.php <?php $servername = "localhost"; $username = "root"; // نام کاربری MySQL $password = ""; // رمز عبور MySQL $dbname = "chat_db"; // ایجاد اتصال به دیتابیس $conn = new mysqli($servername, $username, $password, $dbname); // بررسی اتصال if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $user_message = $_POST['user_message']; $bot_response = $_POST['bot_response']; // ذخیره پیامها در پایگاه داده $sql = "INSERT INTO messages (user_message, bot_response) VALUES ('$user_message', '$bot_response')"; if ($conn->query($sql) === TRUE) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?> get_messages.php <?php $servername = "localhost"; $username = "root"; // نام کاربری MySQL $password = ""; // رمز عبور MySQL $dbname = "chat_db"; // ایجاد اتصال به دیتابیس $conn = new mysqli($servername, $username, $password, $dbname); // بررسی اتصال if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // خواندن پیامها از دیتابیس $sql = "SELECT user_message, bot_response FROM messages ORDER BY timestamp ASC"; $result = $conn->query($sql); $messages = []; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $messages[] = $row; } } echo json_encode($messages); $conn->close(); ?> 3. پیادهسازی هوش مصنوعی (مانند OpenAI GPT) برای اینکه بتوانید از GPT-3 یا GPT-4 برای پاسخ به پیامهای کاربران استفاده کنید، باید یک درخواست به API OpenAI ارسال کنید. chat_with_ai.php <?php $api_key = "YOUR_OPENAI_API_KEY"; $api_url = "https://api.openai.com/v1/completions"; $user_message = $_POST['user_message']; $data = [ "model" => "gpt-4", // یا gpt-3.5 برای نسخه قدیمیتر "prompt" => $user_message, "max_tokens" => 150, "temperature" => 0.7 ]; $options = [ 'http' => [ 'header' => "Content-type: application/json\r\n" . "Authorization: Bearer $api_key\r\n", 'method' => 'POST', 'content' => json_encode($data) ] ]; $context = stream_context_create($options); $response = file_get_contents($api_url, false, $context); $response_data = json_decode($response, true); $bot_response = $response_data['choices'][0]['text']; echo $bot_response; ?> 4. پیادهسازی AJAX برای ارسال و دریافت پیامها در نهایت، از AJAX برای ارسال پیامها به سرور و دریافت پاسخ استفاده میکنید. این کار باعث میشود که تجربه کاربری روان و بدون بارگذاری مجدد صفحه باشد. chat.js // ارسال پیام به سرور و دریافت پاسخ از هوش مصنوعی function sendMessage() { const userMessage = document.getElementById("userMessage").value; // ارسال پیام به PHP و ذخیره در دیتابیس $.ajax({ url: "chat_with_ai.php", type: "POST", data: { user_message: userMessage }, success: function(response) { const botResponse = response.trim(); document.getElementById("chatBox").innerHTML += "<p>User: " + userMessage + "</p>"; document.getElementById("chatBox").innerHTML += "<p>Bot: " + botResponse + "</p>"; document.getElementById("userMessage").value = ""; // ذخیره پیامها در دیتابیس $.ajax({ url: "save_message.php", type: "POST", data: { user_message: userMessage, bot_response: botResponse }, success: function() { console.log("Message saved successfully."); } }); } }); } // بارگذاری پیامهای قبلی از دیتابیس function loadMessages() { $.ajax({ url: "get_messages.php", type: "GET", success: function(response) { const messages = JSON.parse(response); messages.forEach(message => { document.getElementById("chatBox").innerHTML += "<p>User: " + message.user_message + "</p>"; document.getElementById("chatBox").innerHTML += "<p>Bot: " + message.bot_response + "</p>"; }); } }); } // بارگذاری پیامها هنگام بارگذاری صفحه window.onload = loadMessages; HTML برای نمایش چت: <!DOCTYPE html> <html lang="fa"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chat AI</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="/chat.js"></script> </head> <body> <div id="chatBox"></div> <input type="text" id="userMessage" placeholder="پیام خود را وارد کنید..."> <button onclick="sendMessage()">ارسال</button> </body> </html> توضیحات: chat_with_ai.php از OpenAI API برای دریافت پاسخ هوش مصنوعی استفاده میکند. save_message.php پیامهای کاربر و پاسخهای هوش مصنوعی را در پایگاه داده MySQL ذخیره میکند. get_messages.php پیامها را از پایگاه داده میخواند و به صورت JSON ارسال میکند. AJAX به شما این امکان را میدهد که بدون بارگذاری مجدد صفحه، پیامها را ارسال و دریافت کنید. این مراحل یک سیستم چت ساده با استفاده از PHP، MySQL و هوش مصنوعی را ایجاد میکند. البته برای استفاده در پروژههای بزرگتر، ممکن است نیاز به بهینهسازی و امنیت بیشتر داشته باشید (مثل استفاده از prepared statements در PHP برای جلوگیری از SQL injection).
ادامه مطلبپنجشنبه, 13 آذر 1403
آموزش
دریافت دادهها از کاربر به صورت JSON و نمایش دوباره آنها به صورت JSON در
برای دریافت دادهها از کاربر به صورت JSON و نمایش دوباره آنها به صورت JSON در PHP، معمولاً از متدهای POST یا GET استفاده میکنیم. در اینجا یک نمونه کد ساده برای دریافت دادهها از کاربر به صورت JSON و سپس نمایش آنها به صورت JSON آوردهام: مراحل: دریافت دادهها به صورت JSON از درخواست POST. پردازش دادهها (در اینجا فقط بازتاب آنها به صورت JSON). ارسال پاسخ به صورت JSON. نمونه کد PHP: <?php // تنظیم هدر برای اعلام نوع داده JSON header('Content-Type: application/json'); // بررسی اینکه درخواست از نوع POST است if ($_SERVER['REQUEST_METHOD'] === 'POST') { // دریافت دادههای خام JSON از بدن درخواست $json_input = file_get_contents('php://input'); // تبدیل دادههای JSON به آرایه یا شیء PHP $data = json_decode($json_input, true); // بررسی اینکه آیا دادههای JSON معتبر هستند if ($data === null) { // اگر JSON نامعتبر بود، ارور برمیگردانیم echo json_encode(["error" => "Invalid JSON data"]); } else { // در اینجا میتوانید دادهها را پردازش کنید (در این مثال، فقط آنها را برمیگردانیم) // ارسال دادهها به صورت JSON به کاربر echo json_encode([ "status" => "success", "received_data" => $data ]); } } else { // اگر درخواست از نوع POST نباشد، ارور میدهیم echo json_encode(["error" => "Only POST requests are allowed"]); } ?> توضیحات کد: خط اول: هدر Content-Type را برای اعلام نوع پاسخ به JSON تنظیم میکنیم. خط پنجم: بررسی میکنیم که آیا درخواست از نوع POST است. خط هشتم: دادههای JSON را از بدنه درخواست دریافت میکنیم. خط یازدهم: دادههای JSON را با استفاده از json_decode به آرایه PHP تبدیل میکنیم. خط سیزدهم: اگر JSON نامعتبر باشد، پیام خطا ارسال میکنیم. خط بیست و یکم: دادههای دریافت شده را به صورت JSON مجدد به کاربر ارسال میکنیم. ارسال درخواست از طریق POST به این API: برای ارسال درخواست از نوع POST با JSON، میتوانید از ابزارهایی مانند Postman یا کد زیر در جاوااسکریپت استفاده کنید: fetch('URL_OF_YOUR_PHP_FILE.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John Doe', age: 30 }) }) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); مثال خروجی: اگر دادههای JSON به صورت زیر ارسال شوند: { "name": "John Doe", "age": 30 } پاسخ دریافتی به صورت زیر خواهد بود: { "status": "success", "received_data": { "name": "John Doe", "age": 30 } } این کد میتواند به شما کمک کند تا دادهها را از کاربر دریافت کرده و به صورت JSON پاسخ دهید. اگر سوال یا مشکل خاصی دارید، خوشحال میشوم که بیشتر کمک کنم!
ادامه مطلبیکشنبه, 11 آذر 1402
آموزش طراحی قالب جوملا
افزودن ورژن به فایل های سی اس اس و جی اس در جوملا
برای افزودن ورژن به نسخه های جی اس و سی اس اس در جوملا از روش زیر استفاده کنید $document->addStyleSheet("...demo.css", array('version'=>'auto')); // leads to something like // <link href="/...demo.css?37e343bbb4073e0dfe5b1eb40b6" rel="stylesheet">
ادامه مطلبیکشنبه, 28 مرداد 1402
آموزش برنامه نویسی جوملا
افزودن دسته بندی در جوملا با php
گاهی توی یه کامپوننت نیاز هست تا شما دسته بندی بسازید ٬ روش زیر یکی از استاندارد ترین حالت های ایجاد دسته بندی در جوملاست: $category_data['id'] = 0; $category_data['parent_id'] = 0; $category_data['title'] = "my title" ; $category_data['alias'] = "my alias"; $category_data['extension'] = 'com_content'; $category_data['published'] = 1; $category_data['language'] = '*'; $category_data['params'] = array('category_layout' => '','image' => ''); $category_data['metadata'] = array('author' => '','robots' => ''); $newapp = JFactory::getApplication(); $mvcFactory = $newapp->bootComponent('com_categories')->getMVCFactory(); $catModel = $mvcFactory->createModel('Category', 'Administrator', ['ignore_request' => true]); $category_id = $catModel->save($category_data); if (!$category_id ){ throw new Exception('Can't create Category...'); }
ادامه مطلبسه شنبه, 21 ارديبهشت 1402
اسلاید
ولادت حضرت فاطمه معصومه علیها سلام و روز دختر
با تبریک فرا رسیدن ولادت حضرت فاطمه معصومه علیها سلام و روز دختر به همه دختران سرزمینم ، تصمیم داریم به این مناسب 10 درصد تخفیف برای همه محصولات اعمال کنیم!
ادامه مطلبچهارشنبه, 06 ارديبهشت 1402
راهنما
چگونه یک موقعیت ماژول را با php در جوملا صدا بزنیم؟
برای ایجاد یک موقعیت ماژول با کد های php می توانید از روش زیر استفاده کنید. < ?php jimport('joomla.application.module.helper'); $modules = JModuleHelper::getModules('POSITIONHERE'); foreach ($modules as $module) { echo JModuleHelper::renderModule($module); } ? >
ادامه مطلبجمعه, 28 فروردين 1402
اسلاید
عید سعید فطر بر همه پاکان و صالحان و روزه داران عزیز مبارک باد
پیشاپیش عید فطر و حلول ماه شوال را خدمت شما عزیزان تبریک می گوییم و از خداوند برای همه شما قبولی طاعات و عبادات را از خداوند متعال آرزومندیم. به رسم عادت دیرینه برای شاد باش این مراسم گرامی به مدت 10 روز تخفیف 40 درصد برای محصولات فروشگاه اعمال کردیم. با تشکر مدیر فروشگاه دیما
ادامه مطلبشنبه, 28 اسفند 1401
اسلاید
نوروز باستانی بر همه ایرانیان پاکزاد مبارک باد
در کمال سرور و شادمانی آغاز سالی پر از نیکی و پایداری شادی ها برای شما ایرانیان نیک سرشت را آرزو مندیم. امیدواریم سال نو برای همه ایرانیان سالی به از دور غم باشد. برای شما دوستان عزیز عیدانه ای با 50 درصد کاهش هزینه در نظر گرفته ایم . امید است باعث شادی شما باشیم!
ادامه مطلبجمعه, 08 اسفند 1401
آموزش برنامه نویسی جوملا
افزودن متاتگ های دلخواه OG TAG برای جوملا
برای افزودن تگ دلخواه OG میتوانید از کد های زیر در قالب یا در کامپوننت های اختصاصی استفاده کنید. $doc = JFactory::getDocument(); $images = json_decode($this->item->images); $fbimage = JURI::base() . $images->image_fulltext; $doc->addCustomTag( '<meta property="og:image" content="' . $fbimage . '">' ); به جای $images->image_fulltext; کد تصویر خودتون رو باید صدا بزنید.
ادامه مطلبیکشنبه, 14 آبان 1401
اخبار
کند شدن سایت های وردپرسی به خاطر فیلترینگ
اگر شما هم سایت وردپرسی با المنتور یا هر افزونه دیگری داشته باشید احتمالا این روزها بسیار کند شده و حتی باز نمیشه. متاسفانه بخاطر فیلترینگ خیلی از سایت های خارجی که بر روی سرور های مشترک با پلتفرم های فیلتر شده هاست شده اند در دسترس نیستند. به همین دلیل به مشکل بر خورده اید حالا راه حل چیست؟ متاسفانه برای المنتور و سایر افزونه ها راه حلی نیست و نمی توان کار خاصی کرد اما اگر از این مشکل به ستوه آمده اید می توانید از قالب های ما استفاده کنید ما قالب هایی را تولید می کنیم که هیچ افزونه خارجی تجاری بر روی آنها نصب نشده است به همین دلیل با فیلترینگ به مشکل نمی خورد. برای چک لایسنس هم فقط اولین بار که نصب انجام میشود بررسی می کنیم و با هر بار باز کردن سایت لایسنس را بررسی نمی کنیم. حالا اگر مشکل دارید می شود برای شما قالب را باز سازی کرد.
ادامه مطلبپنجشنبه, 03 آبان 1401
اسلاید
حمایت از کسب و کارهای آسیب دیده
اگر کسب و کارهای شما به خاطر فیلتر اینستاگرام آسیب دیده ٬ ما از شما حمایت می کنیم.فروشگاه یا معرفی محصولات شما رو با فقط ده درصد هزینه راه اندازی می کنیم.اگر توان مالی ندارید میتوانید با انتخاب قالب های اماده این هزینه را به حداقل ممکن کاهش بدهید.با شماره های ۰۹۱۲۴۱۹۵۰۶۶ یا ۰۹۳۷۴۶۶۱۱۲۷ تماس بگیرید یا پیام بگذارید تا تماس بگیریم.
ادامه مطلبسه شنبه, 07 مهر 1401
آموزش برنامه نویسی جوملا
بدست آوردن گروه کاربری یک کاربر در جوملا
برای بدست آوردن گروه کاربری یک کاربر در جوملا می توانید از کد زیر استفاده کنید: $user = JFactory::getUser(); $groups = $user->get('groups'); foreach ($groups as $group) { echo '<p>Group = ' . $group . '</p>'; }
ادامه مطلبسه شنبه, 07 مهر 1401
آموزش برنامه نویسی جوملا
آموزش ارسال ایمیل در جوملا با استفاده از php در کامپوننت های اختصاصی
برای ارسال ایمیل در جوملا با استفاده از php در کامپوننت های اختصاصی می توانید از کد زیر استفاده کنید. $from = 'admin@somewhere.com'; $fromname = 'BIGSHOT Blog'; $recipient[] = 'john@somewhere.com'; $recipient[] = 'jane@somewhere.com'; $subject = 'Want to learn about BIGSHOT Blog'; $body = '<p>Check us out!</p><p><a href="http://www.somewhere.com" target="_blank">http://www.somewhere.com</a></p>'; $mode = 1; $cc = 'bob@somewhereelse.com'; $bcc[] = 'simon@somewhereelse.com'; $bcc[] = 'nick@somewhereelse.com'; $attachment[] = '/home/my_site/public_html/images/stories/food/coffee.jpg'; $attachment[] = '/home/my_site/public_html/images/stories/food/milk.jpg'; $replyto = 'no_reply@somewhere.com'; $replytoname = 'NO REPLY - BIGSHOT Blog'; JUtility::sendMail($from, $fromname, $recipient, $subject, $body, $mode, $cc, $bcc, $attachment, $replyto, $replytoname);
ادامه مطلبسه شنبه, 07 مهر 1401
آموزش برنامه نویسی جوملا
انتقال به صفحه یا آدرس در جوملا
برای انتقال یک صفحه در جوملا به صفحه ای دیگر یا یک سایت دیگر از کد زیر می توانید استفاده کنید $app = JFactory::getApplication(); $app->enqueueMessage('Redirect to another page was successful', 'success'); $app->redirect(JRoute::_('index.php')); //or $app = JFactory::getApplication(); $app->redirect("'http://google.com'");
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
تشخیص صفحه اول در وردپرس
گاهی برای شما لازم می شود تا کد خاصی را فقط در صفحه خانه وردپرس لود کنید برای تشخیص صفحه اصلی از کد زیر استفاده کنید: if ( is_front_page() ) : get_header( 'front' ); else : get_header(); endif; is_front_page() /* is_front_page() returns true if the user is on the page or page of posts that is set to the front page on Settings->Reading->Your homepage displays. */ is_home() /* is_home() return true when on the posts list page, This is usually the page that shows the latest 10 posts. */ is_home()
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
تشخیص وجود تصویر شاخص کوچک در وردپرس
برای تشخیص وجود تصویر شاخص کوچک در وردپرس از روش زیر استفاده کنید: <?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <img src="/<?php bloginfo('template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" /> <?php } ?>
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
تشخیص مدیر بودن یک کاربر در وردپرس
برای تشخیص مدیر بودن یک کاربر در وردپرس باید از روش زیر استفاده کنید: <?php if(current_user_can('editor')) { ?> <!-- Stuff here for editors --> <?php } ?> <?php if(current_user_can('administrator')) { ?> <!-- Stuff here for administrators --> <?php } ?>
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آورد کلاس html در وردپرس
برای این کار می توانید کد زیر را در هدر سایت بگذارید: <body <?php body_class(); ?>> <!-- This adds the wordpress body classes markup that you can use for CSS configuration -->
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
چگونه فایل functions.php را بشکنیم و سبک تر کنیم در وردپرس
شما می توانید یک پوشه درست کرده و هر بخش از فایل functions.php را درون آن قرار دهید و در فایل functions.php آنها را صدا بزنید: <?php /* * functions.php * */ require_once( __DIR__ . '/includes/null-meta-compare.php'); require_once( __DIR__ . '/includes/older-examples.php'); require_once( __DIR__ . '/includes/wp-admin-menu-classes.php'); require_once( __DIR__ . '/includes/admin-menu-function-examples.php'); // WA: Adding a Taxonomy Filter to Admin List for a Custom Post Type? // http://wordpress.stackexchange.com/questions/578/ require_once( __DIR__ . '/includes/cpt-filtering-in-admin.php'); require_once( __DIR__ . '/includes/category-fields.php'); require_once( __DIR__ . '/includes/post-list-shortcode.php'); require_once( __DIR__ . '/includes/car-type-urls.php'); require_once( __DIR__ . '/includes/buffer-all.php'); require_once( __DIR__ . '/includes/get-page-selector.php'); // http://wordpress.stackexchange.com/questions/907/ require_once( __DIR__ . '/includes/top-5-posts-per-category.php'); // http://wordpress.stackexchange.com/questions/951/ require_once( __DIR__ . '/includes/alternate-category-metabox.php'); // http://lists.automattic.com/pipermail/wp-hackers/2010-August/034384.html require_once( __DIR__ . '/includes/remove-status.php'); // http://wordpress.stackexchange.com/questions/1027/removing-the-your-backup-folder-might-be-visible-to-the-public-message-generate require_once( __DIR__ . '/includes/301-redirects.php');
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
نحوه نمایش مسیر سایت در تم یا قالب به صورت برنامه ریزی شده در وردپرس
برای نمایش مسیر سایت در تم یا قالب به صورت برنامه ریزی شده در وردپرس از روش زیر استفاده کنید: add_filter( 'the_content', function( $content ) { if( function_exists( 'rank_math_get_breadcrumbs' ) ) { $content = rank_math_get_breadcrumbs() . $content; } return $content; });
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن تاریخ امروز در وردپرس
برای بدست آوردن تاریخ امروز در وردپرس از روش زیر استفاده کنید: <?php echo get_the_date( 'l F j, Y' ); ?>
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن نام کاربری یک کاربر در وردپرس
برای بدست آوردن نام کاربری یک کاربر در وردپرس از روش زیر استفاده کنید: $current_user = wp_get_current_user(); echo($current_user->user_login); $current_user_id = get_current_user_id(); $current_user = wp_get_current_user();
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن ادرس اواتار یک کاربر در وردپرس
برای پیدا کردن مسیر تصویر اواتار یک کارب می توانید از کد زیر استفاده کنید: get_avatar_url($user_id);
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست اوردن اطلاعات یک کاربر از روی ایمیل در وردپرس
شما می توانید از روی ایمیل یک کاربر اطلاعات او را بدست آوردید برای این کار می توانید از روش زیر اقدام کنید: global $current_user; get_currentuserinfo(); echo $current_user->user_email; $user_obj = get_user_by('id', 1); $user = get_user_by( 'email', 'user@example.com' ); $userId = $user->ID;
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
بدست آوردن اطلاعات یک کاربر در وردپرس براساس شناسه کاربری
برای بدست آوردن اطلاعات یک کاربر در وردپرس براساس شناسه کاربری از روش زیر می توانید استفاده کنید: <?php $user_id = get_current_user_id(); ?> $current_user = wp_get_current_user(); echo($current_user->user_login); echo get_the_ID(); function get_the_ID() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid $post = get_post(); return ! empty( $post ) ? $post->ID : false; } $user_obj = get_user_by('id', 1); $user = get_user_by( 'email', 'user@example.com' ); $userId = $user->ID;
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
افزودن آدرس پوشه قالب به یک تصویر
برای اینکه یک تصویر در قالب نمایش داده شود باید ادرس پوشه قالب قبل از ادرس تصویر صدا زده شود: // Get template directory example: <img src="/<?php echo get_template_directory_uri(); ?>/images/logo.png" /> // If you use child theme you will have to use another function: <img src="/<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" /> <img src="/<?php echo get_template_directory_uri(); ?>/images/logo.png"> include( get_template_directory_uri() . '/includes/my_file.php' ); add_action('wp_enqueue_scripts', 'wpdocs_scripts_method'); /* * Enqueue a script with the correct path. */ function wpdocs_scripts_method() { wp_enqueue_script( 'custom_script', get_template_directory_uri() . '/js/custom_script.js', array('jquery') ); }
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
وردپرس پیوند ثابت کوتاه را دریافت کنید
برای بدست اوردن لینک کوتاه یک مطلب از دستور های زیر استفاده کنید: // Get post permalink (you can use it inside a wp_query loop) <?php the_permalink(); ?> // or <?php $link = get_the_permalink(); ?> // outside the loop: <?php echo get_permalink( $post->ID ); ?> // Get shortlink (short permalink) <?php echo wp_get_shortlink(); ?>
ادامه مطلبجمعه, 04 مهر 1401
آموزش برنامه نویسی وردپرس
وردپرس آدرس اصلی را دریافت کنید
برای بدست اوردن ادرس اصلی سایت در وردپرس از این کد php استفاده کنید. <?php echo get_site_url(); ?> کاربرد این دستور در صدا زدن لینک هایی است که به صفحه اصلی سایت مربوط می شود مثل لینک بر روی تصویر لوگو
ادامه مطلبجمعه, 04 مهر 1401
کاربری
جشنواره ها و تخفیفات
با عضویت در سایت اولین نفری باشید که از تخفیف های ویژه و مدت دار یا محدود مطلع باشید!
ادامه مطلبجمعه, 04 مهر 1401
کاربری
ثبت نام در سایت
با عضویت در سایت می توانید به خرید های خود دسترسی داشته باشید٫ فایل های خریداری شده را دانلود کنید و به کد های لایسنس خود دسترسی داشته باشید!
ادامه مطلبسه شنبه, 31 شهریور 1401
اسلاید
اپلیکیشن نیتو جوملا
براحتی برای جوملا یا فروشگاه جوملای خود نرم افزار اندروید نیتیو بسازید. با هزینه ای اندک در خدمت شما هستیم ٬ برای اطلاعات بیشتر به joomapp.ir سر بزنید.
ادامه مطلبچهارشنبه, 30 شهریور 1401
راهنما
کد php صدا زدن ماژول در کامپوننت های اختصاصی
برای صدا زدن ماژول در کامپوننت های اختصاصی کافی است کد زیر را صدا بزنید. <?phpjimport('joomla.application.module.helper'); // this is where you want to load your module position $modules = JModuleHelper::getModules('header'); foreach($modules as $module) { echo JModuleHelper::renderModule($module); }?>
ادامه مطلبچهارشنبه, 30 شهریور 1401
راهنما
سفارشی کردن نحوه نمایش ماژول ها
روش countModules را می توان در قالب برای تعیین تعداد ماژول های فعال در یک موقعیت ماژول مورد استفاده قرار داد. این معمولاً برای گنجاندن HTML در اطراف ماژول ها در یک موقعیت خاص استفاده می شود، تنها در صورتی که حداقل یک ماژول برای آن موقعیت فعال باشد. این از تعریف مناطق خالی در خروجی الگو جلوگیری میکند و تکنیکی است که گاهی به آن «ستونهای در حال فروپاشی» میگویند. برای مثال، کد زیر تنها در صورتی شامل ماژول هایی در موقعیت 'user1' می شود که حداقل یک ماژول برای آن موقعیت فعال باشد. <?php if ($this->countModules( 'user1' )) : ?> <div class="user1"> <jdoc:include type="modules" name="user1" style="rounded" /> </div> <?php endif; ?> استفاده اساسی از روش countModules در اینجا توضیح داده شده است روش countModules را می توان برای تعیین تعداد ماژول ها در یک موقعیت ماژول مورد استفاده قرار داد. آرگومان تابع countModules معمولاً فقط نام یک موقعیت ماژول است. این تابع تعداد ماژولهایی را که در حال حاضر برای آن موقعیت ماژول فعال هستند، برمیگرداند. از زمان جوملا! 3.0 همه قالب های رسمی از کد php ساده برای محاسبه تعداد موقعیت های چند ماژول استفاده می کنند. این کد عرض محتوا را محاسبه می کند و در index.php protostar یافت می شود: // تنظیم عرض محتوا if ($this->countModules('position-7') && $this->countModules('position-8')) { $span = "span6"; } elseif ($this->countModules('position-7') && !$this->countModules('position-8')) { $span = "span9"; } elseif (!$this->countModules('position-7') && $this->countModules('position-8')) { $span = "span9"; } دیگر { $span = "span12"; } این کد در قسمت اصلی قالب استفاده می شود و به طور خودکار عرض آن را مرتب می کند. بنابراین اگر کاربر برخی از ماژول ها را در سمت چپ فعال کند، عرض ها به ترتیب span9 و span3 می شوند (span12 عرض کامل است). اگر کاربر هر دو سمت چپ و راست را فعال کند، عرض ها به span3 span6 span3 تبدیل می شوند. و اگر هیچ ماژول، چپ یا راست، فعال نباشد، عرض به span12 (ردیف کامل) تبدیل میشود. حذف ماژول وقتی فعال نیست یا خالی است. یک نیاز رایج هنگام طراحی صفحات وب در جوملا! زمانی که هیچ ماژولی در آن موقعیت فعال نباشد، موقعیت ماژول حذف می شود تا فضا برای سایر عناصر صفحه در دسترس باشد. منطقه حذف شده به عنوان "ستون فرو ریخته" نامیده می شود. این را می توان با استفاده از countModulesتابع به دست آورد. برای مثال، اگر میخواهید user1موقعیت ماژول را فقط در صورتی درج کنید که ماژولهایی در آن موقعیت فعال باشند، میتوانید از این کد استفاده کنید: <?php if ($this->countModules( 'user1' )) : ?> <div class="user1"> <jdoc:include type="modules" name="user1" style="xhtml" /> </div> <?php endif; ?> توجه داشته باشید که <jdoc:include />تگ و اطراف <div>آن تنها در صورتی گنجانده می شوند که countModulesفراخوانی یک مقدار غیر صفر برگرداند ( ifعبارت PHP صفر را نادرست و هر مقدار غیر صفر را درست در نظر می گیرد. گاهی اوقات ممکن است بخواهید یک جفت موقعیت ماژول به تنهایی یا با هم جمع شوند. <?php if ($this->countModules( 'user1 or user2' )) : ?> <div class="user1user2"> <?php if ($this->countModules( 'user1' )) : ?> <jdoc:include type="modules" name="user1" style="xhtml" /> <?php endif; ?> <?php if ($this->countModules( 'user2' )) : ?> <jdoc:include type="modules" name="user2" style="xhtml" /> <?php endif; ?> </div> <?php endif; ?> توجه کنید که چگونه منطقه (که با کلاس CSS " user1user2" استایلبندی شده است) تنها در صورتی خروجی میشود که " user1" یا " user2"، یا هر دو ، حداقل یک ماژول فعال داشته باشند. اگر میخواهید یک تقسیمکننده دو موقعیت ماژول را از هم جدا کند، باید مراقب باشید که فقط در صورتی که هر دو موقعیت ماژول دارای ماژولهای فعال باشند، از تقسیمکننده خروجی بگیرید. مثلا، <?php if ($this->countModules( 'user1 or user2' )) : ?> <div class="user1user2"> <?php if ($this->countModules( 'user1' )) : ?> <jdoc:include type="modules" name="user1" style="xhtml" /> <?php endif; ?> <?php if ($this->countModules( 'user1 and user2' )) : ?> <div class="divider"></div> <?php endif; ?> <?php if ($this->countModules( 'user2' )) : ?> <jdoc:include type="modules" name="user2" style="xhtml" /> <?php endif; ?> </div> <?php endif; ?> ماژول کروم چیست؟ ماژول کروم به طراحان قالب اجازه می دهد تا مقدار مشخصی بر نحوه نمایش خروجی یک ماژول در قالب خود کنترل داشته باشند. اساساً از مقدار کمی HTML از پیش تعریف شده تشکیل شده است که قبل، بعد یا اطراف خروجی هر ماژول درج می شود و سپس می توان با استفاده از CSS استایل دهی کرد. ماژول کروم معمولاً برای ایجاد حاشیه در اطراف ماژول ها، به ویژه با گوشه های گرد استفاده می شود، اما می توان از آن برای خیلی بیشتر از آن استفاده کرد. کروم ماژول با استفاده از ویژگی ' style ' در عبارت فراخوانی ماژول تعیین می شود. به عنوان مثال، عبارت زیر ممکن است در فایل index.php از قالبی که در حال حاضر به عنوان الگوی اصلی اختصاص داده شده است، برای قرار دادن ماژول ها در موقعیت " user1 " و اعمال کروم " سفارشی " ماژول استفاده شود: <jdoc:include type="modules" name="user1" style="custom" /> مشاهده می شود که همان ماژول کروم برای هر ماژول در آن موقعیت اعمال می شود - به عبارت دیگر، اگر می خواهید دو ماژول در یک ستون داشته باشید، اما می خواهید ماژول کروم متفاوتی داشته باشند، باید آنها را راه اندازی کنید. به عنوان دو "موقعیت" متفاوت (به عنوان مثال " user1 " و " user2 "). جوملا استاندارد! بسته 1.5+ شامل شش سبک پیشفرض ماژول کروم است. با این حال، انعطاف پذیری سیستم قالب به این معنی است که شما به این سبک ها محدود نمی شوید - ایجاد سبک های جدید به هر تعداد که می خواهید بسیار آسان است! همچنین ببینید: ماژول استاندارد کروم استفاده از ماژول سفارشی کروم برای تعریف ماژول سفارشی کروم در قالب خود باید فایلی به نام modules.php در دایرکتوری html قالب خود ایجاد کنید. برای مثال، این ممکن است PATH_TO_JOOMLA/templates/TEMPLATE_NAME/html/modules.php باشد. در این فایل باید تابعی به نام تعریف کنید modChrome_STYLEکه " STYLE" نام ماژول سفارشی کروم شما باشد. این تابع سه آرگومان، $module, &$paramsو &$attribs, همانطور که نشان داده شده است: <?php تابع modChrome_STYLE ($module، &$params، &$attribs) { /* خروجی ماژول کروم به اینجا می رود */ } ?> در این تابع میتوانید از هر یک از ویژگیهای ماژول موجود (یعنی فیلدهای jos_modulesجدول در پایگاه داده جوملا روی سرور خود) برای آن ماژول استفاده کنید، اما اصلیهایی که احتمالاً به آنها نیاز دارید $module->content، $module->showtitleو $module->title. $module->showtitleیک متغیر بولی است، بنابراین یا درست است (زمانی که عنوان ماژول باید نشان داده شود) یا نادرست (زمانی که نباید نشان داده شود). $module->contentو $module->titleمحتوای اصلی ماژول و عنوان ماژول را به ترتیب برمی گرداند. تابع یک تابع معمولی PHP است و بنابراین می تواند از هر کد PHP معمولی استفاده کند. یک مثال رایج این است که از یک ifعبارت برای بررسی مقدار استفاده کنید $module->showtitleو سپس عنوان را بر اساس آن درج کنید یا نه: <?php if ($module->showtitle) { echo '<h2>' .$module->title .'</h2>'; } ?> پارامترهای ماژول با استفاده از $paramsشی قابل دسترسی هستند. به عنوان مثال، ممکن است یک پسوند کلاس Module به یک Module در باطن جوملا اختصاص دهید! سایت؛ سپس در پارامترهای آن ماژول به عنوان ذخیره می شود moduleclass_sfx. برای ایجاد یک <div>با classپسوند کلاس Module تعیین می شود، باید از: <div class="<?php echo $params->get( 'moduleclass_sfx' ); ?>"> <!-- محتویات div --> </div> ویژگی های سفارشی کروم همچنین میتوان با استفاده از همان عبارتی که Module chrome را تنظیم میکند، ویژگیهای بیشتری را به تابع <jdoc:include />Module chrome منتقل کرد. این ویژگی های اضافی می توانند هر چیزی که دوست دارید باشد و در $attribsآرایه ذخیره می شوند. مثال زیر Module chrome function را در نظر بگیرید: <?php تابع modChrome_custom ($module، &$params، &$attribs) { if (isset( $attribs['headerLevel'] )) { $headerLevel = $attribs['headerLevel']; }دیگر { $headerLevel = 3; } <!--T:11--> if (isset( $attribs['background'] )) { $background = $attribs['background']; }دیگر { $background = 'آبی'; } <!--T:12--> echo '<div class="' .$params->get( 'moduleclass_sfx' ) .'" >'; <!--T:13--> if ($module->showtitle) { echo '<h' .$headerLevel .'>' .$module->title .'</h' .$headerLevel .'>'; } <!--T:14--> echo '<div class="' .$background .'">'; echo $module->content; پژواک '</div>'; <!--T:15--> پژواک '</div>'; } ?> سپس مقادیر را برای backgroundو headerLevelدر <jdoc:include />عبارت مطابق شکل زیر تنظیم می کنید. اگر هیچ مقداری تنظیم نشده باشد، ویژگی ها به ترتیب به صورت پیش فرض «آبی» و «3» هستند. انتقال ویژگیها به ماژول کروم از <jdoc:include /> <jdoc:include /> خروجی <jdoc:include type="modules" name="user1" style="custom" /> <div> <h3><!-- عنوان ماژول --></h3> <!--T:18--> <div class="blue"> <!-- محتوای ماژول --> </div> </div> <jdoc:include type="modules" name="user1" style="custom" background="green" /> <div> <h3><!-- عنوان ماژول --></h3> <!--T:19--> <div class="green"> <!-- محتوای ماژول --> </div> </div> <jdoc:include type="modules" name="user1" style="custom" headerLevel="1" background="yellow" /> <div> <h1><!-- عنوان ماژول --></h1> <!--T:20--> <div class="yellow"> <!-- محتوای ماژول --> </div> </div>
ادامه مطلبچهارشنبه, 23 شهریور 1401
اسلاید
طراحی قالب های دولتی سازگار با انواع سرویس دهنده های داخلی
ما با رعایت استاندارد های خاص طراحی موسسات دولتی در ایران ٬ بهترین قالب های دولتی بدون وابستگی به خارج و نیاز به بروز رسانی های مکرر را طراحی کرده ایم.
ادامه مطلبچهارشنبه, 23 شهریور 1401
اسلاید
طراحی قالب های دانشگاهی با استاندارد های روز دنیا
ما تیم متخصصی را در اختیار داریم که بیش از ۱۰ سال سابقه طراحی قالب برای بیش از یک صد مجموعه آموزشی و دانشگاهی را انجام داده است.
ادامه مطلبجمعه, 01 شهریور 1400
اخبار
بروزرسانی جوملا قدیمی
اگر سایت شما با نسخه های قدیمی جوملاست و نیاز دارید بدون از دست رفتن اطلاعات و مطالب خود آن را بروز کنید با ما تماس بگیرید. شماره 09124195066 در تمام شبکه های اجتماعی در دسترس شماست. ما وب سایت شما را بررسی کرده و هزینه بروز رسانی را مشخص می کنیم. فرق نمی کند نسخه جوملای شما 1 باشد یا 3 همه نسخه های قدیمی را میتوانید به نسخه 4 بروز کنید. فقط بعضی از افزونه ها تولید نشده اند که متاسفانه امکان بروز رسانی ندارند. اما الباقی افزونه ها علی الخصوص افزونه های رایگان قابل بروز رسانی می باشد. باتشکر روح الله بلوردی
ادامه مطلبشنبه, 13 تیر 1400
اخبار
قالب های جدید با قابلیت پشتیبانی از pwa و وب اپ منتشر می شود
قالب های جدید فروشگاه دیما با قابلیت پشتیبانی از pwa و وب اپ بر روی جوملا و وردپرس بدون نیاز به افزونه های تکمیلی ارائه می شود ، در این روش شما فقط کافی است تا تنظیمات قالب را کامل انجام دهید تا فایل های مربوطه تولید شود.
ادامه مطلبچهارشنبه, 26 آذر 1399
اخبار
مشکل درگاه پرداخت زرین پال
با سلام خدمت شما دوستان عزیز متاسفانه سایت زرین پل تحت حمله شدید قرار گرفته و درگاه آنلاین پرداخت فعلا مشکل دارد. دوستان اگر قصد خرید دارند لطفا مبلغ را کارت به کارت به شماره : 5041721031028385 به نام روح الله بلوردی واریز کرده و رسید را به شماره 09124195066 واتساپ یا تلگرام کنند. با تشکر فونت ایرانی
ادامه مطلبسه شنبه, 02 مرداد 1399
آموزش کار با نرم افزار جوملا
صفحه سفید جوملا یا وردپرس
اگر شما جوملا کار یا وردپرس کار باشید ممکن است بعد از بروز رسانی ها یا نصب افزونه های جدید با صفحه سفید برخورد کنید. بهترین روش برای حل مشکل ابتدا پیدا کردن مشکل است. یعنی ابتدا شما باید دیباگ نرم افزار را روشن کنید. اگر به بخش مدیریت سایت دسترسی دارید در جوملا میتوانید به بخش تنظیمات کلی بروید و گزارش خطا را بر روی حداکثر بگذارید این گزینه در تنظیمات کلی می باشد. در وردپرس باید فایل wp-config.php در روت سایت یا پوشه public_html را ادیت کنید و مقدار دیباگ را از false به true تغییر دهید. در جوملا اگر به مدیریت دسترسی ندارید یا مدیریت هم سفید است فایل configuration.php را ادیت کنید و error_reportiong را بر روی maximum قرار دهید. بعد از مشخص شدن خطا به دنبال حل ان باشید.
ادامه مطلبجمعه, 06 آبان 1398
معرفی
حل شدن مشکل ثبت نام
مشکل ثبت نام حل شد ٫ این مشکل به خاطر مسائل امنیتی سرور رخ داده بود که حل شد.
ادامه مطلبجمعه, 06 آبان 1398
اسلاید
فروش بک لینک معتبر
فروش بک لینک معتبر با لینک فالو.از ۶۰ سایت مورد قبول گوگل ٫ برای کسب اطلاعات بیشتر با ۰۹۱۲۴۱۹۵۰۶۶ تماس بگیرید. یا در تلگرام و واتساپ پیام بگذارید.
ادامه مطلبپنجشنبه, 21 خرداد 1398
معرفی
پرداخت نا موفق
پرداخت شما ناموفق بود میتوانید دوباره تلاش کنید.
ادامه مطلبپنجشنبه, 21 خرداد 1398
معرفی
پرداخت موفق حق عضویت
با تشکر از پرداخت هزینه شما سریعا با شما تماس می گیریم و دسترسی های لازم برای شما ارسال خواهد شد. به شما دسترسی به بانک قالب های جوملا و وردپرس داده خواهد شد.
ادامه مطلبپنجشنبه, 21 خرداد 1398
اخبار
تغییر ساختار میترا تمپلیت ( دیما تمپلیت )
با توجه به مشکلات زیادی که برای تولید قالب و هزینه های اضافی مجبور شدیم ساختار فروشگاه رو عوض کنیم ، از این به بعد ، دوستان می توانند با پرداخت یک میلیون تومان سالانه از کل قالب ها برای وردپرس و جوملا استفاده کنند. بدیهی است که تمامی قالب ها دارای پشتیبانی می باشند و تا زمان اتمام 1 سال کاربری به رایگان بروز رسانی دریافت می کنند. دوستان میتوانند ، مبلغ عضویت را به شماره کارت 6037997242757533 به نام روح الله بلوردی واریز و فیش را از طریق ایمیل r.balvardi@gmail.com یا تلفن 09124195066 در واتساپ و تلگرام برای ما ارسال کنند. پرداخت آنلاین با تشکر روح الله بلوردی
ادامه مطلبسه شنبه, 22 شهریور 1397
اسلاید
کاهش 50 درصدی قیمت های سایت
قیمت های سایت را تا 50 درصد کاهش دادیم ، قیمت یورو هم از 16 هزارتومان به 8.5 کاهش دادیم از این سیستم که ارزونی خبری نیست حداقل از خودمون شروع کنیم.
ادامه مطلبدوشنبه, 12 مرداد 1397
اخبار
ثبت نام از طریق پیامک
برای راحتی دوستان ، ثبت نام از طریق پیامک فعال شد. با توجه به مشکلات کپچای گوگل تصمیم گرفتیم برای حل مشکل ربات های مزاحم از سرویس ارسال پیامک استفاده کنیم.
ادامه مطلبیکشنبه, 06 مرداد 1397
اسلاید
سرقت قالبهای میترا تمپلیت
متاسفانه هکر یا هکر های بی دین و ایمان و بی وجدانی اقدام به سرقت قالب های میترا کرده اند ، با توجه به ثبت برند میترا و قالبهای میترا ، طبق قانون جرایم رایانه ای هر کدام از این قالبها جایی استفاده بشود ، گروه دیما حق بستن سرور و سرویس دهنده و شکایت از هاستینگ و شرکت فروشنده را دارد. لطفا در صورت مشاهده فروش غیر قانونی محصولات میترا به ما اطلاع دهید mitratemplate@gmail.com منتظر اطلاع شما هستیم.
ادامه مطلبشنبه, 03 تیر 1397
اسلاید
تغییر قیمت های قالب ها به یورو
متاسفانه به خاطر نوسانات زیاد بازار ارز مجبور شدیم ساختار سایت را عوض کرده و نرخ ها را براساس یورو تنظیم کنیم ، ان شالله که قیمت ارز پایین بیاد و این مشکلات تمام بشود.
ادامه مطلبشنبه, 27 خرداد 1397
اسلاید
فروش پکیج های 100 عددی قالب جوملا
قالب های جوملا را به صورت پکیج های 100 عددی خرید کنید ، برای این کار کافی است تا لیست خود را برای ما در تلگرام یا واتساپ به شماره 09124195066 بفرستید تا قیمت فروش عمده را برای شما تعیین کنیم. برای مشاوره میتوانید با شماره 09124195066 تماس بگیرید.
ادامه مطلبچهارشنبه, 11 بهمن 1396
اسلاید
کاهش هزینه تبدیل به وردپرس
با توجه به استقبال دوستان وردپرس کار از فروشگاه قالب های جوملا و وردپرس ، کلیه قالب های سایت بدون هزینه اضافه به وردپرس تبدیل می شود ، فقط برای قالب هایی که آماده نیست بین 12 تا 24 زمان تحویل طول میکشد . تمامی قالب ها با کنترل پنل اختصاصی برای مدیریت قالب ارائه می گردد. جهت کسب اطلاعات بیشتر با @balvardi در تلگرام یا 09124195066 در وات ساپ با ما همراه باشید.
ادامه مطلبپنجشنبه, 26 دی 1396
اخبار
تمدید تخفیف زمستانی تا 30 دی ماه
با توجه ه استقبال دوستان ، تخفیف زمستانی تا 30 دی ماه تمدید شد.
ادامه مطلبپنجشنبه, 19 دی 1396
اسلاید
فروش ویژه زمستانی با 40 درصد تخفیف
فروش ویژه زمستانی با 40 درصد تخفیف برای تمامی محصولات فروشگاه
ادامه مطلبجمعه, 11 دی 1396
معرفی
اختلال در تلگرام
با توجه به مشکل به وجود آمده در پیام رسان تلگرام ، در نرم افزار https://hangouts.google.com/ پیام رسان گوگل در خدمت دوستان هستیم. با آی دی r.balvardi با ما مکاتبه و گفتگو کنید.
ادامه مطلبدوشنبه, 24 آذر 1396
اسلاید
80 درصد تخفیف تا شب یلدا
با سلام خدمت شما دوستان گرامی با ورود به 10 سالگی فروشگاه قالب های جوملا ، تصمیم گرفتیم امسال هم تخفیف شب یلدا را با حداکثر تخفیف برگزار کنیم. برای برخورداری از این تخفیف می توانید از شنبه 25 آذر 96 تا پایان هفته می توانید این خرید را انجام دهید. خوشحالیم که با ما همراه هستید
ادامه مطلبدوشنبه, 24 آذر 1396
اخبار
خبر خوش برای طراحان وب ، 80 درصد تخفیف به مناسبت یلدا
با سلام خدمت شما دوستان گرامی با ورود به 10 سالگی فروشگاه قالب های جوملا ، تصمیم گرفتیم امسال هم تخفیف شب یلدا را با حداکثر تخفیف برگزار کنیم. برای برخورداری از این تخفیف می توانید از شنبه 25 آذر 96 تا پایان هفته می توانید این خرید را انجام دهید. خوشحالیم که با ما همراه هستید
ادامه مطلبپنجشنبه, 14 آذر 1396
اسلاید
? فرا رسیدن میلاد حضرت محمد مصطفی (ص)و امام جعفر صادق(ع) گرامی باد
شنبه, 28 آبان 1396
اسلاید
تولد میترا تملیپ مبارک باد!
به امید خدا وارد دهمین سال خدمت رسانی به کاربران جوملا شدیم. هدیه ما به شما 50 درصد تخفیف تمامی محصولات
ادامه مطلبدوشنبه, 21 مهر 1396
اسلاید
30 درصد تخفیف عضویت
برای شما که عضو سایت ما نیستید ، 30 درصد تخفیف عضویت در نظر گرفته ایم. همین حالا عضو شوید و خرید خود را انجام دهید.
ادامه مطلبدوشنبه, 21 مهر 1396
اسلاید
انتقال قالب های تبلیغاتی جوملا
قالب های تبلیغاتی جوملا به دامنه dimaads.ir منتقل شدند ، از این به بعد میتوانید قالب های تبلیغاتی جوملا را با سیستم دیما ادز در سایت جدید استفاده کنید!
ادامه مطلبدوشنبه, 21 مهر 1396
اسلاید
انتقال قالب های فروشگاهی
قالب های فروشگاهی جوملا برای ارائه بهتر و معرفی بهتر به سایت دیما شاپ به آدرس dimashop.ir منتقل شد.
ادامه مطلبدوشنبه, 14 مهر 1396
اسلاید
ربات هوشمند میترا تمپلیت برای آموزش و اطلاع رسانی راه اندازی شد.
ربات هوشمند میترا تمپلیت @mitratemplate_bot در تلگرام در خدمت شماست
ادامه مطلبشنبه, 09 مهر 1396
اسلاید
کل یوم عاشورا و کل ارض کربلا
کُلُّ یَوْمٍ عَاشُورَا و کُلُّ أَرْضٍ کَرْبَلاء
ادامه مطلبیکشنبه, 01 مهر 1396
اسلاید
بیش از 500 قالب فارسی جوملا و وردپرس
قالب های زیبا و ریسپانسیو جوملا و وردپرس با بهترین کیفیت و سئوی حداکثری سازگار با موتورهای جستجو و شبکه های اجتماعی
ادامه مطلبدوشنبه, 27 مرداد 1396
اخبار
50 درصد تخفیف تولد 12 سالگی جوملا
جوملا 12 ساله شد. این خبر خوب برای همه طرفداران جوملاست که توانسته 12 سال سیستم مدیریت محتوای بسیار عالی را تولید و رایگان عرضه کند. ما هم به رسم و عادت هر ساله کادوی تولد جوملا رو با 50 درصد تخفیف خدمت شما ارائه می کنیم. برای برخورداری از تخفیف هم اکنون از سایت ما بازدید کنید و قالب مورد نظر خودتون رو با 50 درصد تخفیف بهمراه فایل پی اس رایگان تحویل بگیرید. فروشگاه قالب ها و افزونه های جوملا میترا تمپلیت
ادامه مطلبجمعه, 19 تیر 1396
اخبار
فروش ویژه آرشیو بزرگ میترا تمپلیت
با سلام خدمت شما دوستان گرامی ، آرشیو میترا تملپیت برای جوملا 3 بیشتر از 200 قالب آماده بصورت بسته نصبی و بر روی جوملا 3 موجود می باشد به همین دلیل تصمیم گرفتیم این آرشیو بصورت را برای فروش دوستان طراح وب به اشتراک بزاریم. هزینه بسته های آرشیو ( قالبها به انتخاب شماست) برای 50 تایی 600 هزارتومان و برای بسته 100 تایی 1 میلیون می باشد. برای خرید این بسته با اکانت http://www.telegram.me/balvardi یا با آدرس ایمیل r.balvardi@gmail.com یا شماره تلفن 09124195066 تماس بگیرید.
ادامه مطلبدوشنبه, 15 ارديبهشت 1396
معرفی
فروش ویژه به مناسبت اعیاد نمیشه شعبان
فروش ویژه به مناسبت اعیاد نمیشه شعبان
ادامه مطلبچهارشنبه, 11 اسفند 1395
اخبار
ربات تلگرام میترا تمپلیت شروع به کار کرد.
بلاخره ربات تلگرام رو با آدرس @mitratemplate_bot راه اندازی کردیم ، این ربات برای پاسخگویی در مورد قالب های سایت میترا تمپلیت طراحی شده است. شما میتوانید با پرسش از این ربات ما را در ساخت یک دیتابیس قوی برای این ربات حمایت کنید. هدف اصلی این ربات آموزش است.
ادامه مطلبپنجشنبه, 05 بهمن 1395
اخبار
30 درصد تخفیف ویژه بهمن ماه
با شروع ماه بهمن ، ماه سالگرد انقلاب اسلامی مردم ایران و جشن های سالگرد انقلاب ، ما نیز هر سال تخفیف ویژه ای نیز برای این ماه در نظر می گیرم ، امسال نیز به هول و قوه الهی این فرصت ایجاد شد تا برای دهمین سال متوالی این جشنواره نیز برگزار شود. برای برخورداری از این جشنواره تا 22 بهمن فرصت دارید ، البته ، با توجه به محدودیت فروش ، ممکن است این جشنواره زودتر نیز تمام شود.
ادامه مطلبیکشنبه, 25 ارديبهشت 1395
معرفی
قوانین و مقررات
این قوانین توسط ما تعیین و برای راحتی شما در خرید ایجاد شده است ، لطفا قبل از خرید آن را مطالعه کنید: درصورتی که به جوملا آشنایی ندارید لطفا قالب را بصورت بسته نصبی خریداری کنید. فروشگاه در قبال خرید اشتباه جوابگو نیست. این کالا دیجیتال است و در صورت پشیمانی برگشت هزینه ندارد. این محصول کد نشده است اما با خرید نسخه نا محدود شما مجوز استفاده نا محدود این قالب را خواهید داشت. شما حق فروش مجدد این محصول را ندارید. تمامی حقوق این محصول برای گروه دیما محفوظ است. با خرید این محصول شما تمامی این قوانین را تایید کردید و نیازی به ثبت کاغذی تعهد نامه ندارد. هرگونه سوء استفاده توسط گروه دیما قابل پیگرد قانونی است. محصولات رایگان مشمول راهنمایی و پشتیبانی نمی شود. پشتیبانی شامل مشکلات احتمالی قالب می باشد و مشکلات موجود در سرور شما یا نسخه جوملا شما ارتباطی به ما ندارد و مشمول پشتیبانی نمی شود. نصب قالب بر روی وب سایت شما رایگان نبوده و مشمول هزینه خواهد بود. کلیه محصولات قبل از ارسال برای کاربران توسط ویروس کش و ابزارهای ضد هک اسکن شده و بعد ارسال می گردد. فروشگاه هیچ گونه تعهدی برای محصولات خریداری شده از سایت های غیر فروشگاه را ندارد و فقط محصولاتی که دارای فاکتور می باشند شامل پشتیانی می باشند. پشتیبانی فقط بر روی ایمیل خریدار و سایتی که در فاکتور ذکر شده انجام می شود. استفاده از قالب در سایتی غیر از سایت موجود در فاکتور مشمول پشتیبانی نمی شود. بروز رسانی قالبها برای نسخه های جدید جوملا مشمول هزینه است. تمامی بسته های خریداری شده از طریق ایمیل r.balvardi@gmail.com ارسال می گردد، لطفا نسبت به ایمیل های ارسالی از سایر ایمیل ها توجه نفرمایید و فایل را دانلود نکنید.
ادامه مطلبدوشنبه, 24 ارديبهشت 1395
معرفی
چرا قالب های فروشگاه جوملا ( میترا تمپلیت ) گران تر از سایر سایت های فروش قالب هستند
برای دوستان یا خریداران و مشتریان همیشه این سوال است که چرا قالب های فروشگاه ما از سایر فروشگاه های ایرانی قالب گران تر هستند و قیمت بالاتری نسبت به قالب های سایر فروشگاه ها دارند. ما این دلایل را برای شما توضیح می دهیم ، امیدواریم شما هم با خواندن این دلایل قانع شویدو این مطلب بتواند به شما کمک کند. قالب های فروشگاه میترا همه تولیدی طراحان و برنامه نویسان ایرانی هستند و این قالب ها از صفر تا صد توسط ما طراحی و پیاده سازی می شوند قالب های فروشگاه هیچ کدام کد نشده و سورس قالب کاملا باز است. قالب های ما با بروز رسانی های مختلف جوملا به مشکل بر نخورده و براحتی با نسخه های جدید جوملا کار می کند. قالب های ما از حداق کد های php و کد های اضافه برخوردار است و هیچ کد php بیشتر از قالب های استاندارد که جوملا تعریف کرده است ندارند. این قالب ها نسبت به قالب های خارجی یا قالب های سایر فروشگاهها سبک تر و با سئو سازگار ترند. هر سایتی که با قالب های فروشگاه ما کار شود ، بلافاصله اثر مثبت خود را بر روی سئوی سایت شما نشان می دهد. ساختار قالب های ما با شبکه های اجتماعی سازگار بوده و براحتی توسط شبکه های اجتماعی لینک این قالب ها قابل تفسیر و استفاده است. بعد از نصب قالب های ما شما به هیچ وجه نیاز به دست بردن یا تغییر در قالب ندارید و تمامی بخش های قالب از داخل مدیریت جوملا قابل تغییر می باشند. در قالب های ما هیچ کد یا افزونه گزارش ، هک یا جستجویی یا بک لینکی به سایت ما وجود ندارد و تنها قسمت موجود در تمامی قالب ها کپی رایت ما می باشد که برای بینندگان غیر فعال شده و بینندگان شما چیزی نمی بینند. ما به حقوق شما احترام میگذاریم و به این نکته واقفیم که بعد از خرید شما دیگر نیازی به پرداخت هزینه ای اضافه برای سایر خدمات ندارید. بروز رسانی قالب ها هزینه کمی دارد و برای شما این هزینه برابر 10 درصد هزینه قالب می باشد.
ادامه مطلبسه شنبه, 23 ارديبهشت 1395
اخبار
مشکل پرداخت الکترونیک حل شد.
با تشکر از سایت زرین پل ، خوشبختانه مشکل پرداخت الکتروینکی حل شدو دوستان می توانند بصورت الکترونیک خرید انجام دهند
ادامه مطلبدوشنبه, 03 ارديبهشت 1395
اخبار
حل شدن مشکل لوگین در صفحات داخلی
متاسفانه به دلیل بروز رسانی های جوملا در فرم ورود به ساتی اختلالی ایجاد شده است که نمی توان در صفحات داخلی در سایت لوگین کرد. به همین دلیل ما فرم را تغییر داده و تا بروز رسانی جوملا این مشکل را حل کرده ایم.
ادامه مطلبسه شنبه, 22 بهمن 1394
تعطیلی همیشگی قالب ساز جوملا از تاریخ 1/1/1395
با سلام خدمت شما کاربر گرامیبا تشکر از اینکه در این مدت همراه ما بودید ، با توجه به عدم استقبال دوستان و هزینه های زیاد وب سایت و توسعه نرم افزار قالب ساز متاسفانه مجبوریم تا آخر سال 94 این سرویس را تعطیل کنم. لطفا دوستان که حساب تجاری دارند تا پایان امسال شارژ اکانت خود را استفاده کنند تا ما مدیون کسی نشویم.این پروژه یه پروژه عام المنفعه بوده اما متاسفانه هیچ حمایتی از ما نه روی نسخه تجاری و نه روی نسخه رایگان نشده است و بنده با هزینه های شخصی قادر به توسعه و نگهداری این وب سایت نیستم.از شما بابت این همراهی ممنون هستم.با تشکر روح الله بلوردی
ادامه مطلبپنجشنبه, 15 دی 1394
آموزش کار با نرم افزار جوملا
حل مشکل magic quotes gpc در نصب جوملا
اگر شما هم در ابتدای نصب جوملا 3 به مشک خوردید و خطای magic quotes gpc را دیده اید به روش زیر مشک را حل کنید. فایل .htaccess روت جوملا فایل .htaccess که در روت سایت شما قرار دارد را ادیت کنید و خط ریر را به انتهای فایل اضافه کنید معمولا در مسیر (/home/myusername/public_html/.htaccess) قرار دارد، اگر وجود نداشت فایل htaccess.txt را تغییر نام به .htaccess دهید و کد زیر را بهش اضافه کنید: php_flag magic_quotes_gpc off روش دیگر برای سایتهای ویندوزی یا سایتهای دیگر که روش اول جواب نداد : یک فایل php.ini در روت جوملا ایجاد کنید. خط زیر را به آن اضافه کنید و فایل را ذخیره کنید. magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off فایل .htaccess را ادیت کنید و خط زیر را اضافه کنید: SetEnv PHPRC /home/youruser/public_html/php.ini اگر مشکلی پیش آمد لطفا با آدرس زیر مرجعه کنید: source : http://stackoverflow.com/questions/517008/how-to-turn-off-magic-quotes-on-shared-hosting
ادامه مطلبسه شنبه, 26 آذر 1394
اخبار
یک هفته با یلدای شگفتانگیز، چشم از میترا تمپلیت چشم بر ندارید
میترا تمپلیت بزرگترین فروشگاه اینترنتی قالب فارسی در نظر دارد بزرگترین فروش تاریخ خود را در آستانهی روز طراحی وب ایران برگزار کند. از ساعت ۱۰ صبح شنبه، ۲۸ آذرماه، آمادهی شرکت در هفتهی «یلدای شگفتانگیز» باشید و تا روز پنجشنبه، 3 دیماه از میترا تمپلیت چشم برندارید. در ضمن در این مدت تمامی هموطنان عزیز میتوانند خریدهای بالای ۱۰۰ هزار تومان خود را به همراه یک هدیه رایگان دریافت کنند.
ادامه مطلبپنجشنبه, 07 مهر 1394
اخبار
فروش ویژه و استثنایی فروشگاه قالب های جوملا
به مناسبت ماه مهر و شروع سال نو تحصیلی ، تصمیم گرفتیم که مثل سالهای قبل جشنواره استثنایی فروش پکیج های قالب بصورت بسته نصبی را امسال نیز برگزار کنیم ، در اولین دوره امسال تصمیم داریم برای مدت محدود 4 بسته نصبی را به قیمت 200 هزارتومان ( یعنی یک هشتم هزینه اصلی) به فروش برسانیم ، برای برخورداری از این تخفیف فقط تا 10 مهرماه فرصت دارید. لطفا مبلیغ خرید خود را به یکی از کارتهای لیست شده در صفحه زیر واریز نمایید یا ااز طریق درگاه بصورت آنلاین پرداخت نمایید : http://www.mitratemplate.com/payment بعد از پرداخت فیش خود را در فرم زیر ثبت کنید : http://www.mitratemplate.com/fishform هرگونه سوال و پرسش خود را با شماره های زیر در میان بگذارید : 09124195066 - 09124372370 - 09358006036
ادامه مطلبشنبه, 15 شهریور 1394
اخبار
پذیرش نمایندگی فروش محصولات فروشگاه جوملا
با سلام خدمت شما دوستداران و استفاده کنندگان از فروشگاه قالب های جوملا برای اشتغال زایی و نشر بیشتر قالب های فارسی بر روی وب تصمیم گرفتیم که مجددا سیستم همکاری در فروش را راه اندازی کنیم. به این ترتیب دوستان می توانند با گرفتن نمایندگی از فروشگاه ، محصولات ما را در سایت خود به فروش بگذارند ، برای این کار کافی است تا با ما مکاتبه کنید و نرم افزار لازم را بر روی سایت خود نصب کنید. براساس نوع همکاری برای شما نرم افزاری داده شده که میتوانید محصولات ما را بفروشید و درصد بگیرید. این نرم افزار به سایت شما فشاری نیاورده و فقط لیستی از قالب های ما را در سایت شما نشان می دهد. برای همکاری در فروش لطفا فرم زیر را پر نمایید و بعد از تایید کد همکاری به شما داده خواهد شد.
ادامه مطلبسه شنبه, 12 شهریور 1394
معرفی
میکروبلاگ طراحان وب ایران
با سلام خدمت شما دوستان گرامی، میکرو بلاگ طراحان وب ایران یک شبکه اجتماعی قدرتمند مبتنی بر وب است که کاربران آن میتوانند یک ارسال متن بهمراه تصویر، ویدئو، لینک و فایل داشته و باشیذ. میکرو بلاگ طراحان وب ایران
ادامه مطلبجمعه, 02 شهریور 1394
help
Help Design Templates
The framework can easily mold design mold design and implement your own site dive format. The application template provides you with web standards compliance The arrow keys to create rows and columns to use format In an empty area in the middle of every situation you can enter the name of your module, otherwise the naming system for position If you want to output to Joomla 2.5 template conversion, you can select a location and the word component to it, the system automatically converts the specified component to your template you. You can leave a proprietary names for all boxes Produced default format for all situations uses rounded style, you can fit their needs or to xhtml change this mode to none! To convert the template to CMS and subsequent editing is necessary to save the key in the bottom of the form must die! For better performance, please use the following positions for the system definition logo to display the logo left position left or right depending on the version of your application right position left or right depending on the version of your application footer to display copyright horizontal menu tree menu sldie Sliders tab tab with ten different styles user1 ta user5 to display everything bottom1 ta bottom5 to display everything footer1 ta footer5 to display everything Site breadcrumb path date date lang Language eng written in English search Search Content management systems like Drupal theme these situations are defined To control module in Joomla must -none of options or -rounded or -xhtml at the end position of use, for example menu-none makes up the position as no.
ادامه مطلبجمعه, 02 شهریور 1394
Can other site in the form of a code to enter and export the template?
No. This is because it may violate copyright, disabled, why we have to limit this tool, this tool is only for those who have designed their form and need to be converted to Joomla!
ادامه مطلبجمعه, 02 شهریور 1394
help
How to control a empaty position
In this example, the study of the site that is loaded has a right position and a left position and size of each position and size of 200 x 600 pixels, which is the material position in the total width of the frame is 1000 pixels so our requirement for this position then we write and put on top form, like a row of this section 4 is the class that is the case. <?php if($this->countModules("right")) : $size1='';else: $size1='200';endif;?><?php if($this->countModules("left")) : $size2='';else: $size2='200';endif;?><?php$size3=(600+$size1+$size2);?>The first part of our code that controls the size of the middle position in the absence of either or both positions, to control any of the situations we use the following code example. <?php if($this->countModules("left")) : ?> <div id="dima_4"> <div id="dima_4_1_wrapper"> <div id="dima_4_1"> <jdoc:include type="modules" name="left" style="rounded" /> </div> </div> <?php endif; ?>
ادامه مطلبجمعه, 02 شهریور 1394
Template Builder How does it work?
Template Builder online tool to design a structure or framework Jvmlast format, this means you can frame your site with tools in the middle of the site and its arrow keys.
ادامه مطلبجمعه, 02 شهریور 1394
How can mobile version of the activated templates?
To activate the mobile version should be careful when creating templates, Joomla 3.0 version on your content management system and the mobile version Yes Let The mobile version also will be made to your template. Remember, if you have selected the original file format designed for the mobile version of your template instead of index.php to desktop.php rename and file mobile.php is mobile version.
ادامه مطلبجمعه, 02 شهریور 1394
help
Convert to Joomla 2.5 templates Joomla 3
The two lines must remove the Joomla 3 minutes and add to the bottom line instead: // Add JavaScript Frameworks JHtml::_('bootstrap.framework'); // Load optional RTL Bootstrap CSS JHtml::_('bootstrap.loadCss', false, $this->direction); This line of Joomla 2 is to be replaced: $doc->addScript('templates/' .$this->template. '/js/jquery.min.js');
ادامه مطلبجمعه, 02 شهریور 1394
معرفی
About Service
Welcome to the online site building template, the template builder web content management based on the latest version of your theme, the technology used in the design of this template is compatible with the W3C and hTML5 Css3 technology also supports this format and style of the moment is the demo version is limited.Features Template Builder Template design principles based design xhtml 1.0 to xhtml 5.0 CSS standard and is compatible with all browsers Using jQuery The use of effects and possibilities of CSS 3 Online design templates to define the rows and columns so Take advantage of the great tree menus Take advantage of the slider jQuery and CSS 3 Take advantage of jQuery tab Take advantage of Persian fonts Take advantage of jQuery plugins Compatible with Bootstrap framework Take export on Joomla, WordPress, Drupal, DotNetNuke
ادامه مطلبجمعه, 02 شهریور 1394
آموزش طراحی قالب جوملا
مبدل قالب های انگلیسی به فارسی و بالعکس ، سرویس جدید قالب ساز دیما (رایگان)
برای راحتی و سهولت شما دوست عزیز در تبدیل قالبهای خارجی به قالب های فارسی و بومی ، ابزار جدید باز متنی به سرویس قالب ساز دیما اضافه شده که امکان تبدیل سی اس اس های LTR به RTL را فراهم کرده است.این سرویس رایگان است و با نام کاربری خود میتوانید بصورت نامحدود از آن استفاده کنید. http://pro.themegenerator.ir/fa/services/ltr2rtlبا تشکر گروه نرم افزاری دیما
ادامه مطلبپنجشنبه, 23 تیر 1394
خروجی وردپرس ، دات نت نیوک و دروپال از سیستم حذف شد.
متاسفانه به دلیل عدم حمایت توسعه دهندگان وردپرس ، دات نت نیوک و دروپال مجبور شدیم این بخش های سایت را تا پیدا شدن توسعه دهنده حرفه ای از مسیر خارج کرده و غیر فعال نموده ایم. امیدواریم به زودی بتوانیم این بخش ها را مجدد فعال کنیم.
ادامه مطلبچهارشنبه, 16 ارديبهشت 1394
اخبار
همکاری با فروشگاه فروشگاه طراحان وب
به استحضار بازدیدکنندگان و مشتریان گرامی می رساند ، با توجه به مذاکرات و تعاملات به عمل آمده با مدیریت محترم فروشگاه طراحان وب و توافق بعمل آمده با این فروشگاه ، از این پس همکاری فروشگاه طراحان وب و فروشگاه میتراتمپلیت به آدرس ( http://webdesignersshop.ir ) آغاز و بخشی از محصولات فروشگاه میتراتمپلیت از طریق فروشگاه طراحان وب در دسترس مشتریان خواهد بود . بر این اساس امکان خرید محصولات موردنظر برای مشتریان گرامی امکان پذیر خواهد بود.
ادامه مطلب