نقل قول: ایجاد دسته بندی مطالب
سلام من برای دسته بندی مطالبم در طراحی چه با asp.net , و چه با code iginiter اومدم کلا جدولهای ورودپرس رو برسی کردک دیدم خوب و دقیق هرکاری رو انجام میده شکل چدول دسته بندی مطالب به این شکل میشه
ضمیمه 123922
نگاه هر دسته یا خودش والد هست و یا پدر و یا پدرانی داره دسته ها همه در جدول term هستن اگر بدون والد باشه که پدرش رو من 0 در نظر میگرفتم یعنی در جدول termtaxonomy فیلد ستون parent رو 0 پر میکنم در غیر این صورت ایدی پدر رو بهش میدم
یه مثلا ساده
id category parent
0 اموزشی 1
1 برنامه نویسی وب 2
1 برنامه نویسی ویندوز 3
2 پی اچ پی 4
و الی اخر
حالا نحوه ذخیره کرده که یه دستور insert هست که طبق فرمایش خودتون بلدی
نحوه select هم به این صورت هست و دخیره مطلب با دسته پی اچ پی اینه که ایدی term رو ذخیره کن و موقع فراخونی که بخواهیی پست رو نمایش بدی بر اساس ایدی term موجود در جدول پست ها به جدول termtaxonomy یک select بزن و خود دسته و پدرش رو برگردون
نقل قول: ایجاد دسته بندی مطالب
میشه یک نمونه کد بزارین برای insert کردن مطلب دخل دسته بندی برنامه نویسی وب یا هرچیزی که بشه توی مثال مشخص کرد. ممنونم
نقل قول: ایجاد دسته بندی مطالب
لطفا پاسخ بدین نتونستم مشکلمو حل کنم
نقل قول: ایجاد دسته بندی مطالب
شما در کنترلری که قراره فایل view برای درج مطلب رو نشون بده ، باید تمام دسته ها را ارسال کنید .
اول اینو انجام بدید ، بعد بقیه شو بگم .
$data['data'] = $this->model_section->get_subsection();
$this->_out('admin','article','pageArticle',$data);
مدل section همون category شماست .
توی select,option از فایل view ، آیدی های category میشن value و نام category ها میشن label
<select name="Section">
<?php foreach($data as $row){ ?>
<option value="<?php echo $row->section_id ;?>"><?php echo $row->title ;?></option>
<?php }?>
</select>
نقل قول: ایجاد دسته بندی مطالب
سلام
میشه کامل تر توضیح بدین؟ تو فولدر Model چه کدی بنویسم براش؟
دستور _out کاربردش چیه؟ منقرض نشده توی نسخه جدید؟ ( داخل user_guide ننوشته بودن )
نقل قول: ایجاد دسته بندی مطالب
شما گفتید حذف ، ویرایش و ... رو یاد گرفتید .
این هم شبیه بقیه ست .
شما احتمالا تو فولدر مدل برای هر table یک مدل نوشتید . درسته ؟
حالا برای مدل section یا همون category خودتون باید یک مدل نوشته باشید که یکی از متدهاش این باشه :
public function get_subsection(){
$data = $this->db->get('tb_section');
return $data->result();
}
به جای _OUT شما دستور load->view رو استفاده کنید :
$this->load->view('article/newArticle',$data)
نقل قول: ایجاد دسته بندی مطالب
حقیقتش با model مشکل دارم. خیلی وقت پیش هم داشتم تمرین میکردم ولی باز همین مشکلو داشتم. کدهامو ببینید:
Controller
public function index(){ $this->load->model('section_model'); $data['test'] = $this->section_model->get_category_content(); $this->load->view('content',$data); }
Model
class section_model extends CI_Model{
function get_category_content(){ $data = $this->db->get('category'); return $data->result(); }
View
<?phpforeach($data->result() as $row){
echo $row->id;}
?>
نقل قول: ایجاد دسته بندی مطالب
کد view رو باید اینطور تغییر بدید .
<?php foreach($test as $row)
{echo $row->id;}?>
چون اطلاعات از کنترلر به view ارسال میشن . الان اینو بنویسید ببینید خروجی صحیحه یا نه ؟
نقل قول: ایجاد دسته بندی مطالب
خطاهای زیر داده میشه
نقل قول:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: test
Filename: views/content.php
Line Number: 4
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/content.php
Line Number: 4
نقل قول: ایجاد دسته بندی مطالب
اسم فایل مدل model_section.php :
<?php
class Model_section extends CI_Model
{
public function get_all(){
$data = $this->db->get('tb_section');
return $data->result();
}
}
نقل قول: ایجاد دسته بندی مطالب
خطاها رفع شد
میخوام جدول content را نمایش بدم که فیلدهای ( id, category_id , title, content ) شامل میشه. category_id مربوط به جدول دسته بندی ها میشه
model این قسمت چی میشه؟ توی php عادی چندین بار نوشتم اما از روزی که CI تمرین میکنم همه چیزو قاطی کردم
نقل قول: ایجاد دسته بندی مطالب
فرم view مربوط به content رو درست کردید ؟ باید دسته هایی که میخونید رو به درستی تو سلکت آپشن نمایش بدید اول .
<select name="Section">
<?php foreach($data as $row){ ?>
<option value="<?php echo $row->section_id ;?>"><?php echo $row->title ;?></option>
<?php }?>
</select>
اگه اینو درست کردید حالا اطلاعات رو از این فرم به کنترلر بفرستید و بعد برید سراغ کدنویسی مدل
نقل قول: ایجاد دسته بندی مطالب
بله اطلاعات داخل view نمایش داده شد.
توی پنل مدیریت تمام پست ها نمایش داده بشه ( این مورد که ساده هست )، ولی چون جدول مطالب فیلدی بنام category_id داره که فقط آیدی دسته بندی را داخلش ذخیره میکنم اگر get کنم نمایش پست هارو، فیلد مربوط به دسته بندی رو هم به شکل عدد نشون میده ( آیدی 2 و... ). چطوری توی مدیریت بجای نمایش آیدی ذخیره شده داخل جدول مطالب؛ نام اصلی دسته بندی از جدول category را ارسال کنم؟
نقل قول: ایجاد دسته بندی مطالب
شما تو کدایگنایتر میتونید ، تو قسمت view هم به مدل دسترسی داشته باشید .
اونجایی که بهتون عدد میده ، یکی از متدهای مدل section رو به این صورت فراخوانی میکنید :
$this->model->selectId($category_id)
این رو هم در مدل section باید داشته باشید
public function selectId($id){
$this->db->where('section_id',$id);
$result = $this->db->get('tb_section');
return $result->result();
}
نقل قول: ایجاد دسته بندی مطالب
پریا خانم، کنترلر کد دومی که دادین چی میشه؟ باید دوتا دستور where گذاشت درسته؟ اولین نام آیدی category را برگردونه و دومی تمام فیلدهارو نمایش بده؟
نقل قول: ایجاد دسته بندی مطالب
الان شما دارید مدیریت رو درست میکنید یا قسمت کاربری ؟
اگه تو قسمت مدیریت هستید که ابتدا لیستی از content رو با نمایش فیلدهایی مثل title , date و ... نشون میدید ، بعد احتمالا روی دکمه ی edite کلیک میکنید تا مشخصات بیشتر اون رو نمایش بدید . درسته ؟
از این به بعد رو مشکل دارید ؟ که section اون مطلب و بقیه ی فیلدهاش رو چطور نشون بدید ؟
نقل قول: ایجاد دسته بندی مطالب
بله. البته فیلم برای ویرایش و حذف کردن پیدا کردم اما توی اون فیلم فقط یدونه جدول news بود و مثل الان جدولی برای ایجاد دسته بندی و جدول ارسال مطالب وجود نداشت. من میخوام وقتی کاربر ویرایش را زد، بجای اینکه از جدول content فیلد id_category را نمایش بده ( مثلا 2 ) ، نام دسته بندی را بنویسه ( که 2 در جدول category اینترنت هست ).
نقل قول: ایجاد دسته بندی مطالب
این کدها رو من قبلا تو اولین برنامه ام نوشتم ، ببینید و ایده بگیرید .
با این فرض که شما قسمت لیست شدن مطالب رو نوشتید و حالا میخواید روی دکمه ی edit کلیک کنید
کنترلر :
public function editArticle(){
$data = $this->model_article->selectId();
foreach ($data as $row){
$data['id'] = $row->article_id;
$data['sid'] = $row->ection_id;
$data['topic'] = $row->topic;
$data['keywords'] = $row->keywords;
$data['summery'] = $row->summery;
$data['content'] = $row->content;
$data['writer'] = $row->writer;
}
$data['sdata'] = $this->model_section->get_subsection();
$this->_out('admin','article','editArticle',$data);
}
مدل article و متد selectId :
public function selectId(){
$id = $this->uri->segment(4);
$this->db->where('article_id',$id);
$this->db->order_by("article_id", "DESC");
$result = $this->db->get('mblog_article');
return $result->result();
}
قسمتی از مدل section و متد get_subsection
public function get_subsection(){
$data = $this->db->get('mblog_section');
return $data->result();
}
VIEW: مربوط به editArticle
<?php echo validation_errors();
echo form_open_multipart('admin/manage_article/updateArticle');
echo form_hidden('id',$id);
?>
<table border="0" style="text-align:right">
<tr >
<td><span>عنوان :</span></td>
<td><?php
echo form_input('Topic',$topic);
?></td>
</tr>
<tr>
<td><span>کلمات کلیدی :</span></td>
<td><?php echo form_input('Keywords',$keywords);?></td>
</tr>
<tr>
<td><span>بخش</span></td>
<td>
<select name="Section">
<?php foreach($sdata as $row){ ?>
<option value="<?php echo $row->section_id ;?>" <?php if($sid==$row->section_id){?> selected="selected" <?php }?>>
<?php echo $row->title ;?></option>
<?php }?>
</select>
</td>
</tr>
<tr>
<td><span>تصویر :</span></td>
<td><input type="file" name="userfile" size="20"/></td>
</tr>
<tr>
<td><span>چکیده :</span></td>
<td>
<?php echo form_textarea('Summery',$summery,'class="redactor" ');?>
</td>
</tr>
<tr>
<td><span>متن :</span></td>
<td>
<?php echo form_textarea('Content',$content,'class="redactor" ');?>
</td>
</tr>
<tr>
<td></td>
<td><?php echo form_submit('Submit','ویرایش','class="submit "');?></td>
</tr>
</table>
<?php echo form_close();
}
?>