netbozum
wmaraci reklam

DW Question & Answer eklentisi yazma ve yorum izinleri

2 Mesajlar 1.431 Okunma
Toplam 2 mesaj ve 1.431 görüntüleme
acebozum
wmaraci reklam

miharbisukarak miharbisukarak Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 27.11.2013
  • Yaş/Cinsiyet 36 / E
  • Meslek İnternet Danışmanı
  • Konum İstanbul Avrupa
  • Ad Soyad H** K**
  • Mesajlar 735
  • Beğeniler 121 / 106
  • Ticaret 6, (%100)
Merhaba DW Question & Answer eklentisini kullanıyorum fakat ziyaretçilerin kayıt olmadan soru sormasını ve sorulara cevap değil sadece yorum yapmasını istiyorum. Eklentinin yönetim panelinde Settings tabı altında Group permission settings ayarları var yönetici yazar içerik sağlayıcı abone gibi kullanıcı rollerinin hangi izinlere sahip olduklarını gösteriyor fakat izinlerde değişiklik yapılmıyor. Checkbox'lar seçili/seçili değil şeklinde değiştirilmiyor.

Tanıtım sayfasında (sayfa burada) bahsettiğim Group permission settings ayarları yok sanırım eklentinin bir önceki sürümünün tanıtımı, güncelleme yapılmamış olabilir.

Bu izinleri eklentinin roles.php dosyasında izinlerle ilgili bölümde ki kodlar şu şekilde. Fakat roles.php dosyasından düzenlediğim halde izinlerde bir değişiklik olmadı. Acaba nerede yanlış yapıyorum? Yardımcı olabilecek biri varmı?



1 Etkin
0 Etkin değil


class DWQA_Permission {
public $defaults;
public $perms;

function __construct() {
$this->defaults = array(
'administrator' => array(
'disabled' => true,
'question' => array(
'read' => 1,
'post' => 1,
'edit' => 1 ,
'delete' => 1
),
'answer' => array(
'read' => 1,
'post' => 1,
'edit' => 1,
'delete' => 1
)
),
'editor' => array(
'disabled' => true,
'question' => array(
'read' => 1,
'post' => 1,
'edit' => 1,
'delete' => 1
),
'answer' => array(
'read' => 1,
'post' => 1,
'edit' => 1,
'delete' => 1
)
),
'author' => array(
'disabled' => true,
'question' => array(
'read' => 1,
'post' => 1,
'edit' => 1,
'delete' => 1
),
'answer' => array(
'read' => 1,
'post' => 1,
'edit' => 1,
'delete' => 1
)
),
'contributor' => array(
'disabled' => true,
'question' => array(
'read' => 1,
'post' => 0,
'edit' => 0,
'delete' => 0
),
'answer' => array(
'read' => 0,
'post' => 0,
'edit' => 0,
'delete' => 0
)
),
'subscriber' => array(
'disabled' => true,
'question' => array(
'read' => 1,
'post' => 0,
'edit' => 0,
'delete' => 0
),
'answer' => array(
'read' => 0,
'post' => 0,
'edit' => 0,
'delete' => 0
)
),
'anonymous' => array(
'disabled' => true,
'question' => array(
'read' => 0,
'post' => 1,
'edit' => 0,
'delete' => 0
),
'answer' => array(
'read' => 0,
'post' => 0,
'edit' => 0,
'delete' => 0
)
)
);
add_action( 'init', array( $this, 'prepare_permission' ) );
add_filter( 'pre_update_option_dwqa_permission', array( $this, 'parse_permission' ), 10, 2 );
add_action( 'update_option_dwqa_permission', array( $this, 'update_caps'), 10, 2 );
}
public function prepare_permission(){
$this->perms = get_option( 'dwqa_permission' );
$this->perms = is_array( $this->perms ) ? $this->perms : array();
$this->perms = $this->parse_args( $this->perms );
}

public function parse_permission( $value, $old_value ){
return $this->parse_args( $value );
}

public function parse_args( $perms ){
foreach ($this->defaults as $key => $perm) {
if( ! isset($perms[$key]) ) {
$perms[$key] = $perm;
} else {
$perms[$key] = wp_parse_args( $perms[$key], $perm );
$perms[$key]['question'] = wp_parse_args( $perms[$key]['question'], $perm['question'] );
$perms[$key]['answer'] = wp_parse_args( $perms[$key]['answer'], $perm['answer'] );
}
}
return $perms;
}

public function add_caps( $value ){
foreach ($value as $role_name => $perm) {
if( $role_name == 'anonymous' ) {
continue;
}
$role = get_role( $role_name );
foreach ($perm['question'] as $key => $value) {
if( isset($value) && $value ) {
$role->add_cap( 'dwqa_can_'.$key.'_question' );
} else {
$role->remove_cap( 'dwqa_can_'.$key.'_question' );
}
}
foreach ($perm['answer'] as $key => $value) {
if( isset($value) && $value ) {
$role->add_cap( 'dwqa_can_'.$key.'_answer' );
} else {
$role->remove_cap( 'dwqa_can_'.$key.'_answer' );
}
}
}
}
public function update_caps( $old_value, $value ){
$this->add_caps( $value );
}

public function prepare_permission_caps(){
$this->add_caps( $this->defaults );
}
public function remove_permision_caps(){
foreach ($this->defaults as $role_name => $perm) {
if( $role_name == 'anonymous' ) {
continue;
}
$role = get_role( $role_name );
foreach ($perm['question'] as $key => $value) {
$role->remove_cap( 'dwqa_can_'.$key.'_question' );
}
foreach ($perm['answer'] as $key => $value) {
$role->remove_cap( 'dwqa_can_'.$key.'answer' );
}
}
}
}

?>


Ek Olarak: Hiçkimsenin bilgisi yok mu bu konuda O.o
 

 

wmaraci
reklam

HeroTurk HeroTurk Ne Mutlu Türküm Diyene!!! Kimlik Onayı
  • Üyelik 29.06.2013
  • Yaş/Cinsiyet 36 / E
  • Meslek Cnc programcısı
  • Konum Karabük
  • Ad Soyad Ö** Ç**
  • Mesajlar 3963
  • Beğeniler 315 / 705
  • Ticaret 47, (%100)
güncel
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al