masiha68
چهارشنبه 09 بهمن 1392, 15:11 عصر
سلام به همگی
دارم یه سی ام اس بر اساس oop می نویسم ولی در مورد درست کردن کلاس ها به مشکل بر خوردم . به نظرتون مثلا فانکشن های ارسال پست رو به صورت کلاس در بیارم یا نه کلا فانکش های insert رو یک کلاس کنم . و اینکه ایا بهتره خود فرم ها رو هم به صورت یک تابع توی کلاس قرار بدم یا نه بیرون کلاس باشن
یه جا خوندم نوشته بود باید از پترن دیزاین ها استفاده کنی
در کل الان چن روزه هی دارم طرح عوض می کنم مثلا یه بار کلاس پیجینگ رو هم توی کلاس ارسال مقاله میارم و یه بار به صورت جدا توی فرم درجش می کنم (چرا ؟) خب فرض می کنم من توی یه سیستم دیگه ای از کلاس درج مقاله استفاده کردم ولی نیازی به کلاس پیجینگ نداشت !!!!(و یا کلاس دسته بندی) حوصله میخاد بازم بیام کلاس پیجینگ رو از کلاس مقاله بیارم بیرون
این یه نمونه از کلاس من واسه درج مقاله ست که من توش کلاس پیجینگ و دسته بندی رو اضافه کردم و هرجا نیاز باشه فقط فراخوانیشون می کنم ولی حس می کنم این کار درست نیست ... به نظرتون مشکل کجای کاره ؟؟؟؟
<?php
class post
{
private $dbcon,$useaction,$tablename='post';
public $error,$result,$numpageshowonpost=15;
function __construct()
{
$this->useaction=new useaction;
require_once 'FluentPDO.php';
db::con();
$dbcon= $this->con=$this->connection ;
$mim=new db($dbcon);
return $this->dbcon=$mim;
}
function doinsertpost ($title,$body,$auther,$time,$date,$tag,$state,$cat ,$more)
{
$pop=array('title'=>$title,'body'=>$body,'auther'=>$auther,'time'=>$time,'date'=>$date,'tag'=>$tag,'state'=>$state,'cat'=>$cat,'more'=>$more);
$oo=$this->dbcon->insertInto($this->tablename,$pop)->execute() ;
if($oo)
{
echo "ارسال شد";
}
else
{
echo "شرمنده اخلاق ورزشیتم ... نشد . ببین کجا گند زدی";
}
}
####################
function showpost($where=none,$limit='15')
{
if($where==none)
{
$query=$this->dbcon->from($this->tablename)->limit($limit)->orderBy("id desc")->execute() ;
}
else
{
$query=$this->dbcon->from($this->tablename)->limit($limit)->orderBy("id desc")->where($where)->execute() ;
}
return $this->result=$query->fetchall();
}
############################
function del_to_trash($id)
{
$query=$this->dbcon->update($this->tablename)->where('id',$id)->set('state','2')->execute();
if($query)
{
echo "مقدار حذف شد";
}
else
{
echo "حذف انجام نشد .";
}
}
function dispalyformshowpost()
{
?>
<table id="sample-table-2" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th class="center">
<label>
<input type="checkbox" />
<span class="lbl"></span>
</label>
</th>
<th>عنوان</th>
<th>مشاهده</th>
<th class="hidden-480">دیدگاه ها</th>
<th class="hidden-phone">
<i class="icon-time bigger-110 hidden-phone"></i>
تاریخ
</th>
<th class="hidden-480">دسته بندی</th>
<th></th>
</tr>
</thead>
<?php
foreach($this->result as $row)
{
?>
<tbody align="center">
<tr align="center">
<td class="center">
<label>
<input type="checkbox" />
<span class="lbl"></span>
</label>
</td>
<td>
<?php echo $row['title'];?>
</td>
<td><?php echo $row['view'];?></td>
<td class="hidden-480"><?php echo "5";?></td>
<td class="hidden-phone"><?php echo $row['date'];?></td>
<td class="hidden-480"><span class="label label-warning"><?php echo $row['cat'];?></span></td>
<td class="td-actions">
<div class="hidden-phone visible-desktop action-buttons">
<a class="blue" href="<?php URL ?>?id=<?php echo $row['id'];?>">
<i class="icon-zoom-in bigger-130"></i>
</a>
<a class="green" href="?id=<?php echo $row['id'];?>&action=editdata">
<i class="icon-pencil bigger-130"></i>
</a>
<a class="red" href="?id=<?php echo $row['id'];?>&action=deldata" >
<i class="icon-trash bigger-130"></i>
</a>
</div>
<div class="hidden-desktop visible-phone">
<div class="inline position-relative">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown">
<i class="icon-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-icon-only dropdown-yellow pull-right dropdown-caret dropdown-close">
<li>
<a href="#" class="tooltip-info" data-rel="tooltip" title="View">
<span class="blue">
<i class="icon-zoom-in bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="#" class="tooltip-success" data-rel="tooltip" title="Edit">
<span class="green">
<i class="icon-edit bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="#" class="tooltip-error" data-rel="tooltip" title="Delete">
<span class="red">
<i class="icon-trash bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</tbody>
<?php
}
?>
</table>
<?php
}
###########################
function displayformeditpost()
{
foreach($this->result as $row)
{
?>
<form method="post">
<div class="widget-box position-relative" dir="rtl" >
<div class="widget-header">
<h5 class="smaller"><input type="submit" value="ویرایش اطلاعات" class="btm" /></h5>
<div class="widget-toolbar no-border">
<ul class="nav nav-tabs" id="myTab">
<li class="active">
<a data-toggle="tab" href="#home">عنوان</a>
</li>
<li>
<a data-toggle="tab" href="#profile">کلمات کلیدی</a>
</li>
<li>
<a data-toggle="tab" href="#info">توضیحات کوتاه</a>
</li>
<li>
<a data-toggle="tab" href="#time">زمان</a>
</li>
<li>
<a data-toggle="tab" href="#cat">دسته بندی</a>
</li>
</ul>
</div>
</div>
<div class="widget-body">
<div class="widget-main padding-6">
<div class="tab-content">
<div id="home" class="tab-pane in active">
<input type="text" name="title" value="<?php echo $row['title']?>" style="width:500px;" >
</div>
<div id="profile" class="tab-pane" title="کلمات کلیدی را با + از هم جدا کنید">
<input type="text" name="tag" title="کلمات کلیدی را با + از هم جدا کنید" onClick="value=''" value="<?php echo $row['tag']?>" style="width:500px;">
</div>
<div id="info" class="tab-pane">
<textarea id="pop2" name="more" dir="rtl"></textarea>
</div>
<div id="time" class="tab-pane" align="center">
<input type="text" name="time" value="<?php echo $row['time']?>" style="width:100px" /><input type="text" name="date" value="<?php echo $row['date']?>" style="width:100px" />
</div>
<div id="cat" class="tab-pane" align="center">
<?php
$cat=new cat;
$cat->showcatonpost();
?>
</div>
</div>
</div>
</div>
</div>
<textarea id="pop" name="body" dir="rtl"><?php echo $row['body']?></textarea>
</form>
<?php
}
}
###########
function showpage()
{
if(class_exists(paging))
{
$page=new paging;
$page->numpageshow =$this->numpageshowonpost ;
$page->getpaging($this->tablename);
}
else{
echo "کلاس صفحه بندی وجود ندارد ";
}
}
}
?>
دارم یه سی ام اس بر اساس oop می نویسم ولی در مورد درست کردن کلاس ها به مشکل بر خوردم . به نظرتون مثلا فانکشن های ارسال پست رو به صورت کلاس در بیارم یا نه کلا فانکش های insert رو یک کلاس کنم . و اینکه ایا بهتره خود فرم ها رو هم به صورت یک تابع توی کلاس قرار بدم یا نه بیرون کلاس باشن
یه جا خوندم نوشته بود باید از پترن دیزاین ها استفاده کنی
در کل الان چن روزه هی دارم طرح عوض می کنم مثلا یه بار کلاس پیجینگ رو هم توی کلاس ارسال مقاله میارم و یه بار به صورت جدا توی فرم درجش می کنم (چرا ؟) خب فرض می کنم من توی یه سیستم دیگه ای از کلاس درج مقاله استفاده کردم ولی نیازی به کلاس پیجینگ نداشت !!!!(و یا کلاس دسته بندی) حوصله میخاد بازم بیام کلاس پیجینگ رو از کلاس مقاله بیارم بیرون
این یه نمونه از کلاس من واسه درج مقاله ست که من توش کلاس پیجینگ و دسته بندی رو اضافه کردم و هرجا نیاز باشه فقط فراخوانیشون می کنم ولی حس می کنم این کار درست نیست ... به نظرتون مشکل کجای کاره ؟؟؟؟
<?php
class post
{
private $dbcon,$useaction,$tablename='post';
public $error,$result,$numpageshowonpost=15;
function __construct()
{
$this->useaction=new useaction;
require_once 'FluentPDO.php';
db::con();
$dbcon= $this->con=$this->connection ;
$mim=new db($dbcon);
return $this->dbcon=$mim;
}
function doinsertpost ($title,$body,$auther,$time,$date,$tag,$state,$cat ,$more)
{
$pop=array('title'=>$title,'body'=>$body,'auther'=>$auther,'time'=>$time,'date'=>$date,'tag'=>$tag,'state'=>$state,'cat'=>$cat,'more'=>$more);
$oo=$this->dbcon->insertInto($this->tablename,$pop)->execute() ;
if($oo)
{
echo "ارسال شد";
}
else
{
echo "شرمنده اخلاق ورزشیتم ... نشد . ببین کجا گند زدی";
}
}
####################
function showpost($where=none,$limit='15')
{
if($where==none)
{
$query=$this->dbcon->from($this->tablename)->limit($limit)->orderBy("id desc")->execute() ;
}
else
{
$query=$this->dbcon->from($this->tablename)->limit($limit)->orderBy("id desc")->where($where)->execute() ;
}
return $this->result=$query->fetchall();
}
############################
function del_to_trash($id)
{
$query=$this->dbcon->update($this->tablename)->where('id',$id)->set('state','2')->execute();
if($query)
{
echo "مقدار حذف شد";
}
else
{
echo "حذف انجام نشد .";
}
}
function dispalyformshowpost()
{
?>
<table id="sample-table-2" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th class="center">
<label>
<input type="checkbox" />
<span class="lbl"></span>
</label>
</th>
<th>عنوان</th>
<th>مشاهده</th>
<th class="hidden-480">دیدگاه ها</th>
<th class="hidden-phone">
<i class="icon-time bigger-110 hidden-phone"></i>
تاریخ
</th>
<th class="hidden-480">دسته بندی</th>
<th></th>
</tr>
</thead>
<?php
foreach($this->result as $row)
{
?>
<tbody align="center">
<tr align="center">
<td class="center">
<label>
<input type="checkbox" />
<span class="lbl"></span>
</label>
</td>
<td>
<?php echo $row['title'];?>
</td>
<td><?php echo $row['view'];?></td>
<td class="hidden-480"><?php echo "5";?></td>
<td class="hidden-phone"><?php echo $row['date'];?></td>
<td class="hidden-480"><span class="label label-warning"><?php echo $row['cat'];?></span></td>
<td class="td-actions">
<div class="hidden-phone visible-desktop action-buttons">
<a class="blue" href="<?php URL ?>?id=<?php echo $row['id'];?>">
<i class="icon-zoom-in bigger-130"></i>
</a>
<a class="green" href="?id=<?php echo $row['id'];?>&action=editdata">
<i class="icon-pencil bigger-130"></i>
</a>
<a class="red" href="?id=<?php echo $row['id'];?>&action=deldata" >
<i class="icon-trash bigger-130"></i>
</a>
</div>
<div class="hidden-desktop visible-phone">
<div class="inline position-relative">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown">
<i class="icon-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-icon-only dropdown-yellow pull-right dropdown-caret dropdown-close">
<li>
<a href="#" class="tooltip-info" data-rel="tooltip" title="View">
<span class="blue">
<i class="icon-zoom-in bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="#" class="tooltip-success" data-rel="tooltip" title="Edit">
<span class="green">
<i class="icon-edit bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="#" class="tooltip-error" data-rel="tooltip" title="Delete">
<span class="red">
<i class="icon-trash bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</tbody>
<?php
}
?>
</table>
<?php
}
###########################
function displayformeditpost()
{
foreach($this->result as $row)
{
?>
<form method="post">
<div class="widget-box position-relative" dir="rtl" >
<div class="widget-header">
<h5 class="smaller"><input type="submit" value="ویرایش اطلاعات" class="btm" /></h5>
<div class="widget-toolbar no-border">
<ul class="nav nav-tabs" id="myTab">
<li class="active">
<a data-toggle="tab" href="#home">عنوان</a>
</li>
<li>
<a data-toggle="tab" href="#profile">کلمات کلیدی</a>
</li>
<li>
<a data-toggle="tab" href="#info">توضیحات کوتاه</a>
</li>
<li>
<a data-toggle="tab" href="#time">زمان</a>
</li>
<li>
<a data-toggle="tab" href="#cat">دسته بندی</a>
</li>
</ul>
</div>
</div>
<div class="widget-body">
<div class="widget-main padding-6">
<div class="tab-content">
<div id="home" class="tab-pane in active">
<input type="text" name="title" value="<?php echo $row['title']?>" style="width:500px;" >
</div>
<div id="profile" class="tab-pane" title="کلمات کلیدی را با + از هم جدا کنید">
<input type="text" name="tag" title="کلمات کلیدی را با + از هم جدا کنید" onClick="value=''" value="<?php echo $row['tag']?>" style="width:500px;">
</div>
<div id="info" class="tab-pane">
<textarea id="pop2" name="more" dir="rtl"></textarea>
</div>
<div id="time" class="tab-pane" align="center">
<input type="text" name="time" value="<?php echo $row['time']?>" style="width:100px" /><input type="text" name="date" value="<?php echo $row['date']?>" style="width:100px" />
</div>
<div id="cat" class="tab-pane" align="center">
<?php
$cat=new cat;
$cat->showcatonpost();
?>
</div>
</div>
</div>
</div>
</div>
<textarea id="pop" name="body" dir="rtl"><?php echo $row['body']?></textarea>
</form>
<?php
}
}
###########
function showpage()
{
if(class_exists(paging))
{
$page=new paging;
$page->numpageshow =$this->numpageshowonpost ;
$page->getpaging($this->tablename);
}
else{
echo "کلاس صفحه بندی وجود ندارد ";
}
}
}
?>