Adding FURL's To IP.Nexus Client Area
Should we install IP.Shoutbox?
4 members have voted
This tutorial will show you how can add FURL's (Friendly URL's) to the IP.Nexus Client Area.
Step 1: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_clients -> clientarea
Edit 1:
Replace All With:
{parse js_module="nexus"} <h2 class='maintitle'>{$this->lang->words['client_area']}</h2> <div class='blocks_wrap row2 altrow clearfix'> <div class='block_inner left' style='width: 20%'> <div id='ca_menu' class='menu'> <ul> <li <if test="$this->request['section'] == 'splash'">class='active'</if>><a href='{parse url="app=nexus&module=clients" base="public" template="client-overview" seotitle="overview"}'><img src='{$this->settings['img_url']}/nexus/home.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['overview']}</a></li> <li <if test="$this->request['section'] == 'purchases'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=purchases" base="public" template="client-purchases" seotitle="purchases"}'><img src='{$this->settings['img_url']}/nexus/package.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['purchases']}</a></li> <li <if test="$this->request['section'] == 'invoices'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=invoices" base="public" template="client-invoices" seotitle="invoices"}'><img src='{$this->settings['img_url']}/nexus/invoice.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['invoices']}</a></li> <li <if test="$this->request['module'] == 'support'">class='active'</if>><a href='{parse url="app=nexus&module=support" base="public" template="client-support" seotitle="support"}'><img src='{$this->settings['img_url']}/nexus/support.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['support']}</a></li> <if test="$this->memberData['cm_credits'] and $this->settings['nexus_payout']"> <li <if test="$this->request['section'] == 'payouts'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=payouts" base="public" template="client-payouts" seotitle="payouts"}'><img src='{$this->settings['img_url']}/nexus/credit.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['payouts']}</a></li> </if> <if test="!empty( $this->caches['donation_goals'] )"> <li <if test="$this->request['section'] == 'donations'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=donations" base="public" template="client-donations" seotitle="donations"}'><img src='{$this->settings['img_url']}/nexus/donate.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['donations']}</a></li> </if> <if test="!empty( $this->caches['nexus_adpacks'] )"> <li <if test="$this->request['section'] == 'ads'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=ads" base="public" template="client-advertise" seotitle="advertise"}'><img src='{$this->settings['img_url']}/nexus/ads.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['advertisements']}</a></li> </if> <if test="$this->settings['cm_ref_on']"> <li <if test="$this->request['section'] == 'referrals'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=referrals" base="public" template="client-referrals" seotitle="referrals"}'><img src='{$this->settings['img_url']}/nexus/referral.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['referrals']}</a></li> </if> <li <if test="$this->request['section'] == 'altcontacts'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=altcontacts" base="public" template="client-altcontacts" seotitle="alternate-contacts"}'><img src='{$this->settings['img_url']}/nexus/alt_user.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['altcontacts']}</a></li> <if test="!$this->settings['nexus_hide_info']"> <li <if test="$this->request['section'] == 'info'">class='active'</if>><a href='{parse url="app=nexus&module=clients§ion=info" base="public" template="client-personalinfo" seotitle="personal-information"}'><img src='{$this->settings['img_url']}/nexus/user.png' alt='{$this->lang->words['icon']}' /> {$this->lang->words['personal_info']}</a></li> </if> </ul> </div> </div> <div class='block_inner right' id='ca_content' style='width: 79%'> <div class='pad'> {$content} </div> </div> </div>
Edit 2: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_clients -> home
<h2>{parse expression="sprintf( $this->lang->words['ca_welcome'], $name )"}</h2> <p style='margin-bottom:25px'>{$ca_home}</p> <if test="!empty($invoices)"> <h2>{$this->lang->words['status_pend']}</h2> <table class='ipb_table' style='margin-bottom:25px'> <foreach loop="$invoices as $invoice"> <tr> <td class='short' style='width: 50px'><span class='desc'>#{$invoice['i_id']}</span></td> <td> <a href='{parse url="app=nexus&module=clients§ion=invoices&do=view&id={$invoice['i_id']}" base="public" template="client-invoices-view" seotitle="{$invoice['i_id']}"}'><strong>{$invoice['i_title']}</strong></a><br /> <span class='desc'>{parse date="$invoice['i_date']" format="long"}</span> </td> <td style='text-align: right'> <if test="$invoice['i_status'] == 'pend' or $invoice['i_status'] == 'expired'"> <a href='{parse url="app=nexus&module=payments§ion=pay&id={$invoice['i_id']}" base="public" template="client-invoices-view" seotitle="{$invoice['i_id']}"}' class='input_submit'>{$this->lang->words['invoices_pay']}</a> </if> </td> <td style='text-align: right; width: 10%; font-size: 16px;'> {parse currency="$invoice['i_total']"} </td> </tr> </foreach> </table> </if> <if test="!empty($requests)"> <h2 class='left'>{$this->lang->words['sr_open']}</h2> {parse striping="tickets" classes="row1,row2"} <table class='ipb_table' style='margin-bottom:25px'> <tr class='header'> <th style='width: 30px'> </th> <th style='width: 50%'>{$this->lang->words['support_title']}</th> <th style='width: 20%' class='short'>{$this->lang->words['support_last_reply']}</th> <th style='width: 25%'>{$this->lang->words['support_status']}</th> </tr> <if test="count( $requests )"> <foreach loop="$requests as $request"> <tr class='{parse striping="tickets"}'> <td class='short'><img src='{$this->settings['img_url']}/{$request['icon']}.png' /></td> <td> <if test="!$request['r_status_open'] && !$request['r_status_locked']"> <strong><a href='{parse url="app=nexus&module=support§ion=view&id={$request['r_id']}" base="public" template="client-support-view" seotitle="{$request['r_id']}"}' title='{$this->lang->words['support_view']}'>{$request['r_title']}</a></strong> <else /> <a href='{parse url="app=nexus&module=support§ion=view&id={$request['r_id']}" base="public" template="client-support-view" seotitle="{$request['r_id']}"}' title='{$this->lang->words['support_view']}'>{$request['r_title']}</a> </if> <br /> <span class='desc'>{$request['r_department_text']}</span> </td> <td class='short desc'>{parse date="$request['r_last_reply']" format="joined"}</td> <td> {$request['r_status_text']} </td> </tr> </foreach> <else /> <tr> <td colspan='4' class='no_messages'> {$this->lang->words['support_empty']} </td> </tr> </if> </table> </if>
Edit 3: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_clients -> payoutInfo
<h2>Payout Request</h2> <p class='block_text'> {$this->lang->words['payouts_info']} </p> <br /> <form action='' method='post' id='payout_request'> <input type='hidden' name='secure_key' value='{$this->member->form_hash}' /> <input type='hidden' name='gateway' value='{$gateway}' /> <ul> <foreach loop="$settings as $k => $data"> <li class='field'> <label for='f_{$k}'>{$data['title']}</label> <if test="$data['type'] == 'formInput'"> <input name='data[{$k}]' id='f_{$k}' class='input_text' size='30' /> <else /> <if test="$data['type'] == 'formTextarea'"> <textarea name='data[{$k}]' class='input_text' rows='4' cols='30'></textarea> </if> </if> <if test="$data['desc']"> <span class='desc'>{$data['desc']}</span> </if> </li> </foreach> </ul> <br /> <input type='submit' class='input_submit' value='{$this->lang->words['payouts_submit']}' /> {$this->lang->words['or']} <a href='{parse url="app=nexus&module=clients§ion=payouts" base="public" template="client-payouts" seotitle="payouts"}' title='{$this->lang->words['cancel']}' class='cancel'>{$this->lang->words['cancel']}</a> </form>
Edit 4: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_clients -> purchaseRow
<php> $parent = $purchase['ps_parent']; $padding = 0; while ( $parent != 0 ) { $padding += 50; $parent = $purchases[ $parent ]['ps_parent']; } </php> <li class='clear clearfix row2' style='margin-left:{$padding}px'> <div class='product_info left' style='min-width: 450px'> <img src='{$purchase['img']}' {parse resize_image="{$purchase['img']}" maxwidth="40" maxheight="40"} class='left' /> <div style='margin-left: 55px'> <h3> <if test="$purchase['ps_item_uri']"> <a href='{parse url="{$purchase['ps_item_uri']}" base="public"}'>{$purchase['ps_name']}</a> <else /> <if test="$purchase['ps_app'] == 'nexus' and $purchase['ps_type'] == 'package'"> <a href='{parse url="app=nexus&module=clients§ion=purchases&do=view&id={$purchase['ps_id']}" base="public" template="client-purchases-view" seotitle="{$purchase['ps_id']}"}'>{$purchase['ps_name']}</a> <else /> {$purchase['ps_name']} </if> </if> <if test="$purchase['ps_cancelled']"> <span class='negative desc'>({$this->lang->words['invoices_canc']})</span> <else /> <if test="!$purchase['ps_active']"> <span class='zero desc'>({$this->lang->words['invoices_expd']})</span> </if> </if> </h3> <p class='links'> <if test="$purchase['ps_app'] == 'nexus' and $purchase['ps_type'] == 'package'"> <a href='{parse url="app=nexus&module=clients§ion=purchases&do=view&id={$purchase['ps_id']}&secure_key={$this->member->form_hash}" base="public" template="client-purchases-view" seotitle="{$purchase['ps_id']}"}' class='input_submit alt'>{$this->lang->words['purchase_view']}</a> </if> <if test="$purchase['renewable']"> <a href='{parse url="app=nexus&module=clients§ion=purchases&do=renew&id={$purchase['ps_id']}&secure_key={$this->member->form_hash}" base="public"}' class='input_submit'>{$this->lang->words['purchase_renew']}</a> </if> <if test="!empty($purchase['upgradeOptions'])"> <a href='{parse url="app=nexus&module=clients§ion=purchases&do=change&id={$purchase['ps_id']}&secure_key={$this->member->form_hash}" base="public"}' class='input_submit'>{$this->lang->words['change_package']}</a> </if> </p> <if test="$purchase['ps_expire']"> <span class='desc'>{$this->lang->words['store_renewal']} {$purchase['renewal']}</span> </if> </div> </div> <p class='ship_info left' style='width: 200px'> <span class='desc'>{$this->lang->words['purchased']}</span><br /> <strong class='package_date'>{parse date="$purchase['ps_start']" format="joined"}</strong> </p> <if test="$purchase['ps_expire']"> <p class='ship_info left' style='width: 200px'> <span class='desc'>{$this->lang->words['expires']}</span><br /> <strong class='package_date'>{parse date="$purchase['ps_expire']" format="joined"}</strong> </p> </if> </li> <if test="is_array( $parentMap[ $purchase['ps_id'] ] )"> <foreach loop="$parentMap[ $purchase['ps_id'] ] as $child"> {parse template="purchaseRow" group="nexus_clients" params="$purchases[ $child ], $parentMap, $purchases"} </foreach> </if>
Edit 5: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_clients -> showInvoices
<h2>{$this->lang->words['your_invoices']}</h2> <p> {$this->lang->words['invoices_blurb']} </p> <br /> <br /> <ul id='invoices_tabs' class='tab_bar mini no_title'> <if test="$invoices['pend']"><li class='tab <if test="$defaultTab == 'pend'">active</if> clickable' id='t_pend'><a href='#pend'>{$this->lang->words['invoices_pend']} ({parse expression="count($invoices['pend'])"})</a></li></if> <if test="$invoices['paid']"><li class='tab <if test="$defaultTab == 'paid'">active</if> clickable' id='t_paid'><a href='#paid'>{$this->lang->words['invoices_paid']} ({parse expression="count($invoices['paid'])"})</a></li></if> <if test="$invoices['expd']"><li class='tab <if test="$defaultTab == 'expd'">active</if> clickable' id='t_expd'><a href='#expd'>{$this->lang->words['invoices_expd']} ({parse expression="count($invoices['expd'])"})</a></li></if> <if test="$invoices['canc']"><li class='tab <if test="$defaultTab == 'canc'">active</if> clickable' id='t_canc'><a href='#canc'>{$this->lang->words['invoices_canc']} ({parse expression="count($invoices['canc'])"})</a></li></if> </ul> <foreach loop="$invoices as $status => $_invoices"> <div id='t_pane_{$status}' <if test="$status != $defaultTab">style='display: none'</if>> <a id='{$status}'></a> <table class='ipb_table'> <tr class='header'> <th colspan='4'>{$this->lang->words['status_' . $status]}</th> </tr> <foreach loop="$_invoices as $invoice"> <tr> <td class='short' style='width: 50px'><span class='desc'>#{$invoice['i_id']}</span></td> <td> <a href='{parse url="app=nexus&module=clients§ion=invoices&do=view&id={$invoice['i_id']}" base="public" template="client-invoices-view" seotitle="{$invoice['i_id']}"}'><strong>{$invoice['i_title']}</strong></a><br /> <span class='desc'>{parse date="$invoice['i_date']" format="long"}</span> </td> <td style='text-align: right'> <if test="$invoice['i_status'] == 'pend' or $invoice['i_status'] == 'expired'"> <a href='{parse url="app=nexus&module=payments§ion=pay&id={$invoice['i_id']}" base="public"}' class='input_submit'>{$this->lang->words['invoices_pay']}</a> </if> </td> <td style='text-align: right; width: 10%; font-size: 16px;'> {parse currency="$invoice['i_total']"} </td> </tr> </foreach> </table> </div> </foreach> <script type='text/javascript'> ipb.nexus.currentTab = '{$defaultTab}'; </script>
Edit 6: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_clients -> showUpgradeOptions
<h2>{$this->lang->words['change_package']}</h2> <p class='block_text'> {$this->lang->words['change_package_blurb']}<br /> </p> <form action='{parse url="app=nexus&module=clients§ion=purchases&do=change&id={$purchase['ps_id']}" base="public"}' method='post'> <input type='hidden' name='secure_key' value='{$this->member->form_hash}' /> <ul class='block_list' id='package_change'> <foreach loop="$options as $option"> <li class='clear clearfix row2'> <span class='toggle'> <input type='radio' name='select' value='{$option['p_id']}' class='input_radio' /> </span> <div style='margin-left: 55px'> <h3>{$option['p_name']}</h3> <p class='block_text'> {$option['cost']} <if test="$option['cost'] && $option['renewal_terms']"><br /></if> {$option['renewal_terms']} </p> </div> </li> </foreach> </ul> <br /> <input type='submit' value='{$this->lang->words['change_save']}' class='input_submit' /> {$this->lang->words['or']} <a href='{parse url="app=nexus&module=clients§ion=purchases" base="public" template="client-purchases" seotitle="purchases"}' title='{$this->lang->words['cancel']}' class='cancel'>{$this->lang->words['cancel']}</a> </form>
Edit 7: Go to ACP -> Look & Feel -> Select Skin -> skin_nexus_support -> customerList
<h2 class='left'>{$this->lang->words['support_requests']}</h2> <a href='{parse url="app=nexus&module=support§ion=new" base="public"}' class='input_submit right' style='font-size: 13px'>{$this->lang->words['new_request']}</a> <br class='clear' /><br /> {parse striping="tickets" classes="row1,row2"} <table class='ipb_table'> <tr class='header'> <th style='width: 30px'> </th> <th style='width: 50%'>{$this->lang->words['support_title']}</th> <th style='width: 20%' class='short'>{$this->lang->words['support_last_reply']}</th> <th style='width: 25%'>{$this->lang->words['support_status']}</th> </tr> <if test="count( $requests )"> <foreach loop="$requests as $request"> <tr class='{parse striping="tickets"}'> <td class='short'><img src='{$this->settings['img_url']}/{$request['icon']}.png' /></td> <td> <if test="!$request['r_status_open'] && !$request['r_status_locked']"> <strong><a href='{parse url="app=nexus&module=support§ion=view&id={$request['r_id']}" base="public" template="client-support-view" seotitle="{$request['r_id']}"}' title='{$this->lang->words['support_view']}'>{$request['r_title']}</a></strong> <else /> <a href='{parse url="app=nexus&module=support§ion=view&id={$request['r_id']}" base="public" template="client-support-view" seotitle="{$request['r_id']}"}' title='{$this->lang->words['support_view']}'>{$request['r_title']}</a> </if> <br /> <span class='desc'>{$request['r_department_text']}</span> </td> <td class='short desc'>{parse date="$request['r_last_reply']" format="joined"}</td> <td> {$request['r_status_text']} </td> </tr> </foreach> <else /> <tr> <td colspan='4' class='no_messages'> {$this->lang->words['support_empty']} </td> </tr> </if> </table>
Step 2: File Edits
Edit 1: Open FTP and find, admin -> applications_addon -> ips -> nexus -> extensions -> furlTemplates.php
Find: (On line 93)
);
Add Before:
'client-overview' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients/i', 'customer/overview/' ), 'in' => array( 'regex' => "#/customer/overview/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), ) ) ), 'client-purchases' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=purchases/i', 'customer/purchases/' ), 'in' => array( 'regex' => "#/customer/purchases/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'purchases' ), ) ) ), 'client-purchases-view' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=purchases(?:(?:&|&))do=view(?:(?:&|&))id=(\d+)/i', 'customer/view/purchase/$1-#{__title__}/' ), 'in' => array( 'regex' => "#/customer/view/purchase/(\d+?)-#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'purchases' ), array( 'do', 'view' ), array( 'id', '$1' ), ) ) ), 'client-invoices' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=invoices/i', 'customer/invoices/' ), 'in' => array( 'regex' => "#/customer/invoices/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'invoices' ), ) ) ), 'client-invoices-view' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=invoices(?:(?:&|&))do=view(?:(?:&|&))id=(\d+)/i', 'customer/view/invoice/$1-#{__title__}/' ), 'in' => array( 'regex' => "#/customer/view/invoice/(\d+?)-#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'invoices' ), array( 'do', 'view' ), array( 'id', '$1' ), ) ) ), 'client-support' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=support/i', 'customer/support/' ), 'in' => array( 'regex' => "#/customer/support/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'support' ), ) ) ), 'client-support-new' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=support(?:(?:&|&))section=new/i', 'customer/support/create-ticket/' ), 'in' => array( 'regex' => "#/customer/support/create-ticket/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'support' ), array( 'section', 'new' ), ) ) ), 'client-support-view' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=support(?:(?:&|&))section=view(?:(?:&|&))id=(\d+)/i', 'customer/view/support/$1-#{__title__}/' ), 'in' => array( 'regex' => "#/customer/view/support/(\d+?)-#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'support' ), array( 'section', 'view' ), array( 'id', '$1' ), ) ) ), 'client-payouts' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=payouts/i', 'customer/payouts/' ), 'in' => array( 'regex' => "#/customer/payouts/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'payouts' ), ) ) ), 'client-donations' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=donations/i', 'customer/donations/' ), 'in' => array( 'regex' => "#/customer/donations/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'donations' ), ) ) ), 'client-advertise' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=ads/i', 'customer/advertise/' ), 'in' => array( 'regex' => "#/customer/advertise/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'ads' ), ) ) ), 'client-referrals' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=referrals/i', 'customer/referrals/' ), 'in' => array( 'regex' => "#/customer/referrals/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'referrals' ), ) ) ), 'client-altcontacts' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=altcontacts/i', 'customer/alternate-contacts/' ), 'in' => array( 'regex' => "#/customer/alternate-contacts/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'altcontacts' ), ) ) ), 'client-personalinfo' => array( 'app' => 'nexus', 'allowRedirect' => 0, 'out' => array( '/app=nexus(?:(?:&|&))module=clients(?:(?:&|&))section=info/i', 'customer/personal-information/' ), 'in' => array( 'regex' => "#/customer/personal-information/?#i", 'matches' => array( array( 'app', 'nexus' ), array( 'module', 'clients' ), array( 'section', 'info' ), ) ) ),
Once you have done all of the following instructions, you should now have Friendly URL's installed for your IP.Nexus Client Area.
If you have questions or concerns about this tutorial, please post your comments and I'll try to help you with this.
Regards,
Donald ^_^
0 Comments
Recommended Comments
There are no comments to display.