2012-06-18 2 views
0

Я пытаюсь создать модуль custom-cms для плагина WordPress.Загрузите страницу администратора плагина Wordpress не в том месте

Плагин состоит только из админ-части. Часть, которую видит посетитель, загружается через обычную страницу WordPress с внедренным PHP-кодом. Это прекрасно работает.

Для части администрирования я создал отдельную папку в каталоге плагинов, содержащую два файла PHP. Плагин активирован, и элемент меню загружается правильно. Тем не менее, проблема, с которой я столкнулась, заключается в том, что админ-контент плагина загружается A) на каждой странице администратора Wordpress и B) полностью в верхней части страницы. Все меню администратора находится ниже класса переноса, который я разместил вокруг содержимого.

Для A) Я думаю, что я должен сказать плагину загружать только на его собственную страницу, но я не знаю, как это сделать. Для B) Мое предположение, что я должен сказать плагину, куда вставлять содержимое (используя крючок?), Но я тоже не знаю, как это сделать. Это моя первая попытка создания плагина. Я читал на многочисленных сайтах о том, как писать плагины, но я просто не могу понять это правильно.

Два PHP файлы:

  • Основной файл плагина: verkoopstatus-admin.php (я ушел из плагина информация шаблон часть):

Pastebin verkoopstatus-admin.php

  • Содержимое части плагина: verkoopstatus.php

Pastebin verkoopstatus.php

Может ли кто-нибудь сказать мне, что мне здесь не хватает?

ответ

0
<?php 
/* 
if($include_flag == 1) 
{ 
*/ 
function showHome($project) 
{ 
    $home_query = mysql_query("SELECT * FROM mod_verkoopstatus WHERE project = '$project'") or die(mysql_error()); 
    while($home_info = mysql_fetch_object($home_query)) 
    { 
     if($home_info->status == 1) 
     { 
      $color = '#2E2EFE'; 
     } 
     if($home_info->status == 2) 
     { 
      $color = '#3E8028'; 
     } 
     if($home_info->status == 3) 
     { 
      $color = '#F26A20'; 
     } 
     if($home_info->status == 4) 
     { 
      $color = '#F1F121'; 
     } 
     echo '<a target="_self" href="http://localhost/abc/wp-admin/admin.php?page=Verkoopstatus'.$home_info->project.'&nr='.$home_info->nr.'">'; 
     echo '<div style="position: absolute; border: 1px solid black; margin-left: '.$home_info->left.'px; margin-top: '.$home_info->top.'px; height: '.$home_info->height.'px; width: '.$home_info->width.'px; background-color: '.$color.'"><p style="padding-top: 0px; margin-top: 0px;" align="center">'.$home_info->nr.'</p></div>'; 
     echo '</a>'; 
    } 
} 

последний кронштейн кусок выше должен быть в конце файла (после окончания сНа .wrap)

+0

Спасибо Gembel! Настройки администратора теперь отображаются только на странице администрирования плагинов. Но информация повторяется бесконечно, а не только один раз. Есть идеи? – user968863

+0

Скорректированный код: [ссылка (] http://pastebin.com/fqEgm02W) Когда я разделить код на блоки: 1: showhome функция 2: если (Исеть часть 3: стол/HTML/CSS 4: закрытие PHP также деактивируется весь код в блоке 4 (не знаю, о своем намерении) тест:. 1. Если код, как вы видите в Pastebin, проблема, как первоначально размещен 2. Переместить закрывающая скобка от блока 1 до блока 4: страница отображается только на странице плагина и ниже заголовка, но сам плагин отображается в цикле. 3. Mmove закрывающая скобка блока 2 к блоку 4: пустая страница. Мне нужно найти способ применить решение Гембеля, но избегайте цикла. Кто угодно? – user968863

+0

сделали некоторый прогресс, закроют эту тему и откроют новую. – user968863

0

Я думаю, что это лучше

function showHome($project) 
{ 
    $out = ''; 

    $home_query = mysql_query("SELECT * FROM mod_verkoopstatus WHERE project = '$project'") or die(mysql_error()); 
    while($home_info = mysql_fetch_object($home_query)) 
    { 
     switch ($home_info->status) { 
      case 1: 
       $color = '#2E2EFE'; 
       break; 

      case 2: 
       $color = '#3E8028'; 
       break; 

      case 3: 
       $color = '#F26A20'; 
       break; 

      case 4: 
       $color = '#F1F121'; 
       break; 
      default: 
       $color = '#FFF'; 
       break; 
     } 

     $out.= '<a target="_self" href="http://localhost/abc/wp-admin/admin.php?page=Verkoopstatus'.$home_info->project.'&nr='.$home_info->nr.'">'; 
     $out.= '<div style="position: absolute; border: 1px solid black; margin-left: '.$home_info->left.'px; margin-top: '.$home_info->top.'px; height: '.$home_info->height.'px; width: '.$home_info->width.'px; background-color: '.$color.'"><p style="padding-top: 0px; margin-top: 0px;" align="center">'.$home_info->nr.'</p></div>'; 
     $out.='</a>'; 
    } 
    return $out; // & echo showHome($project); 
} 
Смежные вопросы