¿Cómo reemplazar una metaetiqueta en Yii?
meta-tags (3)
Puede establecer metaetiquetas por página usando:
Yii::app()->clientScript->registerMetaTag("This is my meta description", ''description'');
Yii::app()->clientScript->registerMetaTag("These, are, my, keywords", ''keywords'');
Esto se puede establecer en el Controlador o la vista, y obviamente dependiendo de cómo se consulten sus artículos, puede hacer que la parte del contenido sea dinámica como tal (suponiendo que $model
es el artículo seleccionado y meta_description
es el atributo de modelo que almacena la meta_description
) :
Yii::app()->clientScript->registerMetaTag($model->meta_description, ''description'');
La documentación en el sitio Yii se puede encontrar aquí
Sé que puedo registrar una nueva metaetiqueta en Yii y sé cómo hacerlo, pero necesito
reemplazar la etiqueta predeterminada que he establecido, porque cuando estoy en un artículo, quiero insertar el
breve descripción del artículo en la metaetiqueta;
¿Cómo puedo administrar las metaetiquetas?
Si está en la última versión, puede darle a la metaetiqueta una identificación.
->registerMetaTag(''example'', ''description'', null, array(), ''mytagid'');
Llamar registerMetaTag nuevamente con el mismo ID lo sobreescribirá.
http://www.yiiframework.com/doc/api/1.1/CClientScript#registerMetaTag-detail
Puedes intentar esto:
1) En ''components / Controller.php'' :
public $metaDescription;
public $metaKeywords;
public function getMetaDescription() {
if(!$this->metaDescription)
return Yii::app()->settings->getValue(''meta_description''); //return default description
return $this->metaDescription;
}
public function getMetaKeywords() {
if(!$this->metaKeywords)
return Yii::app()->settings->getValue(''meta_keywords''); //return default keywords
return $this->metaKeywords;
}
2) En su diseño main.php :
...
Yii::app()->clientScript->registerMetaTag($this->getMetaDescription(), ''description'');
Yii::app()->clientScript->registerMetaTag($this->getMetaKeywords(), ''keywords'');
...
3) En sus otros diseños :
...
// If you don''t do that, the description and keywords will be default for this page.
$this->metaDescription = ''Your description here'';
$this->metaKeywords = ''your, keywords, here'';
...
Tenga en cuenta que Yii :: app () -> settings-> getValue (''meta_description'') y Yii :: app () -> settings-> getValue (''meta_keywords'') son mis valores predeterminados que se toman de DB.