Permalinks 1.02 Questions / Help

Hi

I have just purchased Permalimks 1.02 and am getting to grips with it (slowly)

I have a couple of questions which I hope you can help me with:-

1) I have the plugin generating automatic Permalinks in my Detail Viewer Pages using more than one field which is great. I changed line 11 of the permalinks.php file to do this, copy of code below:-

$GLOBALS['PERMALINKS']['autopopulate_fromFields'] = array('property_type town bedrooms reference_number', 'title'); // the first field in this list with content will be used to create the permalinks. To use multiple fields separate them with spaces

My question is, am I able to add free text into the first list to get the Permalink to display exactly as I would like. I have used CAPITALS in the code below to show where I would like the free text to go:-

$GLOBALS['PERMALINKS']['autopopulate_fromFields'] = array('property_type IN town WITH bedrooms BEDS REF reference_number', 'title'); // the first field in this list with content will be used to create the permalinks. To use multiple fields separate them with spaces

2) I am having a problem with Automatically Redirecting Old Links to Permalinks.

My code at the top of the page is as follows:-

<?php
  /* STEP 1: LOAD RECORDS - Copy this PHP code block to the TOP of your page BEFORE anything else. */
  require_once "init.php";

  list($listingRecords, $listingDetails) = getRecords(array(
    'tableName'   => 'listings',
    'joinTable'   => 'homepages',
    'where'       => whereRecordNumberInUrl(1),
    'limit'       => '1',
  ));
  $listing = @$listingRecords[0];


  if (!$listing) { print "Listing not found!"; exit; }
 
// ++++++++++++++
// Get Page URL
// +++++++++++++++
include("../selfURL.php");
$work_url = (selfURL());
// echo $work_url; // Only used for testing BUT $work_url can be placed in code

?>
<?php permalinks_301redirectToPermalink($listingRecords); ?>

The last line in the code above is what I have added to use the redirect, however, this does not appear to work.

It maybe that I have the wrong variable in the code?

The old page does not redirect but displays the same page as the permalink page so in effect I have 2 URL's pointing to the same page which is not good for SEO.

Any help appreciated on both questions.

Thanks

Andy

Hi Dave

With reference to point 2

I put the code where you suggested but it came up with a syntax error.

I therefore changed the code slightly to the code below in red, ( still moving the redirect code up the page as you suggested) but it still did not work.

Any more ideas?

Thanks

Andy

<?php
  /* STEP 1: LOAD RECORDS - Copy this PHP code block to the TOP of your page BEFORE anything else. */
  require_once "init.php";

  list($listingRecords, $listingDetails) = getRecords(array(
    'tableName'   => 'listings',
    'joinTable'   => 'homepages',
    'where'       => whereRecordNumberInUrl(1),
    'limit'       => '1',
  ));
  $listing = @$listingRecords[0];
 

 if (!$listing) { print "Listing not found!"; exit; }
 
 ?>

  <?php permalinks_301redirectToPermalink($listing); ?>

 <?php
// ++++++++++++++
// Get Page URL
// +++++++++++++++
include("../selfURL.php");
$work_url = (selfURL());
// echo $work_url; // Only used for testing BUT $work_url can be placed in code

?>

Hi

Just to let you know that the Permalinks are now working - thanks!

Not sure what the problem was before, I removed a few line breaks and tried again using your permalink redirect code and now works really well.!

The code now looks like this

<?php
  /* STEP 1: LOAD RECORDS - Copy this PHP code block to the TOP of your page BEFORE anything else. */
  require_once "init.php";

  list($listingRecords, $listingDetails) = getRecords(array(
    'tableName'   => 'listings',
    'joinTable'   => 'homepages',
    'where'       => whereRecordNumberInUrl(1),
    'limit'       => '1',
  ));
  $listing = @$listingRecords[0];


  if (!$listing) { print "Listing not found!"; exit; }
?>
<?php permalinks_301redirectToPermalink($listing); ?>
<?php
// ++++++++++++++
// Get Page URL
// +++++++++++++++
include("../selfURL.php");
$work_url = (selfURL());
// echo $work_url; // Only used for testing BUT $work_url can be placed in code

?>

Regarding my first point, I have also managed to include some free text by creating some extra fields in the database for these. I then include them in my string on line 11 of the permalinks.php file. This line now looks like this (free text fields in red):-

$GLOBALS['PERMALINKS']['autopopulate_fromFields'] = array('property_type for_sale_in town bedrooms beds reference_number', 'title'); // the first field in this list with content will be used to create the permalinks. To use multiple fields separate them with spaces

This gives me a URL of  /villa-for-sale-in-benitachell-3-beds-kjvs183/

You may notice that I am outputting "for" and "in" in the URL. I wanted to do this because it makes the URL more descriptive. To do this I removed these 2 words from line 12 so it is now as follows:-

$GLOBALS['PERMALINKS']['autopopulate_skipWords']  = array('a','an','and','as','at','before','but','by','from','is','into','it','like','of','off','on','onto','per','since','than','the','this','that','to','up','via','with'); // these seo unfriendly words will be removed

Thanks for the support guys

Regards

Andy

By Dave - December 2, 2013

Hi Andy, 

Thanks for reporting back, I'm glad it's working!

 I have also managed to include some free text by creating some extra fields in the database for these.

Cool, curious how you did that.  Did you just create a field called 'for_sale_in' with a default value of 'for sale in'? 

Thanks, cheers!

Dave Edis - Senior Developer
interactivetools.com