موضوع الاسئلة العام

[center]بسم الله الرحمن الرحيم[/center][center]

[/center][center]

[/center][center]عام إلى جميع الاخوان هذا موضوع للنقاشات والاستفسارات بشكل عام بخصوص اطار العمل[/center][center]Yii[/center][center]

[/center][center]فالرجاء المشاركة من الجميع لمن ليس لديهم امكانية اضافة موضوع جديد[/center][center]

[/center][center]

[/center][center]--------------------------[/center][center]

[/center][center]اخوكم/ مؤيد المحمدي[/center]

[center][b]السلام عليكم ورحمة الله. شكرا أخي على فتح هذا الموضوع وأتمنى أن أجد جوابا لسؤالي إن شاء الله.

أريد أن أقوم بإظهار خمسة تسجيلات في كل ثانية. فمثلا إن كان الجدول في قاعدة البيانات يحتوي على 20 تسجيلات أريد أن أقوم بإضهار 5 تسجيلات في كل ثانية.

وهذا هو الكود الحالي الذي يظهر جميع التسجيلات.[/b]


<? php $ Company = Company:: model () -> findAll (); foreach ($ companies as $ company) { ?> <tr style="text-align:center;"> <td style="font-size:small; font-weight: bolder; white-space: nowrap;"> <? php echo $ company-> name;?> </ td> </ tr> <? php}?>

أتمنى أن تساعدوني إن أمكن والله ولي التوفيق [/center]

[center]

[/center][center]حقيقة ماني قادر افهم الفايدة لاكن اكيد انت عندك اسبابك[/center][center][/center][center]

[/center][center]

[/center][center]بدايتا[/center][center]الكود الي انت حطيتة فقط يقوم بعرض النتايج (ولاأعتقد انه شغال لوجود خطأ فيه) ولاكن هذا الكود فين موجود بالضبط ؟[/center][center]

[/center][center]هل هو بالكنترولر ولا الفيو ؟؟ لاني شايفك دامج الاثنين بخطوة وحدة وهذا الشي[/center][center]

[/center][center]يخالف مفهوم اطار العمل اساسا[/center][center]

[/center][center]--------------[/center][center]

[/center][center]الموضوع الثاني يالغالي هو انه طلبك يمكن تحقيقة بالاجاكس[/center][center]Ajax[/center][center]او مثلا كود جافاسكربت بسيط ويكون موجود بجزء الفيو بحيث انه يستدعي سجلات اخرى كل[/center][center]

[/center][center]فترة زمنية معينة بالاجاكس وثم يعرضها مباشرة[/center][center]

[/center][center]او[/center][center]

[/center][center]يستم استدعاء كامل السجلات العشرين وثم عن طريق الجافاسكربت او[/center][center]jQuery[/center][center]

[/center][center]يتم عرض 5 كل فترة زمنية معينه[/center][center]

[/center][center]--------------------[/center][center]

[/center][center]هذا والله اعلم[/center][center]

[/center][center]بالتوفيق اخوي[/center]

[center][b]السلام عليكم ورحمة الله

الحمد لله استطعت أن أحل المشكلة, لكن بقي لي أن أضيف الصورة في الجدول حتى تظهر في الفيو

لدي جدول يسمى الشركات التي تحتوي على الحقول التالية : اسم ، الشعار

في الصفحة المخصصة لإضافة شركة جديدة أود أن أسجل صورة الشعار وذالك بتحميلها من الجهاز.

السؤال المطروح هو

أريد أن أعرف إذا كان ذلك ممكنا مع هذا الأسلوب لإضافة مسار صورة الشعار أو يجب إنشاء جدول جديد لإضافة الشعار في الصور وأيضا إنشاء controller logo and model…)؟[/b][/center]

[right]

الطريقة صحيحة ولايجب عليك فصل الشعار بجدول مستقل … بل اني اراى فصل الشعار بجدول مستقل خطأ

اما طريقة رفع الصورة فلديك خيارين

اولا رفع الصورة على السيرفر ثم حفظ رابط او اسم الصورة في جدول الشركات بداخل حقل الشعار

ثانيا رفع الصورة وحفظ نفس الصورة في قاعده البيانات مباشرة في جدول الشركات بداخل حقل الشعار

تستطيع اخوي الاستزادة من هذه الروابط المفيدة جدا لمثل طلبك

How to upload a file using a model

Saving files to a blob field in the database

واي شي ثاني انا جاهز

بالتوفيق اخوي

[/right]

[right]

السلام عليكم ورحمة الله.

قمت بدمج الصورة في نفس كونترول وموديل الجدول سوسييتي إلا أنني لم أنجح في ذالك. بحيث لم أستطع تسجيل شركة جديدة.

الكود هو [/right]

Code in Model :


public function rules(){

return array(

array('Nom', 'required'),

array('Nom', 'length', 'max'=>75),

array('Logo', 'file', 'types'=>'jpg, gif, png'), 

); }

Code in Controller :


public function actionCreate()  {

$this->layout="main";                 

$model=new Societes;

if(isset($_POST['Societes'])){  

$model->attributes=$_POST['Societes']; 

$model->Logo=CUploadedFile::getInstance($model,'Logo'); 


if($model->save()) 

$model->Logo->saveAs('path/images');                               

$this->redirect(array('view','id'=>$model->Id));                }

$this->render('create',array(

'model'=>$model,

));     }

Can you help me friend , Thanks

وعليكم السلام ورحمة الله وبركاته

انت ذكرت انك لم تستطيع تسجيل شركة جديدة لاكن لم تذكر ماهو الخطأ ولا نوع الخطأ الي يظهر لك

وايضا ماذا عرفت حقل اللوجو في قاعده البيانات ؟

ولاكن مبدأيا عندي ملاحظات على الكود الي انت وضعته

في السطر


$this->redirect(array('view','id'=>$model->Id));

هل يوجد حقل بقاعده البيانات للـ

Id

؟

لاني لم ارى هذا الحقل في الـ

Model rules

الذي وضعته في الاعلى

النقطة الاخرى هي انه يجب وضع عملية التوجية لصفحة اخرى بنفس امر الشرط الخاص بحفظ الصورة بمعنى ان يكون الكود كالتالي


if($model->save()){

   $model->Logo->saveAs('path/images');

   $this->redirect(array('view','id'=>$model->Id));

  }

بدلا من


if($model->save())  

$model->Logo->saveAs('path/images');                                

$this->redirect(array('view','id'=>$model->Id));

اما النقطة الاهم اخوي فهي في هذا السطر


$model->Logo->saveAs('path/images');

هل المجلد

path

موجود فعلا على السيرفر ؟ وهل يوجد بداخلة فعلا مجلد

images

؟؟؟

لاأعتقد انه موجود ولاكن بقولك كيف تسوية

على الرووت الاساسي لإطار العمل … اي بجانب مجلد

css

و

assets

قم بإنشاء مجلد جديد وسمية مثلا

images

واعطية صلاحيات الكتابة اذا كنت تستخدم لينكس او يونكس او ماك

chmod 777 images

وبعد ذلك قم بتغير السطر ليصبح


$model->Logo->saveAs(Yii::app()->basePath . '/../images/' . $model->image);

كذا ان شاء الله مشكلتك تنحل بإذن الله

وعشان تعرض الصور في الفيو تقدر تستخدم


<?php echo CHtml::image( check the manual i don't remember what is go here ); ?>

بالتوفيق اخوي

That’s my code.

[color="#FF0000"]In controller (creat) :[/color]


$model=new Societes;


		if(isset($_POST['Societes']))

		{

			$model->attributes=$_POST['Societes'];

                        $model->logo=CUploadedFile::getInstance($model,'Logo');

			if($model->save())

            $model->Logo->saveAs(Yii::app()->basePath . '/images/' . $model->Logo);

            //  $model->logo->saveAs('path/images'); 

				$this->redirect(array('view','id'=>$model->Id));

		}


		$this->render('create',array(

			'model'=>$model,

		));

[color="#FF0000"]code of Model :[/color]


public function rules()

	{

		return array(

			array('Nom', 'required'),

			array('Nom', 'length', 'max'=>75),

                        array('Logo', 'file', 'types'=>'jpg, gif, png'),

			array('Id, Nom, Logo', 'safe', 'on'=>'search'),

		);

	}

[color="#FF0000"]and the code of _form for add a new company with the pecture of logo :[/color]


<div>

		<?php echo $form->labelEx($model,'Nom'); ?>

		<?php echo $form->textField($model,'Nom',array('size'=>40,'maxlength'=>45)); ?>

		<?php echo $form->error($model,'Nom'); ?>

	</div>


  <div>

 <?php echo CHtml::form('','post',array('enctype'=>'multipart/form-data')); ?>


<?php echo CHtml::activeFileField($model, 'Logo'); ?>


<?php echo CHtml::endForm(); ?>

</div>

I need to your help Thanks friend

حياك الله اخوي يظهر انك من النوع العجول شوي

لاني لاحظت اخطاء كثير بالكود وغير مطابقة للدرس وغير مطابقة ايضا للرد الي كتبتة لك فوق

وايضا اقترح عليك دائما تستخدم الحروف السمول بدل الكابيتال في قواعد البيانات لتجنب مشاكل التوافقية مع قواعد البيانات الاخرى مستقبلا

ولاكن تبشر انا سويت لك المثال وطبقتة لك وجربتة بجهازي واشتغل عندي تمام التمام

ورفعته لك مع المرفقات … بالتوفيق اخوي

[right]ياأخي الكريم وجدت الملف فارغ من الكود يحتوي فقط على ملفات[/right]

controllers, models, view

but are empty

[right]قمت بنزيل الملف من المنتدى للتأكد وفتح معاي كامل مع الكود بدون مشاكل لاكن للإحتياط بعيد رفعه … وايضا بحط الكود هنا في المنتدى


[left]DB Schema:


CREATE TABLE IF NOT EXISTS `societes` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `nom` varchar(75) NOT NULL,

  `logo` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

Model :


class Societes extends CActiveRecord

{

	public $logo;

...

...

	public function rules()

	{

		return array(

			array('nom', 'required'),

			array('nom', 'length', 'max'=>75),

			array('logo', 'file', 'types'=>'jpg, gif, png'),

			array('id, nom, logo', 'safe', 'on'=>'search'),

		);

	}

.....

.....

}

Controller (create):


class SocietesController extends Controller

{

.....

.....

public function actionCreate()

	{

		$model=new Societes;


		if (isset($_POST['Societes'])) {

			$model->attributes = $_POST['Societes'];

			$model->logo = CUploadedFile::getInstance($model, 'logo');

			if ($model->save()){

			$model->logo->saveAs(Yii::app()->basePath . '/../images/' . $model->logo);

			$this->redirect(array('view', 'id' => $model->id));

			}

		}


		$this->render('create', array(

			'model' => $model,

		));

	}

.....

.....

}

views/societes/_form.php :


<div class="form">


<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'societes-form',

	'method' => 'post',

	'htmlOptions' => array('enctype' => 'multipart/form-data'),

	'enableAjaxValidation'=>false,

)); ?>


	<p class="note">Fields with <span class="required">*</span> are required.</p>


	<?php echo $form->errorSummary($model); ?>


	<div class="row">

		<?php echo $form->labelEx($model,'nom'); ?>

		<?php echo $form->textField($model,'nom',array('size'=>60,'maxlength'=>75)); ?>

		<?php echo $form->error($model,'nom'); ?>

	</div>


	<div class="row">

		<?php echo $form->labelEx($model,'logo'); ?>

		<?php echo $form->fileField($model,'logo'); ?>

		<?php echo $form->error($model,'logo'); ?>

	</div>


	<div class="row buttons">

		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>

	</div>


<?php $this->endWidget(); ?>


</div><!-- form -->

views/societes/view.php :


<h1>View Societes #<?php echo $model->id; ?></h1>


<?php $this->widget('zii.widgets.CDetailView', array(

	'data'=>$model,

	'attributes'=>array(

		'id',

		'nom',

		array(

			'name' => 'logo',

			'type' => 'image',

			'value' => Yii::app()->baseUrl . '/images/' . $model->logo,

		),

	),

)); ?>

[right]وضعت لك المهم من الكود والي راح تحتاجة …

حاول تتبعه بدقة وان شاء الله ان مشكلتك بتنحل لان الكود جربتة بنفسي واشتغل معاي بدون مشاكل

وحاول تنزل الملف مرة ثانية وان شاء الله يشتغل معاك

موفق خير ان شاء الله

[/right][/left][/right]

Thank you verry much friend Muaid

Thanks again

اخبار حلوة والحمدلله ان مشكلتك انحلت

:rolleyes:

nice to hear that freeyii (^_^)

[right]السلام عليكم

لدي مشكلة في الشعار. في القواعد لم أختار الشعار مطلوب ولكن عندما أقوم بحفظ التسجيلات ان كان الشعار فارغ لا تفعل الحفظ أو التحديث.

لذلك يجب أن يكون الشعار ليس فارغا لحفظ تسجيل جديد أو تحديثه ولكن أنا لم أختره مطلوبا في القواعد!

حقا أنا لم أفهم لماذا يجب أن يكون الشعار ليس فارغا حتى أقوم بحفظ تسجيلات جديدة.[/right]


public $logo;

public function rules(){

return array( 

array('nom, active', 'required'),

array('nom', 'length', 'max'=>75),

array('description', 'length', 'max'=>120),

array('logo', 'file', 'types'=>'jpg, gif, png'),                         array('active','length','max'=>10),

array('id, nom, description, logo, active', 'safe', 'on'=>'search'), ); 

}

[right]وعليكم السلام

قم بتعديل السطر التالي

[left]


array('logo', 'file', 'types'=>'jpg, gif, png'),

[/left]

إلى

[left]


array('logo', 'file', 'types'=>'jpg, gif, png', 'allowEmpty'=>true),

[/left]

بإذن الله ان التعديل السابق راح يحل مشكلتك

[/right]

hi couldn’t u find a way to solve thr RTL problem in the forum?

we all RTL languages should ask the forum leader to active RTL feature. if u agree signal me plz

thx

@Ali Borjian

i replayed in PM.

@Muaid

مجهود جميل أخ مؤيد

مشكور جدا عليه

عندي تسؤلات كثيرة

لأني كنت باقوم بالبرمجة عن طريق كود ايجنايتر

ويمكن سهولته ووضوحه خلاني ما اقدرش اغير البرمجة بيه لفترة كبيرة

لكن للأسف المميزات الكتيرة اللي موجودة في

Yii

اجبرتني على الدخول إليه

لكن للأسف عندي بعض المشاكل إن شاء الله هابقى اعرضها عليك لمساعدتي في حلها

وبصراحة الأهم من المشاكل إن عندي نقاط كتير مش فاهمها

اسف على الإطالة وأشكرك على المجهود اللي في المنتدى

[right]لا أرى في القسم الخاص بالعربية اي مشاركات جديدة

ربما نحتاج الى التعريف بهذا الاطار في منتدياتنا و مدوناتنا و نعطيه اهتمام اكبر

هل هناك مشكلة في العالم العربي مع

yii ??[/right]

الف شكر ليك ياغالى والله استفدنا كثيرا من مشاركتكم :D