سولاتی در مورد موردفریم ورک ورک یی

[rtl]

[font="Tahoma"]

با سلام

من 2تا سوال در مورد فریم ورک یی داشتم.

1- چطوری می شه به یه فرم کپچا اضافه کرد؟

2- برای پیج های استاتیک مثل پیچ about خود فریم ورک چطوری میشه از دیتابیس اضافه کرد. یابه طور کلی چطوری می شه بهش مدل اضافه کرد؟

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

[/font]

[/rtl]

[rtl]در مورد سوال دومتون اگر بشه بهش مدل اضافه کرد که دیگه اسمش استاتیک نیست. این گونه صفحات صرفا برای استفاده های محدود است که همانند همان صفحه about خیلی به ندرت به کار گرفته می شوند.

اما در مورد سوال اولتون اگر از به مدل contact ای که خود Yii ایجاد می کنه نگاهی بندازید به راحتی می تونید یک کپچا ایجاد کنید.

[/rtl]

[right][rtl][font="Tahoma"]

البته فکر کنم منظور ایشون ماژول صفحات استاتیک باشه که در CMS ها مرسوم و پر استفاده است. مثل قسمت pages در وردپرس

ولی کلیت سوال رو نفهمدیم، یعنی کل فرایند نوشتن ماژول شرح داده شه؟ انجام این کار مثل باقی سناریو های کار با دیتابیس هست، به دموی بلاگ فریمروک رجوع کنید و با ایده گرفتن از اون ماژول جدیدتون رو بنویسید

[/font][/rtl][/right]

[rtl]

[font="Tahoma"]

با سلام

در رابطه با سوال اول :

من از فرم کپچا سعی کردم کپی کنم اما این اررو رو داد :


CInlineAction and its behaviors do not have a method or closure named "validate".

سوال دوم هم حل شد.

[/font]

[/rtl]

یه سوال اینجا دکمه تشکر نداره؟!

همین جا تشکر می کنم از دوستان عزیز.

اساتید گرامی می شه بگید مشکل از کجاست که ارور بالا رو می ده؟!

ممنون

[right][rtl][font="Tahoma"]

لطفا کد مدل و کنترلر و فرم اتون رو بگذارید

در مدل فقط قسمت rules()

در کنترلر فقط اکشنی که کپچا داره

و فرم هم فقط قسمتی که کپچا رو اضافه کردید

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

[/font][/rtl][/right]

[rtl]

[font="Tahoma"]

با سلام

تفاوتشون رو که احساس کردم contact form از CFormModel مشتق شده!

اما کلاس مدل فرم مورد نظرم از CActiveForm.

ارور رو هم بالا ذکر کردم.

ممنون

[/font]

[/rtl]

[rtl]چرا همون پایین سمت راست هر پست یک دکمه + داره که کار همان تشکر را می کند!![/rtl]

[font="Tahoma"][rtl]اگه مدل وابسته به فرم از کلاس CFormModel مشتق شده باشه که راحته و کافیه به صفحه contact.php پروژه Skeleton نگاه کنید (همون پروژه ای که خود Yii بطور خودکار میسازه). اما اگه مدلتون از کلاس CActiveRecord مشتق شده، باید مراحل زیر رو انجام بدین با فرض اینکه این کار رو میخواین برای actionRegister از کنترلر UserController انجام بدین:

1- توی متد accessRules از کنترلر، این rule رو اضافه کنید:[/rtl][/font]


array('allow',

    'actions' => array('register', 'captcha'),

    'users' => array('*'),

),

[font="Tahoma"][rtl]2- اکشن register رو اینطوری به کنترلر اضافه کنید:[/rtl][/font]


/**

 * Register a new model.

 * If registration is successful, the browser will be redirected to the 'view' page.

 */

public function actionRegister() {

    $this->layout = '//layouts/column1';

    $model = new User;

    $model->scenario = 'register';

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

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

        if($model->save())

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

    }

 

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

        'model' => $model,

    ));

}

[font="Tahoma"][rtl]3- به مدل User این فیلد رو اضافه کنید:[/rtl][/font]


public $verifyCode;

[font="Tahoma"][rtl]4- این validation ruleها رو به مدل اضافه کنید:[/rtl][/font]


array('verifyCode', 'captcha', 'on' => 'register', 'allowEmpty'=>!CCaptcha::checkRequirements()),

array('verifyCode', 'required', 'on' => 'register'),

[font="Tahoma"][rtl]5- این label رو به انتهای آرایه متد attributeLabels اضافه کنید تا برای CAPTCHA عنوان مناسب ظاهر بشه:[/rtl][/font]


'verifyCode' => 'Security Code',

[font="Tahoma"][rtl]6- یک ویوی جدید توی پوشه views/user به اسم register.php ایجاد کنید:[/rtl][/font]


<?php

/* @var $this UserController */

/* @var $model User */

/* @var $form CActiveForm */

 

$this->breadcrumbs=array(

    'Users'=>array('index'),

    'Register',

);

?>

 

<h1>Register a new user</h1>

 

<div class="form">

 

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

    'id'=>'user-form',

    '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,'username'); ?>

        <?php echo $form->textField($model,'username',array('size'=>60,'max  length'=>255)); ?>

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

    </div>

 

    <div class="row">

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

        <?php echo $form->textField($model,'email',array('size'=>60,'maxlen  gth'=>255)); ?>

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

    </div>

 

    <div class="row">

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

        <?php echo $form->passwordField($model,'password',array('size'=>60,  'maxlength'=>255)); ?>

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

    </div>

 

    <div class="row">

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

        <?php echo $form->passwordField($model,'password_repeat',array('siz  e'=>60,'maxlength'=>255)); ?>

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

    </div>

 

    <?php if(CCaptcha::checkRequirements()): ?>

    <div class="row">

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

        <div>

        <?php $this->widget('CCaptcha'); ?>

        <?php echo $form->textField($model,'verifyCode'); ?>

        </div>

        <div class="hint">Please enter the letters as they are shown in the image above.

        Letters are not case-sensitive.</div>

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

    </div>

    <?php endif; ?>

 

    <div class="row buttons">

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

    </div>

 

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

 

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

[font="Tahoma"][rtl]توی فایل view صفحه static خودتون این کد رو بنویسید:[/rtl][/font]


Yii::import('application.models.*');

[font="Tahoma"][rtl]حالا میتونید از هر مدلی که دلتون میخواد، استفاده کنید و ویژگی Lazy Loading فریمورک Yii فایل مربوطه رو بطور خودکار بارگذاری میکنه.[/rtl][/font]

[rtl][font="Tahoma"]

با سلام و تشکر بسیار از اقای شهرکی

خواستم بپرسم چطوری می تونم از WYSIWYG تو yii استفاده کنم؟

ممنون

[/font][/rtl]

[font="Tahoma"][rtl]خواهش میکنم. البته اون دکمه + زیر پست که کار همون دکمه تشکر رو توی سایر فارومها میکنه، کاربرد قشنگتری داره. درمورد سؤالتون هم اگه منظورتون tinyMCE و امثال اون هست، کافیه توی layout اصلیتون کدهاش رو درج کنید و خودش رو هم توی پوشه مناسب مثل assets یا محل دلخواه دیگه قرار بدین.[/rtl][/font]

یعنی اکستنشن یا چیزه دیگه ای نداره؟

[right][rtl][font="Tahoma"]

در رابطه با ادیتور، کمتر از دو هفته پیش یکی از دوستان سوال مشابه داشتند و در فروم پرسیدند. این هم لینک به اون پست

بعضا مشکلاتی که برمیخورید قبلا پاسخ داده شده، بد نیست جستجو کنید شاید سریعتر به پاسخ برسید :)

[/font][/rtl][/right]

[rtl][font="Tahoma"]با سلام

ممنون

بله حق با شماست.

یه سوال دیگه هم داشتم.

اینکه چطوری تو breadcrumbs راست چینش کنم و بجای home بنویسم صفحه اصلی.

مستنداتش رو نگاه کردم چیزی دستگیرم نشد.

ممنون می شم کمکم کنید.[/font][/rtl]

[rtl]این یک اکستنشن برای tinyMce است:[/rtl]

extension

[rtl][font="Tahoma"]با سلام

می شه در مورد breadcrumbs راهنمایی کنید؟ ممنون

در ضمن تو این عکس از چی اکستنشی استفاده شده؟

پپشاپیش ازتون ممنونم.[/font][/rtl]