پارس جوم ::  انجمن های تخصصی جوملا
درخواست راهنمایی برای ایجاد فیلدی در ماژول - نسخه‌ی قابل چاپ

+- پارس جوم :: انجمن های تخصصی جوملا (https://forums.parsjoom.ir)
+-- انجمن: پشتیبانی (/forum-70.html)
+--- انجمن: مباحث و مشکلات عمومی (/forum-33.html)
+--- موضوع: درخواست راهنمایی برای ایجاد فیلدی در ماژول (/thread-17490.html)

صفحه‌ها: 1 2


درخواست راهنمایی برای ایجاد فیلدی در ماژول - mrt69 - ۲۱-۱۲-۱۳۹۳ ۰۶:۱۶ عصر

با سلام خدمت دوستان من دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
رو فعال کردم و همه یوزر هام یک عکس دارند

کاری که کردم این است که برای ماژول دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
یک فیلد جدید در پارامتر های ماژول ایجاد کردم به اسم نمایش عکس کاربر که اگر کاربر گزینه yes یا مقدار 1 را انتخاب کند به جای عکس های مطالب عکس آواتار کاربر نمایش داده شود واگر گرینه no انتخاب شده باشد مانند تنظیمات سابق ماژول تصاویر مطالب نمایش داده شود

فیلدی که در فایل xml ماژول درست کردم به شکل زیر :
کد php:
<field
                    name
="avatar"
                    
type="radio"
                    
size="10"
                    
default="0"
                    
label="user_avatar">
                    <
option value="0">JNO</option>
                    <
option value="1">JYES</option>
                </
field



حالا نمی دونم کدوم فایل ها رو توی فایل های php باید انتخاب کنم که اگر گزینه yes انتخاب شد عکس اواتار نویسنده مطلب نمایش داده شود


ممنون میشم دوستان راهنمایی کنند


RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mostafa272 - ۲۱-۱۲-۱۳۹۳ ۰۷:۲۳ عصر

آقا من نفهمیدم چی نوشتی

لطفا انگلیسی ها رو فارسی بنویس یا فینگلیش بنویس

یه ویرایشگر درست و حسابی واسه این فروم بذارید دیگه!


RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mrt69 - ۲۱-۱۲-۱۳۹۳ ۰۷:۲۴ عصر

من اصلا انگلیسی نوشتم ؟!!!!!!!!!!


RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mostafa272 - ۲۱-۱۲-۱۳۹۳ ۰۸:۰۴ عصر

در هر صورت مجموعه فایلهایی که در واقع قالب خروجی ماژولها رو تشکیل میده
در پوشه
tmpl
قرار داره
به صورت پیش فرض فایل
default.php
در فایل اصلی ماژول
کد php:
$avatar    $params->get('avatar'0);

if(
$avatar)
{
$image$avatar_image;
}
else
{
$image$article_image;


$avatar_image
و
$article_image
به ترتیب قالب
html
عکس آواتار و مطالب هست
یعنی
'<img src="address_to_image" >'
که در
$image
قرار می گیره
حالا تو فایل
default.php
میتونی
$image
رو نمایش بدی:
کد php:
echo $image



RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mrt69 - ۲۱-۱۲-۱۳۹۳ ۰۹:۴۳ عصر

کلیت ماژول نویسی رو می دونم

منتهی مشکلم با اینه که این ماژول با متد و توابعی عکس مطالب رو پیدا می کند و منتشر می کند که من اون متد و تابع که باهاش عکس پیدا می شه رو نمیشناسم که بخوام شرط پارامتر خودم رو توش قرار بدم


RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mostafa272 - ۲۱-۱۲-۱۳۹۳ ۱۰:۴۹ عصر

بیشتر
فایلهای داخل
tmpl
این کد رو اولش دارند:
کد php:
$thumbnail '';
if(isset(
$item->thumbnails[0])){
    
$thumbnail =  $item->thumbnails[0];
}elseif(
$params->get('show_noimage') != '0'){
    
$thumbnail =  JURI::base(1).'/modules/mod_jvnews/tmpl/'.$template.'/images/no_image.gif';


که مربوط به نمایش تصاویر هست
این شرطها تعیین میکنه که اگر مطالب تصویر بند انگشتی داشت
آدرس اون رو بریزه تو
$thumbnail
وگرنه اگر مطالب تصویری نداشت عکس پیش فرض رو نشون بده
بنابراین شما فقط آدرس عکسهای مورد نظرتون رو باید انتخاب کنید و توی
$thumbnail
جایگزین کنید
اگر منظورت ایجاد تصویر بندانگشتی هست باید تابعش رو فراخوانی کنی
تابع ایجاد فایل بند انگشتی
getThumbnails
هست
که در فایل helper.php
تعریف شده و
در فایل
content.php
داخل پوشه
helpers
فراخوانی شده است.
کد php:
$item->thumbnails self::getThumbnails$item->text$this->params->get('leading_thumbnail_mode''adaptiveresize'), $thumbnail_width$thumbnail_height$this->params->get('leading_thumbnail_position') == 'inside', (bool) $this->params->get('hide_leading_image')); 



RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mrt69 - ۲۲-۱۲-۱۳۹۳ ۱۲:۲۶ صبح

با تشکر از پاسختون

روال فعلی این ماژول به این صورت است که می بیند مطلب مورد نظر عکس دارد یا نه .
اکر عکس داشت عکس مطلب رو نمایش می دهد اگر عکس نداشت تصویر پیش فرض no image رو نشون میده

حالا

اگه من بخواهم یک شرط به شروط این تابع اضافه کنم که اگر مقدار پارامتر $avavtar صفر انتخاب شده بود توسط کاربر روال فعلی رو ادامه بدهد و اگر یک بود عکس کاربر رو نمایش بدهد باید به چه صورت و کجا شرطش رو بنویسم؟؟؟


ممنون


RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mostafa272 - ۲۲-۱۲-۱۳۹۳ ۱۲:۵۱ صبح

برای ترکیب شرطها
از
and
استفاده میشه:

کد php:
if(isset($item->thumbnails[0]) and $avatar=='1'){
Do 
something

شرط بالا میگه
اگر مطلب عکس داشت و مقدار
$avatar
یک بود
آنگاه کاری رو انجام بده!




RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mrt69 - ۲۲-۱۲-۱۳۹۳ ۰۱:۱۹ صبح

الان همین متد تابع getThumbnails که فرمودید توی فایل helper به شکل زیر نوشته شده و خودش پر از if های تو در تو هستش

نمی دونم به چه شکلی و کجا این شرط if رو به شکلی که گفتید اضافه کنم

ممنون میشم با توجه به کد های زیر کمک کنید که به چه شکل باید اضافه بشه


کد php:
public static function getThumbnails(&$text$mode$thumbnail_width$thumbnail_height$isOverride false$clearImage false){
      
      
$resizePath JPATH_ROOT.DS."images/resized/modules/mod_jvnews/".substr($mode05)."_{$thumbnail_width}_{$thumbnail_height}/";
        
$link       JURI::base()."images/resized/modules/mod_jvnews/".substr($mode05)."_{$thumbnail_width}_{$thumbnail_height}/";
        
$regex      '/<img.*src=[\'\"]([^\'^\"]*)?[\'\"].*\/>/i';
        
$thumnails  = array();
        
        if(!
JFolder::exists($resizePath)){
            if(!
JFolder::create($resizePath)) return;
            
$index "<html><body></body></html>";
            if(!
JFile::write($resizePath.DS.'index.html',$index)) return;
        }
        
        if(
preg_match('/<img\b[^>]*\/>/i'$text)){            
           
preg_match_all($regex$text$matches); 
                        
           if(
count($matches)){
                foreach(
$matches[1] as $match){
                    
$imagename  self::getFileName($match); 
                    
$fileNameParts explode('.',$imagename);                        
                    
$fileExtension array_pop($fileNameParts);  
                    
$fileExtension current(explode('?'substr($fileExtension03)));
                    
$imagename     current($fileNameParts).'.'.$fileExtension;

                    if(!
JFile::exists($resizePath.$imagename)){
                        
$images        = (preg_match('/http:\/\//'$match) || preg_match('/https:\/\//'$match)) ? $match JPATH_SITE.'/'.$match;
                        
$thumb         = new GdThumb(str_replace('&amp;''&'$images));
                        
                        switch(
$mode){
                            case 
'resize':
                                
$thumb->resize($thumbnail_width$thumbnail_height);
                            break;
                            case 
'adaptiveresize':
                                
$thumb->adaptiveResize($thumbnail_width$thumbnail_height);
                            break;
                            case 
'crop':
                                
$thumb->crop(00$thumbnail_width$thumbnail_height);
                            break;
                            case 
'cropfromcenter':
                                
$thumb->cropFromCenter($thumbnail_width$thumbnail_height);
                            break;                            
                        }
                        
                        
$thumb->save($resizePath.$imagename$fileExtension);              
                    }
                    
                    if(
$isOverride && !$clearImage){
                        
$text str_replace($match,$link.$imagename,$text);         
                    }else{
                        
$text $text;
                    }
                                
                    
$thumnails[] = $link.$imagename;
                }                    
           }
        }
        if(
$clearImage){
            
$text preg_replace($regex''$text);
        }
        
        return 
$thumnails;
    } 



ممنون


RE: درخواست راهنمایی برای ایجاد فیلدی در ماژول - mostafa272 - ۲۲-۱۲-۱۳۹۳ ۰۳:۲۰ صبح

ببین تابع
getThumbnail
برای عکسهای موجود در یک متن
thumbnail
درست
میکنه
شما میخواهید نمایش عکس در خروجی رو کنترل کنید که کد مربوط به این قسمت تو فایلهای پوشه tmpl
اینه:
کد php:
$thumbnail '';
if(isset(
$item->thumbnails[0])){
    
$thumbnail =  $item->thumbnails[0];
}elseif(
$params->get('show_noimage') != '0'){
    
$thumbnail =  JURI::base(1).'/modules/mod_jvnews/tmpl/'.$template.'/images/no_image.gif';