Pereiti prie turinio

Dėl short url skripto


Rekomenduojami pranešimai

Sveiki,

Taigi, radau short url skriptą, būtent toks, kokio man reikia:

http://www.gentlesource.com/demos/demo-short-url-script/?a=y

 

Su mod_rewrite skripte galima padaryt peradresavimą domenas.lt/short_url/JONAS ar panašiai. Va šito ir ieškojau. Tik labai norėčiau jį suinstaliuot į root direktoriją (kad būtų domenas.lt/JONAS, gražiau atrodo). O ten pas mane jau yra CMS'o index.php, o juos abu labai norėčiau naudoti kartu. Pakeitus pvz. į redirect.php, peradresavimas aišku nebeveikia. Suprantu, kad kažką reikia pakeist, bet nežinau ką, o tas skriptas kažkoks perdėtai apkrautas, 1.3 MB ir 180 failų (!) nors yra iš pažiūros labai paprastas... Tai visai pasimečiau :D

 

Prašau pagalbos, pasakykit ką reikia pakeist (jei tai nėra ypač sudėtinga), siūlykit kitą skriptą ar dar ką nors...

 

Čia index.php kodas:

 

 <?php

// Settings
define('S6L_ROOT', './');

$detail_template = 'short_url_form.tpl.html';
$login_level	 = 0;
$message		 = array();

// Include
require S6L_ROOT . 'include/core.inc.php';
require 'url.class.inc.php';

// Start output handling
$out = new s6l_output($detail_template);

// Handle and validate form
require_once 'HTML/QuickForm.php';

$form = new HTML_QuickForm('form', 'POST');

// Show advanced settings
$advanced = false;
if (s6l_gpc_vars('a') == 'y' or s6l_gpc_vars('u_advanced') == 'y') {
$out->assign('show_advanced_settings', 1);
$form->setDefaults(array('u_advanced' => 'y'));
$advanced = true;
}

// Redirect
$hide_form = false;
$identifier = '';
if ($advanced == false) {
switch ($s6l['url_identifier_handling']) {
	case 'querystring':
		$identifier = getenv('QUERY_STRING');
		s6l_clean_input($identifier);
		break;
	case 'pathinfo':
		$identifier = str_replace('/', '', getenv('PATH_INFO'));
		s6l_clean_input($identifier);
		break;
	case 'parameter':
	case 'modrewrite':
	default:
		$identifier = s6l_gpc_vars('i');
		break;
}
}
if ($identifier != '') {
$url = new s6l_url;
if ($data = $url->get($identifier)) {
	if ($data['url_status'] == 0) {
		header('HTTP/1.1 301 Moved Permanently');
		header('Location: ' . $data['backend_url']);
		exit;
	} else {
		$message[]['message'] = $text['txt_url_deactivated'];
		$hide_form = true;			
	}
} else {
	$message[]['message'] = $text['txt_url_not_found'];
	$hide_form = true;			
}
}


// Get form configuration
require 'short_url_form.inc.php';


// Validate form
$show_form = 1;
if ($s6l['public_url_form'] == 'Y') {
if ($form->validate()) {
	$url = new s6l_url(array('form' => $form));
	if ($short_url = $url->create(s6l_gpc_vars('u'), s6l_gpc_vars('u_id'))) {
		if (isset($short_url['identifier'])) {
			switch ($s6l['url_identifier_handling']) {
				case 'querystring':
					$short_url['output_url'] = $short_url['short_url'] . '?' . $short_url['identifier'];
					break;
				case 'pathinfo':
					$short_url['output_url'] = $short_url['short_url'] . '/' . $short_url['identifier'] . '/';
					break;
				case 'modrewrite':
					$short_url['output_url'] = $short_url['short_url'] . $short_url['identifier'] . '/';
					break;
				case 'parameter':
				default:
					$short_url['output_url'] = $short_url['short_url'] . '?i=' . $short_url['identifier'];
					break;
			}
			$out->assign('show_short_url', 1);
		}
		$out->assign($short_url);

		if (isset($short_url['output_message']) and $short_url['output_message'] != '') {
			// $form->setElementError('u_id', $short_url['output_message']);
			$message[]['message'] = $short_url['output_message'];
		}
	}
}
} else {
$show_form = 0;
$message[]['message'] = $text['txt_url_form_disabled'];
}

if ($hide_form == true) {
$show_form = 0;
}

$out->assign('show_form', $show_form);


require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($out->get_object, true);

$form->accept($renderer);


// Assign array with form data
$out->assign('form', $renderer->toArray());


// Output
$out->assign('short_url', $s6l['short_url']);
$out->assign('message', $message);
$s6l_output = $out->finish(false);
echo $s6l_output;


?>

 

 

Gal reikia ką nors pakeist konfigūracijoj kituose failuose, o gal kažką įterpt į CMS'o index.php, nežinau?

Redagavo Eureka7
Nuoroda į pranešimą
Dalintis kituose puslapiuose

domenas.lt/JONAS (kaip pvz pliusas.com su tokiom nuorodom) darosi su vienu .htaccess failu :D

Puiku, kad darosi, bet man reikia kad lankytojai galėtų naudotis peradresavimu, kažkas panašaus į tinyurl.com, ir dar kad būtų galima pasirinkt peradresavimo vardą. Administravimas sukurtų nuorodų irgi. Apie php deja nieko neišmanau, tai pats susikurt negaliu, o šitas skriptas turi viską ko man reikia.

Redagavo Eureka7
Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • po 2 savaičių...

.htacess faile reiktų nurodyti, kad jei užklausa eina į index.php (tavo CMS'o), tada mod_rewrite taisyklės būtų ignoruojamos. Tą pati gali padaryti ir su /images/ katalogu (jei turi) bei kitais katalogais ir failais, kurie priklauso tavo CMS'ui.

 

Prieš RewriteRule taisykles reiktų įvesti kažką tokio:

RewriteCond %{REQUEST_URI} !^/images/

RewriteCond %{REQUEST_URI} !^/index.php

 

O shorturl script'o index.php tikriausiai galima būtų pervadinti.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...