Jump to content
Jack_mcs

Sitemap SEO

Recommended Posts

in admin - sitemap SEO - Box control I have this

Fatal error: Call to undefined function curl_init() in admin/includes/functions/sitemap.php on line 214

I read the previous post. I will probably install a cURL to my VPS... ...

 

Other parts of the map is woking. except this

 

InfoPages:

HEADING_TITLE

About Us

TEXT_GREETING_PERSONAL

TEXT_GREETING_PERSONAL_RELOGON

TEXT_GREETING_GUEST

TEXT_MAIN

 

How do I delete HEADING_ & TEXT_ ? Also can I move shipping, conditions to InfoPages?

 

Thanks

Share this post


Link to post
Share on other sites

The curl error is due to a mistake in the code. In admin/includes/functions/sitemap.php, find this line

if (! function_exists('curl_init'))

and change it to

if (function_exists('curl_init'))

 

For moving the pages, yes, that should be possible but I just tried it and see it isn't working. I think the real file is confusing the code. I'll take a look at this and see if I can get the fix in the next version.

 

Jack

Share this post


Link to post
Share on other sites

Hi,

 

There are pages I don't want to display on my site map. The problem is I can't exclude them from admin. I chech the exclude box, click on update but nothing happens. Actually I can't update anything on "Pages Group Control". What could be the problem?

 

Thanks!

 

C

Share this post


Link to post
Share on other sites

Excluding an item is just changing a database setting so I wonder if you can make other database changes, like in Settings Control, or even in the stock oscommerce settings?

 

Jack

Share this post


Link to post
Share on other sites

Hi Jack,

 

Settings control for Sitemap SEO works fine and I can make changes in box controll. I get this error message as well: Failed to read file /home/.../_html//includes/boxes//Array

 

Thanks,

Share this post


Link to post
Share on other sites

Oh, then that's different. That error shows up on some servers but I have never been able to get it to fail so I don't know what causes it.

 

Jack

Share this post


Link to post
Share on other sites

If you can identify when it fails and what section of code is being used, I will try to figure out the problem. But without more information to go on, I don't even know where to look in the code.

 

If you want to provide me with ftp and admin access and don't mind me using your admin to test with (no damage will be done), I will take a look at the problem. If you do, please PM me the login.

 

Jack

Edited by Jack_mcs

Share this post


Link to post
Share on other sites
Hi Jack,

 

Settings control for Sitemap SEO works fine and I can make changes in box controll. I get this error message as well: Failed to read file /home/.../_html//includes/boxes//Array

 

Thanks,

 

 

 

I had this error too, I found it in the code ---

 

The added text is what caused the error to pop up. Just delete the line and it will be gone.

 

Go to admin/functions/sitemap.php

 

Line 15 where it says

 

function AddMissingBoxes($locn, $languages, $excludeList, $linksArray) //add all boxes to the database if none exists

 

Replace with this

 

function AddMissingBoxes($locn, $languages, $excludeList, $linksArray)

 

 

It worked for me.

Edited by staradmire

Share this post


Link to post
Share on other sites

Hi Jack,

 

Sorry to trouble you again. :) I created a file called blog.php, but on my page control page, it does not show up. I checked code, thee name is not being filter out. Can you tell me what may be the problem please?

 

Thanks

Sand

Share this post


Link to post
Share on other sites

It will only add pages that are setup using the standard oscommerce way (two files and an entry in the filenames file). You can use the Additional Link Control in Box Control to add other pages.

 

Jack

Share this post


Link to post
Share on other sites
The sql file is trying to make database changes to the group with ID of 545 but your database already has a group with that ID so it isn't allowed. You need to edit the sql file and change all of the instances of 545 to some other number. It doesn't matter what the number is as long as it isn't used already. The only way to know if it is or not is to look at the database. Or you can just try a number and see if it works. So try 546, 789, 111 or whatever you like. Just be sure to change them all in the file.

 

Jack

Just installed brilliant. Just had the problem above easy to solve thks to advice above works perfectly. Thanks

Share this post


Link to post
Share on other sites

Sorry just found I have the Error

Failed to read file /home/markhere/public_html//includes/boxes//Array error also.

Doesn't seem to be causing any issues though.

Share this post


Link to post
Share on other sites

Hi and thanks for this nice contrib.

 

I've installed and it's partially working. See result here:

 

http://northamericantuning.com/catalog/sitemap.php

 

The issue I'm having is the sitemap shows categories only. No product pages are shown.

 

I've played with all options and read the forums for hours and can't find any clue.

 

Please help. Thanks for your time.


Nick G. Romain

Share this post


Link to post
Share on other sites

You have to enable the show products option in admin if you want them to display.

Share this post


Link to post
Share on other sites

You have to enable the show products option in admin if you want them to display.

 

Thanks Jack.

 

I totally missed that there were more options under "Config" in Admin.

 

I turned that option ON and now it does show SOME product pages:

http://northamericantuning.com/catalog/sitemap.php

 

It appears that products pages don't show if they are nested in more than 3 sub categories. Am I correct? I'll search the forum for that but you happen to have a quick fix, please let me know.

 

Thanks.


Nick G. Romain

Share this post


Link to post
Share on other sites

It appears that products pages don't show if they are nested in more than 3 sub categories. Am I correct? I'll search the forum for that but you happen to have a quick fix, please let me know.

There is a problem in the includes/classes/category_tree.php file. I had already changed it for the next version but haven't had time to test it. Here is the file if you would like to give it a try.

<?php
/*
$Id: category_tree.php,v1.2 2004/05/10 hpdl Exp $
# corrected the nested lists

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2004 osCommerce

Released under the GNU General Public License
*/

class osC_CategoryTree {
var $root_category_id = 0,
$max_level = 0,
$data = array(),
$root_start_string = '',
$root_end_string = '',
$parent_start_string = '',
$parent_end_string = '',
$parent_group_start_string = '<ul class="sitemap">',
$parent_group_end_string = '</ul>',
$child_start_string = '<li>',
$child_end_string = '</li>',
$spacer_string = '',
$spacer_multiplier = 1;

function osC_CategoryTree($load_from_database = true) {
global $languages_id;
$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c left join " . TABLE_CATEGORIES_DESCRIPTION . " cd on c.categories_id = cd.categories_id where cd.language_id = '" . (int)$languages_id . "' order by c.parent_id, c.sort_order, cd.categories_name");
$this->data = array();

while ($categories = tep_db_fetch_array($categories_query)) {
$this->data[$categories['parent_id']][$categories['categories_id']] = array('name' => $categories['categories_name'], 'count' => 0);}
} //end class osC_CategoryTree

function buildBranch($parent_id, $level = 0, $p_category_link = false) {
$result = $this->parent_group_start_string; //starts the <ul> tag

if (isset($this->data[$parent_id])) {
	foreach ($this->data[$parent_id] as $category_id => $category) {

           if ($parent_id == '0') {
             $category_link = $category_id;
           } else {
             $category_link = $p_category_link . '_' . $category_id;
           }

		$result .= $this->child_start_string; // prints <li>

		if (isset($this->data[$category_id])) {$result .= $this->parent_start_string;} //prints nothing

		if ($level == 0) {$result .= $this->root_start_string;} //prints nothing

		$result .= str_repeat($this->spacer_string, $this->spacer_multiplier * $level) . '<a class="sitemap" title="'. $category['name'] . '" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $category_link) . '">';

		$result .= $category['name'];

		$result .= '</a>';

           $result .= $this->buildProducts($category_id);

		if ($level == 0) {$result .= $this->root_end_string;} //prints nothing

		if (isset($this->data[$category_id])) {$result .= $this->parent_end_string;} //prints </ul>

		if (isset($this->data[$category_id]) && (($this->max_level == '0') || ($this->max_level > $level+1))) {
		  $result .= $this->buildBranch($category_id, $level+1, $category_link);
           }

		$result .= $this->child_end_string; //prints </li>

	}// end foreach
} // end if (isset 

$result .= $this->parent_group_end_string; //<prints </ul>

return $result;
} //end function

function buildProducts($category_id)
{
global $languages_id;
	if (strpos($category_id,"_")!==false)
	{
		$categori_id = explode("_",$category_id);
		$categori_id=$categori_id[sizeof($categori_id)-1];
	}
	else
	{
		$categori_id=$category_id;
	}
	$req="select * from products prod, products_to_categories prodcate , products_description proddescr
	where prod.products_status = '1' and prodcate.categories_id=".$categori_id." and prod.products_id=prodcate.products_id
	and proddescr.language_id=".$languages_id." and proddescr.products_id=prod.products_id order by proddescr.products_name";
	$products_query = tep_db_query($req);
	//echo $req;
	$result="";
	$result .= $this->parent_group_start_string;
	while ($products = tep_db_fetch_array($products_query))
	{
		$result .= $this->child_start_string;
		$result.=' <a class="sitemapProducts" title="' . $products['products_name'] . '" href="' .tep_href_link(FILENAME_PRODUCT_INFO, ($category_id ? 'cPath=' . $category_id . '&' : '') . 'products_id=' . $products['products_id']) . '">' . $products['products_name'] . '</a> ';
		$result .= $this->child_end_string;
	}
	$result .= $this->parent_group_end_string;
	return $result;
}

function buildTree() { return $this->buildBranch($this->root_category_id);}}

?>

Share this post


Link to post
Share on other sites

Hi Jack,

 

Just tried your new file and it DOES work. You can see the live result here:

 

http://northamericantuning.com/catalog/sitemap.php

 

From my experience, you can use your changes for the next release.

 

Now, I'm going to play with the files to see if I can make the LEFT COLUMN width larger so it's easier to read and takes less space. I'll let you know if I find a way.

 

Big thank you. Great work Jack.


Nick G. Romain

Share this post


Link to post
Share on other sites

There is a problem in the includes/classes/category_tree.php file. I had already changed it for the next version but haven't had time to test it. Here is the file if you would like to give it a try.

<?php
/*
$Id: category_tree.php,v1.2 2004/05/10 hpdl Exp $
# corrected the nested lists

osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com

Copyright (c) 2004 osCommerce

Released under the GNU General Public License
*/

class osC_CategoryTree {
var $root_category_id = 0,
$max_level = 0,
$data = array(),
$root_start_string = '',
$root_end_string = '',
$parent_start_string = '',
$parent_end_string = '',
$parent_group_start_string = '<ul class="sitemap">',
$parent_group_end_string = '</ul>',
$child_start_string = '<li>',
$child_end_string = '</li>',
$spacer_string = '',
$spacer_multiplier = 1;

function osC_CategoryTree($load_from_database = true) {
global $languages_id;
$categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c left join " . TABLE_CATEGORIES_DESCRIPTION . " cd on c.categories_id = cd.categories_id where cd.language_id = '" . (int)$languages_id . "' order by c.parent_id, c.sort_order, cd.categories_name");
$this->data = array();

while ($categories = tep_db_fetch_array($categories_query)) {
$this->data[$categories['parent_id']][$categories['categories_id']] = array('name' => $categories['categories_name'], 'count' => 0);}
} //end class osC_CategoryTree

function buildBranch($parent_id, $level = 0, $p_category_link = false) {
$result = $this->parent_group_start_string; //starts the <ul> tag

if (isset($this->data[$parent_id])) {
	foreach ($this->data[$parent_id] as $category_id => $category) {

           if ($parent_id == '0') {
             $category_link = $category_id;
           } else {
             $category_link = $p_category_link . '_' . $category_id;
           }

		$result .= $this->child_start_string; // prints <li>

		if (isset($this->data[$category_id])) {$result .= $this->parent_start_string;} //prints nothing

		if ($level == 0) {$result .= $this->root_start_string;} //prints nothing

		$result .= str_repeat($this->spacer_string, $this->spacer_multiplier * $level) . '<a class="sitemap" title="'. $category['name'] . '" href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $category_link) . '">';

		$result .= $category['name'];

		$result .= '</a>';

           $result .= $this->buildProducts($category_id);

		if ($level == 0) {$result .= $this->root_end_string;} //prints nothing

		if (isset($this->data[$category_id])) {$result .= $this->parent_end_string;} //prints </ul>

		if (isset($this->data[$category_id]) && (($this->max_level == '0') || ($this->max_level > $level+1))) {
		  $result .= $this->buildBranch($category_id, $level+1, $category_link);
           }

		$result .= $this->child_end_string; //prints </li>

	}// end foreach
} // end if (isset 

$result .= $this->parent_group_end_string; //<prints </ul>

return $result;
} //end function

function buildProducts($category_id)
{
global $languages_id;
	if (strpos($category_id,"_")!==false)
	{
		$categori_id = explode("_",$category_id);
		$categori_id=$categori_id[sizeof($categori_id)-1];
	}
	else
	{
		$categori_id=$category_id;
	}
	$req="select * from products prod, products_to_categories prodcate , products_description proddescr
	where prod.products_status = '1' and prodcate.categories_id=".$categori_id." and prod.products_id=prodcate.products_id
	and proddescr.language_id=".$languages_id." and proddescr.products_id=prod.products_id order by proddescr.products_name";
	$products_query = tep_db_query($req);
	//echo $req;
	$result="";
	$result .= $this->parent_group_start_string;
	while ($products = tep_db_fetch_array($products_query))
	{
		$result .= $this->child_start_string;
		$result.=' <a class="sitemapProducts" title="' . $products['products_name'] . '" href="' .tep_href_link(FILENAME_PRODUCT_INFO, ($category_id ? 'cPath=' . $category_id . '&' : '') . 'products_id=' . $products['products_id']) . '">' . $products['products_name'] . '</a> ';
		$result .= $this->child_end_string;
	}
	$result .= $this->parent_group_end_string;
	return $result;
}

function buildTree() { return $this->buildBranch($this->root_category_id);}}

?>

Have added the above fix also and seems to work great.

Share this post


Link to post
Share on other sites

Thanks Nicolas and Mark for letting me know the code works. I'll include it in the next version.

Share this post


Link to post
Share on other sites

I have just uploaded Sitemap_SEO_V_1.4.zip and I am getting these error in my admin I followed everyting. I can log into my admin but cannot do anything in there can some one help my in the right direction

 

Warning: require(includes/boxes/sitemap_seo.php) [function.require]: failed to open stream: No such file or directory in /home/jewelry1/public_html/admin/includes/column_left.php on line 22

 

Warning: require(includes/boxes/sitemap_seo.php) [function.require]: failed to open stream: No such file or directory in /home/jewelry1/public_html/admin/includes/column_left.php on line 22

 

Fatal error: require() [function.require]: Failed opening required 'includes/boxes/sitemap_seo.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/jewelry1/public_html/admin/includes/column_left.php on line 22

Share this post


Link to post
Share on other sites

I have just uploaded Sitemap_SEO_V_1.4.zip and I am getting these error in my admin I followed everyting. I can log into my admin but cannot do anything in there can some one help my in the right direction

 

Warning: require(includes/boxes/sitemap_seo.php) [function.require]: failed to open stream: No such file or directory in /home/jewelry1/public_html/admin/includes/column_left.php on line 22

The error is saying the sitemap_seo.php file cannot be found in the admin/includes/boxes/ directory. The usual cause of that is that the file was not uploaded to your server. You need to go back over the installation instructions to be sure all of the steps were performed.

Share this post


Link to post
Share on other sites

Hi Jack

 

I brought an existing shop template from a friend and the sitemap worked nearly all the way. However, I lost my sitemap during the process of updating my products (I guess; not so sure the exact point). The error message shows "Unable to determine the page link" and also Sitemap SEO under Configuration in admin panel has missing since then.

 

I notice that this Sitemap SEO installed in my shop which was contributed by you and released by 2008-12-20 (sitemap_seo.php 1739) It'd great to have your advice on how to rectify this problem if you have any idea or anyway I can begin to check from my end? many thanks. organicme

Share this post


Link to post
Share on other sites

That was the initial version and fixes have been released since then so you upgrade to the latest version. Also be sure the search engine friendly option in admin is not set.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×