WordPress Admin Menu & Plugin page Missing - php

I have created a plugin and have done so many times but for some reason I can not seem to get a navigation to the plugin settings page on the admin menu.
The following code I have used is:
// create custom plugin settings menu
add_action('admin_menu', 'uubba_categories_addmenus');
function uubba_categories_addmenus() {
//create new top-level menu
add_menu_page('Check My Stats', 'CMS Page', 'manage_options', 'uubbacmspage', 'uubba_cms_players_page', '', 6);
}
I have also created a settings page but for some reason that is not echo'ing anything what so ever either. The code is as follows:
function uubba_cms_players_page(){
global $wpdb;
//get the players information needed
$getinfo = $wpdb->get_results("SELECT username FROM uubba_userstats");
$output = '<style>';
$output .= '.uubbahr{margin:25px 0px;}';
$output .= '.uubba-button-green,.uubba-button-green:visited{padding:8px 14px;background-color:#8FE485;color:white;}';
$output .= '.uubba-button-green:hover{background-color:#79DC6E;color:white;}';
$output .= '.uubba-button-red,.uubba-button-red:visited{padding:8px 14px;background-color:#F56A6A;color:white;}';
$output .= '.uubba-button-red:hover{background-color:#E34747;color:white;}';
$output .= '<style>';
$output .= '<div class="wrap">';
$output .= '<h1>Check My Stats Players</h1>';
$output .= '<hr class="uubbahr">';
$output .= '<table>';
$output .= '<tr>';
$output .= '<th scope="col"><h5 class="font12">Users Name</h5></th>';
$output .= '<th scope="col"><h5 class="font12">Actions</h5></th>';
$output .= '</tr>';
foreach($getinfo as $gi){
$output .= '<tr>';
$output .= '<td><h3>'.$gi->username.'</h3></td>';
$output .= '<td>View Statistics Delete User</td>';
$output .= '</tr>';
}
$output .= '</table>';
$output .= '</div>';
echo $output;
}
I have no idea why this would not work, I have used this method a lot in the past and for some reason it just does not work on this plugin.
If anyone could shed some light on it, I would be most appreciated indeed :)

Related

PHP While Loop/Foreach Loops

I have a question on a different way to wright this code because its not doing what I want it to do..
I am creating a forum list that will display the section under that category. Well this is the issue as you can see that I have an If () {}Else {} statement that is being used to put the information in that list I want. The problem is that I need to add a special class to the last section under that category that will be called last-tr. Now my issue that I have is all the information is making it to the screen but the class is only applied to the last row and now the last row of all the category's which is what i'm looking for.
So something like this,
Welcome Center
Introduce Yourself
Say Hello To our Admins (last-tr)
Game
COD
BF4 (last-tr)
Code
PHP
Java
PDO (last-tr)
but what my code is giving me is
Welcome Center
Introduce Yourself
Say Hello To our Admins
Game
COD
BF4
Code
PHP
Java
PDO (last-tr) <- Just that one.
Here is the code
<?php
include '../../core/init.php';
include '../../includes/head.php';
//Getting Categories under Welcome
$db = DB::getInstance();
$user = New User();
$forum = New Forum();
$list = '';
$category = $db->query('SELECT * FROM forum_categories');
foreach ($category->results() as $category) {
$list .= '<thead>';
$list .= '<tr>';
$list .= '<th class="titles">' . $category->title . '</th>';
$list .= '<th>Last Post</th>';
$list .= '<th>Topics</th>';
$list .= '<th>Replies</th>';
$list .= '</tr>';
$list .= '</thead>';
$list .= '<tbody>';
$sections = $db->query("SELECT * FROM forum_section WHERE category_id = '$category->id'");
foreach ($sections->results() as $section) {
$x = 0;
if ($x < $sections->count()) {
$list .= '<tr>';
$list .= '<td>';
$list .= '<a href="/category.php?id='. $section->id .'">';
$list .= '<img scr="/images/icons/iconmonstr/intro.png">';
$list .= '</a>';
$list .= '' . $section->title . '';
$list .= '<span>' . $section->desc . '</span>';
$list .= '</td>';
$list .= '<td> Nasty </td>';
$list .= '<td> 0 </td>';
$list .= '<td> 0 </td>';
$list .= '</tr>';
$x++;
}else {
$list .= '<tr class="last-tr">';
$list .= '<td>';
$list .= '' . $section->title . '';
$list .= '</td>';
$list .= '<td> Nasty </td>';
$list .= '<td> 0 </td>';
$list .= '<td> 0 </td>';
$list .= '</tr>';
}
}
$list .= '</tbody>';
}
?>
<link rel="stylesheet" href="/css/fourms.css">
<title>Forums</title>
</head>
<body>
<?php include '../../includes/header.php'; ?>
<section id="main_section">
<section id="main_content">
<div id="forum-section">
<table class="forumlist">
<?php echo $list; ?>
</table>
</div>
</section>
</section>
<?php include('../../includes/footer.php'); ?>
Your if-statement should be if ($x < $sections->count()-1) because the last index of an array is always count-1 due to starting at 0.
OR
You could also fix it here by starting $x at 1, since you are using a foreach with the counter on the side, so its not like you'll get an out of index error. In other words:
foreach ($sections->results() as $section) {
$x = 1;
if ($x < $sections->count()) {
...
$x++;
}else {
...
}
}
But going with the first option is probably more straight-forward.
You are testing against your overall class not the data within the class.
$sections->count() is counting all of the sections not the entries in teh one section you are dealing with.
You need to test the count of the singular section
So if you had
$sectionsAll = array(
sectionOne = array( 1, 2, 3),
sectionTwo = array( 1, 2, 3),
sectionThree = array( 1, 2, 3)
);
You are currently testing on $sectionsAll, you need to check against sectionOne, sectionTwo, sectionThree

Retrieve image name from database within background: url

I want to use the image reference I made in the database as a background: url. I've made the design already => http://i49.tinypic.com/30ihudz.png In my current code I use div style in which I retrieve the image, but that doesn´t show up no image. Could somebody please guide me? Thanks in advance.
public function displayProduct()
{
$product = $this->db->query("SELECT id, title, description, price, filename FROM trips ORDER BY id");
while ($row = $product->fetch_assoc())
{
$output .= '<div class="reisbox">';
$output .= '<div id="reis_insidebox1" style="background: url(\'img/content/'.$row['filename'].'\')" width="1000" height="500">';
$output .= '<div class="reis_textbox">';
$output .= '<h2>'.ucfirst($row['title']).'</h2>';
$output .= '<article>';
$output .= ucfirst($row['description']);
$output .= '</article>';
$output .= '</div>';
$output .= '<div class="rightboxx">';
$output .= '<div class="reis_price_box">';
$output .= '<div class="reis_price_box_text">';
$output .= '€'.$row['price'];
$output .= '</div>';
$output .= '<div class="more_box">';
$output .= '<p>Lees meer..</p>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
$output .='<br />';
$output .= '<div id="add">';
$output .='<p>Add to cart</p>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
}
return $output;
}
C:/ is not an URL since it has no protocol (like file: or http:). Make the path point towards a file inside the htdocs folder like
"http://localhost/images/"
or whatever.

Style image from database as background image

I want to use the image reference I made in the database as a background: url. I've made the design already => [IMG]http://i49.tinypic.com/30ihudz.png[/IMG]. In my current code I use div style in which I retrieve the image, but that doesn´t show up no image. Could somebody please guide me? Thanks in advance.
public function displayProduct()
{
if($product = $this->db->query("SELECT id, title, description, price, filename FROM trips ORDER BY id"))
{
while ($row = $product->fetch_assoc())
{
$output .= '<div class="reisbox">';
$output .= '<div id="reis_insidebox1" style=" background: url("C:/xampp/htdocs/webshop/public/img/content/"'.$row['filename'].' ") width="1000" height="500">';
$output .= '<div class="reis_textbox">';
$output .= '<h2>'.ucfirst($row['title']).'</h2>';
$output .= '<article>';
$output .= ucfirst($row['description']);
$output .= '</article>';
$output .= '</div>';
$output .= '<div class="rightboxx">';
$output .= '<div class="reis_price_box">';
$output .= '<div class="reis_price_box_text">';
$output .= '€'.$row['price'];
$output .= '</div>';
$output .= '<div class="more_box">';
$output .= '<p>Lees meer..</p>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
$output .='<br />';
$output .= '<div id="add">';
$output .='<p>Add to cart</p>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
}
return $output;
}
}
If you really want to fetch the file from "C:/xampp/.../" you should add a file:/// infront but I guess you simply want to use a relative path, such as "img/content/andthefilenamefromdatabase.png"
And to continue, you are actually closing your style-tag with the " in your CSS background, you might want to use ' there or simply skip the string literal completely
With all this is mind, it could look like so:
$output .= '<div id="reis_insidebox1" style="background: url(\'img/content/'.$row['filename'].'\')" width="1000" height="500">';
Note that I am escaping the ' in the CSS here, using a backslash.

Can I extend the CI_Profiler class to display SESSION variables as well?

If so.... any idea how?
You might be interested in this post about adding sessions to the profiler Basically it works by creating a MY_Profiler.php file and copy and pasting this code:
<?php if(!defined('BASEPATH')) exit('No direct script access allowed');
class MY_Profiler extends CI_Profiler {
/**
* Adds session data to the profiler
* Adds a table row for each item of session data with the key and value
* Shows both CI session data and custom session data
*/
function _compile_session() {
$output = "\n\n";
$output .= '<fieldset style="border:1px solid #009999;padding:6px 10px 10px 10px;margin:20px 0 20px 0;background-color:#eee">';
$output .= "\n";
$output .= '<legend style="color:#009999;"> '.'SESSION DATA'.' </legend>';
$output .= "\n";
if (!is_object($this->CI->session)) {
$output .= "<div style='color:#009999;font-weight:normal;padding:4px 0 4px 0'>".'No SESSION data exists'."</div>";
} else {
$output .= "\n\n<table cellpadding='4' cellspacing='1' border='0' width='100%'>\n";
$sess = get_object_vars($this->CI->session);
foreach ($sess['userdata'] as $key => $val) {
if ( ! is_numeric($key)) {
$key = "'".$key."'";
}
$output .= "<tr><td width='50%' style='color:#000;background-color:#ddd;'>$_SESSION[".$key."] </td><td width='50%' style='color:#009999;font-weight:normal;background-color:#ddd;'>";
if (is_array($val)) {
$output .= "<pre>" . htmlspecialchars(stripslashes(print_r($val, true))) . "</pre>";
} else {
$output .= htmlspecialchars(stripslashes($val));
}
$output .= "</td></tr>\n";
}
$output .= "</table>\n";
}
$output .= "</fieldset>";
return $output;
}
function run() {
$output = "<div id='codeigniter_profiler' style='clear:both;background-color:#fff;padding:10px;'>";
$output .= $this->_compile_uri_string();
$output .= $this->_compile_controller_info();
$output .= $this->_compile_memory_usage();
$output .= $this->_compile_benchmarks();
$output .= $this->_compile_get();
$output .= $this->_compile_post();
$output .= $this->_compile_queries();
$output .= $this->_compile_session();
$output .= '</div>';
return $output;
}
}
Of course you can, just create a MY_profiler and add two methods: run() and _compile_session()
run() is the same as the parent just copy the code & add the _compile_session at the end and _compile_session could have the same code as _compile_post, just change $_POST to $_SESSION

output query in strict table formate in code-igniter

my code is below.it show the output in table format having no problems.
But when the particular tr gets long output from database then the table break.
Now how can i fixed the tr width strictly?let say i want each td cannot be more than 100px.
How can i do it?
Note: Here table means html table,not the database table.
if ($query->num_rows() > 0)
{
$output = '';
foreach ($query->result() as $function_info)
{
if ($description)
{
$output .= ''.$function_info->songName.'';
$output .= ''.$function_info->albumName.'';
$output .= ''.$function_info->artistName.'';
$output .= ''.$function_info->Code1.'';
$output .= ''.$function_info->Code2.'';
$output .= ''.$function_info->Code3.'';
$output .= ''.$function_info->Code4.'';
$output .= ''.$function_info->Code5.'';
}
else
{
$output .= ''.$function_info->songName.'';
}
}
$output .= '';
return $output;
}
else
{
return 'Result not found.';
}
thanks
riad
You can either do it in the HTML...
<td style="width: 100px">
Or you can try using wordwrap.

Categories