Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-27-2010, 02:12 PM
Ljusya Ljusya is offline
 
Join Date: Jul 2007
Location: Irkutsk
Posts: 46
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How to create friendly url for my own addon ?

Now in my addon links look like as http://mysite.net/addon.php?category=2&id=123

But i want change it like as http://mysite.net/category/2-123 if forum using friendly url

I look class_friendly_url.php but not enough understened how to do this
Reply With Quote
  #2  
Old 04-28-2010, 12:27 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Look up fetch_seo_url in the API (or the files).
Reply With Quote
  #3  
Old 05-02-2010, 03:45 PM
Andreas's Avatar
Andreas Andreas is offline
 
Join Date: Jan 2004
Location: Germany
Posts: 6,863
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You'll need to
  • Subclass vB_Friendly_Url/vB_Friendly_Url_Paged
    Take a look at vB_Friendly_Url_Member in class_friendly_url.php to see how that works - it's pretty straightforward.
  • Create a Plug-in for Hook Hook friendlyurl_resolve_class to load your class if necessary
  • Create an appropriate rewrite rule
  • Use fetch_seo_url(), verify_seo_url() in your PHP code when you constructing URLs
  • Use {vb:link} in your templates
Reply With Quote
  #4  
Old 05-04-2010, 12:43 PM
Ljusya Ljusya is offline
 
Join Date: Jul 2007
Location: Irkutsk
Posts: 46
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

thanks, so i describe all my steps
i create file /includes/class_myaddon_seo.php with code
PHP Code:
class vB_Friendly_Url_Category extends vB_Friendly_Url_Paged
{
    protected 
$idvar 'cat';
    protected 
$idkey 'id';
                protected 
$titlekey 'catname';
    protected 
$ignorelist = array('cat','product');
    protected 
$script 'myaddon.php';
    protected 
$rewrite_segment 'category';

create plugin on hook friendlyurl_resolve_class
PHP Code:
include_once('./includes/class_myaddon_seo.php'); 
in myaddon.php define
PHP Code:
define('FRIENDLY_URL_LINK''articles'); 
add in .htaccess rules
PHP Code:
ReWriteRule ^category/.* myaddon.php [QSA
And successfully generate links for example
PHP Code:
$url=$vbulletin->options['bburl'].'/'.fetch_seo_url('category',$categorydata); 
And links look as http://mysite.net/category/id-categoryname
All works good!
Reply With Quote
  #5  
Old 05-09-2010, 04:02 AM
Jaxel Jaxel is offline
 
Join Date: Sep 2005
Posts: 1,160
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Okay... I'm confused on how this whole process works. Would someone mind explaining it better to me?

media.php?do=category&cid=(categoryID)
media.php?do=details&mid=(mediaID)
media.php?do=user&uid=(userID)

media/c(categoryID)-(categoryName)
media/m(mediaID)-(mediaName)
media/u(userID)-(userName)

Is something like this possible? And if so, how would I do it?

--------------- Added [DATE]1273382667[/DATE] at [TIME]1273382667[/TIME] ---------------

With my URLs, a lot of information can get passed... for instance

/media.php?do=category&cid=9&sort=rating&page=5

With my current SEO method (I want to change, because its causing problems), the URL would be:

/media/c9-kogarasumaru?sort=rating&page=5

With the built in SEO method, could I keep a similar URL? Or would it have to be:

/media/category/9-kogarasumaru/rating/5
Reply With Quote
  #6  
Old 06-18-2010, 11:49 AM
xman_79's Avatar
xman_79 xman_79 is offline
 
Join Date: Jun 2006
Location: Romania
Posts: 65
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi,
::Edit.

Sorry, I had an error in my code. Now everything works fine

------------------------

::Old
Quote:
I tried this method but I got an error:
Call to undefined method vB_Friendly_Url_Error::redirect_canonical_url() in ...\includes\functions.php on line 6902
Reply With Quote
  #7  
Old 11-22-2010, 01:44 PM
Vossi Vossi is offline
 
Join Date: Mar 2005
Location: Germany
Posts: 437
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How can I handle a link like this one:

myaddon.php?do=showentry&id=1

As a matter of fact I didnt find any way to work with such a link in order to convert it to

myaddon/entry/1-nameofentry

This would be the friendly url I'd like to see, but with the actual method vB uses it aint easy to do.

Any ideas?
Reply With Quote
  #8  
Old 11-22-2010, 02:42 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

If you need to actually have a 'converter' script for your own page, then you can probably write a class to extend vB_Friendly_Url_Paged
Reply With Quote
  #9  
Old 11-22-2010, 03:54 PM
Vossi Vossi is offline
 
Join Date: Mar 2005
Location: Germany
Posts: 437
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Lynne View Post
If you need to actually have a 'converter' script for your own page, then you can probably write a class to extend vB_Friendly_Url_Paged
What means, that I cant do it like the way which is explained in this thread, correct?

To actually 'convert'

myaddon.php?id=1

to

myaddon/1-nameofentry

is described in here; i got this done (with changings).
Reply With Quote
  #10  
Old 11-22-2010, 06:36 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You would need to add that to your htaccess if you want it to redirect.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:37 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04830 seconds
  • Memory Usage 2,264KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (5)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (1)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (10)postbit
  • (10)postbit_onlinestatus
  • (10)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete