Page 1 sur 4

Lien en dur sur l'ancre du site ( Annuaire )

Posté : 13 janv. 2013, 19:13
par explozpr
Bonjour à tous,

Voila j'aurais besoin de votre aide, j'ai récemment mis en ligne un annuaire de référencement dont voici l'adresse http://www.exploz-pr.com/

Je souhaiterais y apporter une modification, par exemple sur la vue détaillée d'un site dans mon annuaire comme ICI ==>http://exploz-pr.com/commerce-et-econom ... rande.html
J'aimerais rendre le titre cliquable et que celui-ci soit un lien en dur vers le site en question. Dans ce cas j'aimerais que le titre "Direct Cuisine - Cuisiniste à Hettange-Grande" ai comme lien http://www.directcuisine.eu/

Sachant que ceci dois être applicable à chaque site inscrit sur l'annuaire.

J'ai déja fait quelques recherches et je suis, je pense tombé sur le bon fichier php, voici les lignes que je pense qu'il faut modifier :

Code : Tout sélectionner

<div id="listing"> <h2><?php $link_name = $this->fields->getFieldById(1); $this->plugin( 'ahreflisting', $this->link, $link_name->getOutput(1), '', array("delete"=>true,"link"=>false) ) ?></h2>
Voila, en ésperant avoir été assez clair pour détailler mon problème, merci d'avance .

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 13 janv. 2013, 20:00
par moogli
salut,


regarde du coté de la doc de joomla, vu que ton site à l'air fait avec :)


@+

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 00:27
par explozpr
J'ai oublié de préciser que j'utilise Joomla 2.5.7 ainsi que "Mosets tree"

Voici ce que j'ai comme modifications possible dans l'administration de mosets tree :
Image

Donc actuellement, pour faire un lien vers le site concerné, je choisis l'option "listing's website (new window)" ce qui redirige bien vers le site concerner, exemple: passez votre souris au dessus du titre de l'un de ces sites : http://exploz-pr.com/commerce-et-econom ... ments.html, vous voyez bien que l'adresse n'est pas celle du site direct mais plutôt un lien qui ressemble à ceci : http://exploz-pr.com/commerce-et-econom ... isite.html.

Ce que je voudrais, c'est le lien en dur ( de type http://www.lesite.fr ) à la place de ce type de lien cité ci-dessus .

J'ai trouvé la partie du code ( parmis les fichiers php du module mosets tree )qui concerne les options dans l'image ci-dessus. cette option agis dans la vue des sites en "liste" si-je puis dire ( un exemple de sites vue en mode liste pour expliquer : http://exploz-pr.com/informatique-et-in ... ernet.html )

et voici le code concerné:

Code : Tout sélectionner

<div class="header"> <h3><?php $link_name = $fields->getFieldById(1); switch( $this->config->getTemParam('listingNameLink','1') ) { default: case 1: $this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false) ); break; case 4: if( !empty($link->website) ) { $this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false), 1 ); } else { $this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false) ); } break; case 2: $this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false), 1 ); break; case 3: $this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), 'target="_blank"', array('delete'=>false), 1 ); break; case 0: $this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false, 'link'=>false) ); break; } ?></h3>
Donc voila, que pourrais-je, ou que dois-je modifier pour obtenir ces fameux liens en dur directement dans le titre du site ? Merci .

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 01:54
par sam12
Il faudrait voir ce qu'il y a dans le <p class="website"> pour voir comment est affiché le lien en dur.
En supposant que ce soit ce cas (pour le _blank):
case 3:
$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), 'target="_blank"', array('delete'=>false), 1 );
 break;
Si $link est le lien 'normal' et le $link_name->getOutput(2), le lien non souhaité, il faudrait peut-être faire:
$this->plugin( 'ahreflisting', $link, $link, 'target="_blank"', array('delete'=>false), 1 );
Après ça reste de la supposition pure, il faudrait voir ce que retourne chaque variable et comment marchent les fonctions.

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 15:01
par explozpr
Il faudrait voir ce qu'il y a dans le <p class="website"> pour voir comment est affiché le lien en dur.
En supposant que ce soit ce cas (pour le _blank):
case 3:
$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), 'target="_blank"', array('delete'=>false), 1 );
 break;
Si $link est le lien 'normal' et le $link_name->getOutput(2), le lien non souhaité, il faudrait peut-être faire:
$this->plugin( 'ahreflisting', $link, $link, 'target="_blank"', array('delete'=>false), 1 );
Après ça reste de la supposition pure, il faudrait voir ce que retourne chaque variable et comment marchent les fonctions.
Merci pour ton aide, je pense qu'on est sur la bonne voie.

J'ai testé, mais cela ne fonctionne pas. Mais je suis sur que cela ce passe dans ces lignes la.

Une autre partis du code de cette même page m'interpelle, la partie du lien en lui même, comme ici :
Image

Voici le code de cette partie encadrée :
	// Website
		$website = $fields->getFieldById(12);
		if(!is_null($website) && $website->hasValue()) { echo '<p class="website">' . $website->getOutput(2) . '</p>'; }

		// Listing's first image
		if(!is_null($fields->getFieldById(2)) || $link->link_image) {
			echo '<p>';
			if(!is_null($fields->getFieldById(2))) { 
				$link_desc = $fields->getFieldById(2);
				echo $link_desc->getOutput(2);
			}
			echo '</p>';
		}
J'ai déja essayé de mettre aussi $website au lieu de $link_name, comme ceci:
				case 3:
					$this->plugin( 'ahreflisting', $link, $website->getOutput(2), 'target="_blank"', array('delete'=>false), 1 );
					break;
		
Mais c'est la même chose, erreur !

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 15:37
par sam12
D'accord donc avec
 echo '<p class="website">' . $website->getOutput(2) . '</p>'
Si on récupère le lien, j'en conclus que $website->getOutput(2) est le lien en dur. Si on voulait faire les fous, on modifierait $link_name = $fields->getFieldById(1); en $link_name = $fields->getFieldById(12); pour voir si on récupère bien le lien en dur (vu $website = $fields->getFieldById(12); retourne le lien en dur).

Comme dit précédemment, il faudrait afficher toutes les variables qu'on utilise (echo voire print_r).

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 15:42
par explozpr
D'accord donc avec
 echo '<p class="website">' . $website->getOutput(2) . '</p>'
Si on récupère le lien, j'en conclus que $website->getOutput(2) est le lien en dur. Si on voulait faire les fous, on modifierait $link_name = $fields->getFieldById(1); en $link_name = $fields->getFieldById(12); pour voir si on récupère bien le lien en dur (vu $website = $fields->getFieldById(12); retourne le lien en dur).

Comme dit précédemment, il faudrait afficher toutes les variables qu'on utilise (echo voire print_r).
Que veux tu-dire ? tu souhaite voir tous les fichiers php du module mosets ?

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 15:55
par sam12
Non, je n'ai pas envie de mourir dans la minute :D
Juste un affichage des variables qu'on utilise du script: $link_name->getOutput(2), $link etc... et fais moi 1 récapitulatif ;)

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 16:09
par explozpr
Non, je n'ai pas envie de mourir dans la minute :D
Juste un affichage des variables qu'on utilise du script: $link_name->getOutput(2), $link etc... et fais moi 1 récapitulatif ;)
ok, je fait ça des que possible, merci

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 18:09
par explozpr
Re-salut, voici des portions de php des différents fichiers du module mosets:
<?php

<div id="listing">

<h2><?php 
$link_name = $this->fields->getFieldById(1);
$this->plugin( 'ahreflisting', $this->link, $link_name->getOutput(1), '', array("delete"=>true,"link"=>false) ) 
?></h2>


////////////////////////////////////


if(!is_null($this->fields->getFieldById(2))) { 
	$link_desc = $this->fields->getFieldById(2);
	echo $link_desc->getOutput(1);
	
///////////////////////////////////

echo '<div class="rating">';
		$this->plugin( 'ratableRating', $this->link, $this->link->link_rating, $this->link->link_votes);
		echo '<div id="total-votes">';
		if( $this->link->link_votes <= 1 ) {
			echo $this->link->link_votes . " " . strtolower(JText::_( 'Vote' ));
		} elseif ($this->link->link_votes > 1 ) {
			echo $this->link->link_votes . " " . strtolower(JText::_( 'Votes' ));
		}
              
		echo '</div>';	
		
		
//////////////////////////////////

if( 
		( 
			(!$field->hasInputField() && !$field->isCore() && empty($value)) || (!empty($value) || $value == '0')
			&& 
			// This condition ensure that fields listed in array() are skipped
			!in_array($field->getName(),array('link_name','link_desc'))

////////////////////////////////	

// Fields in array() are always displayed regardless of its value.
		in_array($field->getName(),array('link_featured'))		
		
/////////////////////////////////	

<div class="actions-rating-fav">
	<?php if( $this->show_actions ) { ?>
	<div class="actions">
	<?php 
		$this->plugin( 'ahrefreview', $this->link, array("rel"=>"nofollow") ); 
		$this->plugin( 'ahrefrecommend', $this->link, array("rel"=>"nofollow") );	
		$this->plugin( 'ahrefprint', $this->link );
		$this->plugin( 'ahrefcontact', $this->link, array("rel"=>"nofollow") );
		$this->plugin( 'ahrefvisit', $this->link );
		$this->plugin( 'ahrefreport', $this->link, array("rel"=>"nofollow") );
		$this->plugin( 'ahrefclaim', $this->link, array("rel"=>"nofollow") );
		$this->plugin( 'ahrefownerlisting', $this->link );
		$this->plugin( 'ahrefmap', $this->link );
	?></div><?php	
	
//Page_listing.tpl.php//
//sub_listingDetails.tpl.php//

if( !empty($modules) )
	{
		$contents	.= '<div class="columns1-modules-inner">';
		foreach ($modules as $mod)  {
			$params = new JRegistry( $mod->params );
			$contents .= '<div class="module'.$params->get('moduleclass_sfx').'">';
			$contents .= '<h3>' . $mod->title . '</h3>';
			$contents .= '<div class="triangle"></div>';
			$contents .= $renderer->render($mod);
			$contents .= '</div>';
		}
		$contents	.= '</div>';
	}

	$modules = JModuleHelper::getModules('listing2-footer');
	if( !empty($modules) )
	{
		$contents	.= '<div class="columns2-modules-inner">';
		foreach ($modules as $mod)  {
			$params = new JRegistry( $mod->params );
			$contents .= '<div class="module'.$params->get('moduleclass_sfx').'">';
			$contents .= '<h3>' . $mod->title . '</h3>';
			$contents .= '<div class="triangle"></div>';
			$contents .= $renderer->render($mod);
			$contents .= '</div>';
		}
		$contents	.= '</div>';
	}	
//sub_listingSummary.tpl.php//

echo '<span class="reviews">';
				echo '<a href="' . JRoute::_( 'index.php?option=com_mtree&task=viewlink&link_id=' . $link->link_id . '&Itemid='  . $this->Itemid ) . '">' . $this->reviews[$link->link_id]->total . ' ' . strtolower(JText::_( 'Reviews' )) . '</a>';
				echo '</span>';
			}
			echo '</div>';
		} else {
			echo '</div>';
			// Rating
			echo '<div class="rating-review">';
			$this->plugin( 'rating', $link->link_rating, $link->link_votes, $link->attribs);

			if( $this->config->get('show_review') )
			{
				echo '<span class="reviews">';
				echo '<a href="' . JRoute::_( 'index.php?option=com_mtree&task=viewlink&link_id=' . $link->link_id . '&Itemid='  . $this->Itemid ) . '">' . $this->reviews[$link->link_id]->total . ' ' . strtolower(JText::_( 'Reviews' )) . '</a>';
				echo '</span>';
			}
			echo '</div>';
		}
		
		if( $this->config->getTemParam('showImageInSummary',1) )
		{
			if ($link->link_image ) {
				$this->plugin( 'ahreflistingimage', $link, 'class="image' . (($this->config->getTemParam('imageDirectionListingSummary','left')=='right') ? '':'-left') . '" alt="'.htmlspecialchars($link->link_name).'"' );
			}
			else if ( $this->config->getTemParam('showFillerImage',1) ) 
			{
				?>
				<a href="<?php echo JRoute::_('index.php?option=com_mtree&task=viewlink&link_id=' . $link->link_id . '&Itemid='  . $this->Itemid); ?>">
				<img src="<?php echo $this->config->getjconf('live_site'); ?>/components/com_mtree/templates/kinabalu/images/noimage_thb.png" width="<?php echo $this->config->get('resize_listing_size'); ?>" height="<?php echo $this->config->get('resize_listing_size'); ?>" class="image<?php echo (($this->config->getTemParam('imageDirectionListingSummary','left')=='right') ? '':'-left'); ?>" alt="" />
				</a>

/////////////////////////////////

// Website
		$website = $fields->getFieldById(12);
		if(!is_null($website) && $website->hasValue()) { echo '<p class="website">' . $website->getOutput(2) . '</p>'; }

		// Listing's first image
		if(!is_null($fields->getFieldById(2)) || $link->link_image) {
			echo '<p>';
			if(!is_null($fields->getFieldById(2))) { 
				$link_desc = $fields->getFieldById(2);
				echo $link_desc->getOutput(2);
			}
			echo '</p>';	
// Listing's category
		if($this->task <> 'listcats' && $this->task <> '' ) {
			echo '<div class="category"><span>' . JText::_( 'Category' ) . ':</span>';
			$this->plugin( 'mtpath', $link->cat_id, '' );
			echo '</div>';	

//////////////////////////////

echo '</div>';
		
		if($this->config->getTemParam('showActionLinksInSummary','0')) {
			echo '<div class="actions">';
			$this->plugin( 'ahrefreview', $link, array("rel"=>"nofollow") ); 
			$this->plugin( 'ahrefrecommend', $link, array("rel"=>"nofollow") );	
			$this->plugin( 'ahrefprint', $link );
			$this->plugin( 'ahrefcontact', $link, array("rel"=>"nofollow") );
			$this->plugin( 'ahrefvisit', $link );
			$this->plugin( 'ahrefreport', $link, array("rel"=>"nofollow") );
			$this->plugin( 'ahrefclaim', $link, array("rel"=>"nofollow") );
			$this->plugin( 'ahrefownerlisting', $link );
			$this->plugin( 'ahrefmap', $link );
			echo '</div>';
		}


//sub_listings.tpl.php//

else {
	if($this->pageNav->total > 0) {
		?>
		<div class="pages-links">
			<span class="xlistings"><?php echo $this->pageNav->getResultsCounter(); ?></span>
			<?php echo $this->pageNav->getPagesLinks(); ?>
		</div>

		<?php
		$i = 0;
		foreach ($this->links AS $link) {
			$i++;
			$fields = $this->fields[$link->link_id];
			include $this->loadTemplate('sub_listingSummary.tpl.php');
		}

		if( $this->pageNav->total > $this->pageNav->limit ) { ?>
		<div class="pages-links">
			<span class="xlistings"><?php echo $this->pageNav->getResultsCounter(); ?></span>
			<?php echo $this->pageNav->getPagesLinks(); ?>
		</div>
		<?php
		}

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 18:35
par sam12
Ça me dit toujours pas ce qu'il y a dans les variables genre $link_name->getOutput(2), $link...
Et t'as tenté ce que j'avais proposé?

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 18:47
par explozpr
Ça me dit toujours pas ce qu'il y a dans les variables genre $link_name->getOutput(2), $link...
Et t'as tenté ce que j'avais proposé?
bin ça me met ça comme erreur en lieu et place du titre


Warning: htmlspecialchars() expects parameter 1 to be string, object given in /homez.379/explozpr/www/components/com_mtree/Savant2/Savant2_Plugin_ahreflisting.php on line 92

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 18:54
par sam12
T'as cette erreur en modifiant dans le h3 du header
$link_name = $fields->getFieldById(1); 
en
$link_name = $fields->getFieldById(12);
Tu veux vraiment pas me faire 1 echo ou print_r des variables dans 1 coin?

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 19:14
par explozpr
j'ai fait ça mais ça fonctionne pas :
<div class="header">
		<h3><?php 
			$link_name = $fields->getFieldById(12);
			switch( $this->config->getTemParam('listingNameLink','1') )
			{
				default:
				case 1:
					$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false) );
					break;
				case 4:
					if( !empty($link->website) ) {
						$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false), 1 );
					} else {
						$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false) );
					}
					break;
				case 2:
					$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false), 1 );
					break;
				case 3:
					$this->plugin( 'ahreflisting', $link, $fields->getFieldById(12), 'target="_blank"', array('delete'=>false), 1 );
					break;
				case 0:
					$this->plugin( 'ahreflisting', $link, $link_name->getOutput(2), '', array('delete'=>false, 'link'=>false) );
					break;
			}
		?></h3><?php
Tu veux vraiment pas me faire 1 echo ou print_r des variables dans 1 coin?
je comprend pas bien, je suis vraiment "debutant" car rassembler tous les $link etc.... j'en ais pas fini a chercher dans tous les fichiers php.
y-a t-il une manière de récupèrer toutes ces "variables" a un seul endroit ?

Re: Lien en dur sur l'ancre du site ( Annuaire )

Posté : 14 janv. 2013, 19:21
par sam12
Ah bah non, si tu modifies le $link_name tu touches pas au case 3!

Je te demande pas de rassembler les variables mais de les afficher. Genre echo (ou print_r)'$link retourne'.$link; et me donner le résultat. Et tu fais ça pour chaque variable qu'on utilise ;)

Essaye déjà ce que j'ai proposé et si ça marche pas tu me donnes le résultat des echo.