رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اشکال در pagination آرشیو ماهانه پروژه بلاگ (حل شد)
#1
وقتی برای کدهای مربوط به نمایش آرشیو ماهانه صفحه بندی را اجرا میکنیم صفحه بندی انجام میشود ولی وقتی روی هر صفحه کلیک میکنیم خطای Undefined offset:1 ایجاد میشود
کد آرشیو ماهانه:

    public function actionMonth($month, $page = 1)
    {
        list($year, $month) = explode('-', $month);
        $startTs = JDF::jmktime(0, 0, 0, $month, 0, $year);
        $month++;
        if($month > 12) {
            $month = 0;
            $year++;
        }
        $itemsPerPage = 2;
        $endTs = JDF::jmktime(0, 0, 0, $month, 0, $year);
        $criteria = new CDbCriteria;
        $criteria->addColumnCondition(array('confirmed'=>1,'user_id'=>Yii::app()->user->id));
        $criteria->addBetweenCondition('ts', $startTs, $endTs);
        $totalPosts = Posts::model()->count($criteria);
        $pageCount = ceil($totalPosts / $itemsPerPage);
        $page = max(1, intval($page));
        $criteria->order = 'id DESC';
        $criteria->limit = $itemsPerPage;
        $criteria->offset = ($page - 1) * $itemsPerPage;
        $posts = Posts::model()->findAll($criteria);
        $month--;
        $this->render('month', compact('endTs', 'month', 'posts', 'pageCount', 'page'));
    }

و کد مربوط به view آن

<div class="jumbotron">
    <h2 align="center"><?php echo 'آرشیو  ماهانه'.'  '.JDF::jdate('F  Y', $endTs); ?></h2>
</div>
<?php foreach($posts as $post) : ?>
<?php $this->renderPartial('_view', compact('post')); ?>
<?php endforeach; ?>
<?php if($pageCount > 1) : ?>
<ul class="pagination">
    <?php for($i = 1; $i <= $pageCount; $i++) : ?>
    <li<?php echo ($i == $page ? ' class="active"' : ''); ?>>
        <a href="<?php echo ($i == $page ? '#' : $this->createUrl('month', array('month' => $month, 'page'=>$i))); ?>"><?php echo $i; ?></a>
    </li>
    <?php endfor; ?>
</ul>
<?php endif; ?>


لطفا راهنمایی کنید
با تشکر
پاسخ
تشکر شده توسط:
#2
با print_r یا Tools::debug (اگه مطابق آموزش ساخته باشین) یا CVarDumper::dump مقدار ارایه رو نمایش بدین ببینیم چی توشه.
پاسخ
تشکر شده توسط: hfaal
#3
array
(
    0 => Posts#1
    (
        [CActiveRecord:_new] => false
        [CActiveRecord:_attributes] => array
        (
            'id' => '5'
            'user_id' => '2'
            'category_id' => '7'
            'title' => 'گزارش خبرنگار اردنی از سفر به تهران: از جوجه‌کباب و فسنجون تا حجاب در پیست دیزین'
            'abstract' => 'در اینجا هیچ چیزی به تو این احساس را نمی دهد که در تهرانی هستی که از آن می شنوی. البته این چیز عجیبی در ایران نیست. ایرانی ها در تعامل با قوانین مربوط به لباس، دوگانگی دارند.'
            'more' => '<p>&nbsp;خانم \" نهاد\" خبرنگار اردنی شبکه عربی \" آلان\" در سفر به تهران، گزارش هایی درباره بخش های متنوع زندگی ساکنان پایتخت ایران با عنوان&nbsp; (طهران كما لم نرها من قبل - قصتي مع \"الجوجة كباب\") \"<span dir=\"rtl\"> ‫تهران؛ آنگونه که تا کنون ندیده ایم‬</span>&lrm; - داستان من با جوجه کباب\" تهیه و از این شبکه پخش کرده است.</p>

            'ts' => '1432626937'
            'confirmed' => '1'
        )
        [CActiveRecord:_related] => array()
        [CActiveRecord:_c] => null
        [CActiveRecord:_pk] => '5'
        [CActiveRecord:_alias] => 't'
        [CModel:_errors] => array()
        [CModel:_validators] => null
        [CModel:_scenario] => 'update'
        [CComponent:_e] => null
        [CComponent:_m] => null
    )
)
پاسخ
تشکر شده توسط:
#4
خوب توی این ماه فقط یه رکورد پیدا شده که اندیسش 0 هست. شما اندیس 1 رو دارین توی کدتون استفاده میکنید که پیغام خطا میده و میگه چنین اندیسی وجود نداره. کد ویوی view_ رو هم بگذارین.
پاسخ
تشکر شده توسط: hfaal
#5
array
(
    0 => Posts#1
    (
        [CActiveRecord:_new] => false
        [CActiveRecord:_attributes] => array
        (
            'id' => '14'
            'user_id' => '2'
            'category_id' => '8'
            'title' => 'الهام‌بخش‌ترین و معنادار‌ترین جملات بیل گیتس و استیو جابز'
            'abstract' => 'شاید بخش مهمی از دیدگاه ها و نظریات، اسلوب فکری و خط مشی زندگی بزرگانی چون جابز و گیتس را بتوان از نوع مدیریت آنها و حتی محصولاتی که برای بشر امروز تولید کرده اند به دست آورد'
            'more' => '<p><span style=\"font-size: 13px; text-align: start; background-color: #ffffff;\">دو ذهن بزرگ&zwnj; با دیدگاه های متفاوت و روش های مختلف در مدیریت؛ بزرگترین و تأثیر&zwnj;گذار ترین شخصیت های یک قرن گذشته در صنعت و تکنولوژی. این دو شخصیت به همان اندازه که با هم رقابت داشتند، از هم آموختند، به یکدیگر الهام داده اند و همچنین چیز&zwnj;های زیادی برای درس دادن به ما دارند.</span></p>

<p dir=\"RTL\" style=\"font-size: 13px; background-color: #ffffff;\" align=\"justify\"><span lang=\"FA\">شاید بخش مهمی از دیدگاه ها و نظریات، اسلوب فکری و خط مشی زندگی بزرگانی چون جابز و گیتس را بتوان از نوع مدیریت آنها و حتی محصولاتی که برای بشر امروز تولید کرده اند به دست آورد؛ اما قطعا بیان نظریات و دیدگاه های این دو از خلال جملات قصار، کوتاه و الهام بخش آنها به شکلی روشن تر می&zwnj;تواند ما را با دید ایشان در خصوص مسائل آشنا سازد.</span></p>

<p dir=\"RTL\" style=\"font-size: 13px; background-color: #ffffff;\" align=\"justify\"><span lang=\"FA\">در ای; تمرکز و سادگی یکی از اصول راهنمای من در زندگی است.</span></p>

<p dir=\"RTL\" style=\"font-size: 13px; background-color: #ffffff;\" align=\"justify\"><span lang=\"FA\">10 ـ زمان شما محدود است. لذا آن را برای زندگی کردن در جهان شخصی دیگر هدر ندهید.</span></p>'
            'ts' => '1435195236'
            'confirmed' => '1'
        )
        [CActiveRecord:_related] => array()
        [CActiveRecord:_c] => null
        [CActiveRecord:_pk] => '14'
        [CActiveRecord:_alias] => 't'
        [CModel:_errors] => array()
        [CModel:_validators] => null
        [CModel:_scenario] => 'update'
        [CComponent:_e] => null
        [CComponent:_m] => null
    )
    1 => Posts#2
    (
        [CActiveRecord:_new] => false
        [CActiveRecord:_attributes] => array
        (
            'id' => '13'
            'user_id' => '2'
            'category_id' => '8'
            'title' => 'وبلاگ نویسان میلیونر'
            'abstract' => 'وبلاگ نویسان موفق به طور معمول درآمد خوبی از این راه کسب می کنند. این افراد با کمی شانس و ارائه محتوایی حرفه ای و درخشان این فعالیت نیمه وقت را به شغلی تمام وقت و پولساز برای خود مبدل کرده اند.'
            'more' => '<p dir=\"RTL\"><span lang=\"FA\">برای اکثر ما وبلاگ نویسی چیزی جز یک فعالیت تفریحی و نیمه وقت نیست و در وبلاگ خود پیرامون موضوعاتی که به آنها علاقمند هستیم، چیزهایی می نویسیم. اما همواره استثناهایی وجود دارند و وبلاگ نویسان موفق به طور معمول درآمد خوبی از این راه کسب می کنند. این افراد با کمی شانس و ارائه محتوایی حرفه ای و درخشان این فعالیت نیمه وقت را به شغلی تمام وقت و پولساز برای خود مبدل کرده اند. </span></p>

<p dir=\"RTL\"><span lang=\"FA\">به گزارش \"گروه علم و فناوری\" عصرایران، وبلاگ نویسی ممکن است شغلی ایده

<p dir=\"RTL\"><span lang=\"FA\">هافینگتون پست در حال حاضر چیزی بیش از یک وبلاگ است اما تبدیل شدن به منبع خبری معتبر و یکی از محبوب&zwnj;ترین سایت های جهان تنها طی چند سال رخ داد. آریانا هافینگتون در سال 2005 هافینگتون پست را راه اندازی کرد و در حال حاضر درآمد 2.3 میلیون دلاری از آن کسب می کند. بر همین اساس است که وی ثروتمندترین وبلاگ نویس حال حاضر جهان شناخته می شود.</span></p>'
            'ts' => '1435195099'
            'confirmed' => '1'
        )
        [CActiveRecord:_related] => array()
        [CActiveRecord:_c] => null
        [CActiveRecord:_pk] => '13'
        [CActiveRecord:_alias] => 't'
        [CModel:_errors] => array()
        [CModel:_validators] => null
        [CModel:_scenario] => 'update'
        [CComponent:_e] => null
        [CComponent:_m] => null
    )
)

با عرض معذرت محتوای آرایه برای بیشتر از یک رکورد را دوبار ارسال میکنم
پاسخ
تشکر شده توسط:
#6
کد posts/_view.php رو نگذاشتین.
پاسخ
تشکر شده توسط: hfaal
#7
<div class="panel panel-primary">
    <div class="panel-heading">
        <a class="btn btn-info" href="<?php echo Yii::app()->createUrl('posts/view', array('id'=>$post->id)); ?>"><?php echo CHtml::encode($post->title); ?></a>
    </div>
    <div class="panel-body">
        <p><?php echo nl2br(CHtml::encode($post->abstract)); ?></p>
        <p>
            
            <span class="fa fa-cube fa-fw pull-left"></span><a href="<?php echo Yii::app()->createUrl('categories/view', array('id'=>CHtml::encode($post->category->id))); ?>"> <span class="btn btn-primary btn-xs pull-left"><?php echo CHtml::encode($post->category->name); ?></span></a>
            <span class="fa fa-tags fa-fw"></span>
            <?php foreach($post->tags as $tag) : ?>
            <?php if(Posttags::model()->exists('post_id=:postId AND tag_id=:tagId AND confirmed=1', array(':postId'=>$post->id,':tagId'=>$tag->id))) : ?>
            <a href="<?php echo Yii::app()->createUrl('tags/view', array('id'=>$tag->id)); ?>" class="btn btn-success btn-xs"><span><?php echo CHtml::encode($tag->name); ?></span></a>
            <?php endif; ?>
            <?php endforeach; ?>
        </p>
    </div>
    <div class="panel-footer">
        <img alt="<?php echo CHtml::encode($post->user->id); ?>" src="<?php echo Yii::app()->homeUrl; ?>photos/<?php echo ($post->user->photo ? $post->user->id.'.jpg' : '0.jpg'); ?>">
        <span class="text-muted"><?php echo $post->user->name .' '. JDF::jdate('l j F Y - H:i', $post->ts); ?></span>
        <?php if($post->more) : ?>
        <a class="btn btn-primary btn-xs pull-left" href="<?php echo Yii::app()->createUrl('posts/view', array('id'=>$post->id)); ?>" ><span class="fa fa-leanpub fa-lg"></span>
        ادامه مطلب</a>
        <?php endif; ?>
    </div>
</div>
پاسخ
تشکر شده توسط:
#8
من که توی این کدها اندیس 1 ندیدم. متن کامل خطا رو بگذارین ببینم تو کدوم خط Error تولید شده. ضمناً کدها رو بجای تگ Code توی تگ PHP بصورت زیر بگذارین:
کد:
[shcode=php]
// put codes here
[/shcode]
پاسخ
تشکر شده توسط: hfaal
#9
با همکاری استاد و با اضافه کردن متغیر year در ویو مشکل حل شد
با تشکر از استاد محترم
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان