For some strange reason 2 of the elements in my arrays are being ignored. They are...
ETIQUETAS XTRA MINI PARA OBJETOS and ETIQUETAS TERMOAHDESIVAS CLASICAS.
If the product page title is included in the array it renders an info box on the product page below the product image. This is true for all products in the array except the 2 mentioned above.
Below I have the two array vars and below that... the code that renders the info boxes. Any help is greatly appreciated. By the way, this is WooCommerce over Wordpress 4.0.
<?php
//for every label product.
$infoBox1Array = array('Pack Duo','Etiquetas Grandes','Etiquetas Navideñas','Pack Trio','ETIQUETAS PARA CUMPLEAÑOS SUPER PERSONALIZADA','LETREROS PARA CASAS','ETIQUETAS PARA CUMPLEAÑOS','PACK ZAPATOS FORMAS DE PIE','Pack Zapatos','Etiquetas Para Alergias Personalizadas','PACK FULL COLOR','Membretes','Etiquetas Termoadhesivas Mini (fondo blanco)','ETIQUETAS TERMOADHESIVAS FULL COLOR','ETIQUETAS TERMOAHDESIVAS CLASICAS','Saca & Pega','Stickers para Carros','ETIQUETAS PARA ALERGIAS','Etiquetas Kosher','Etiquetas Cocina','Etiquetas Minis','Pack mix 3','Pack mix 2','Pack mix 1','Etiquetas Redondas','Etiquetas Medianas','ETIQUETAS XTRA MINI PARA OBJETOS','Pack Xpress','Pack Guarderia','Pack Regreso al Cole');
//for every product that can be personalized.
$infoBox2Array = array('Pack Duo','Etiquetas Grandes','Etiquetas Navideñas','Pack Trio','ETIQUETAS PARA CUMPLEAÑOS SUPER PERSONALIZADA','LETREROS PARA CASAS','ETIQUETAS PARA CUMPLEAÑOS','PACK ZAPATOS FORMAS DE PIE','Pack Zapatos','Etiquetas Para Alergias Personalizadas','PACK FULL COLOR','Membretes','Etiquetas Termoadhesivas Mini (fondo blanco)','ETIQUETAS TERMOADHESIVAS FULL COLOR','ETIQUETAS TERMOAHDESIVAS CLASICAS','Saca & Pega','Etiquetas Minis','Pack mix 3','Pack mix 2','Pack mix 1','Etiquetas Redondas','Etiquetas Medianas','ETIQUETAS XTRA MINI PARA OBJETOS','Pack Xpress','Pack Guarderia','Pack Regreso al Cole');
?>
<div class="row">
<div>
<?php
include(TEMPLATEPATH . '/info-box-arrays.php');
if(is_single( $infoBox1Array )) {
echo '
<div style="background-color: #ffffff; border: solid 1px #CCCCCC;padding: 7px"><p style="text-align: justify">
El tamaño de la etiqueta y de letra son aproximados.<br/>
Los colores pueden variar de acuerdo a la configuración de su pantalla.
</p></div>
<div style="clear: both"> </div>';
}
if(is_single( $infoBox2Array )) {
echo '
<div style="background-color: #ffffff; border: solid 1px #CCCCCC;padding: 7px"><p style="text-align: justify">
<strong><span style="color: #ff0000;">Nota Importante:</span></strong> Los datos que escribe son los que serán procesados en su pedido.</br/>
Considerar acentos y mayusculas.
</p></div>';
}
?>
</div>
</div>
I have replicated your code and created a post ETIQUETAS TERMOAHDESIVAS CLASICAS. It works fine so I suspect that there is nothing wrong with your array.
I think that there is another reason that is_single is returning false. I think it is either you have a slightly different title for your post or that you are trying to use it for a page.
Related
In my WP site I have some articles like this:
<img class="alignnone size-full wp-image-247308" src="http://www.liberta.it/wp-content/uploads/2016/11/IMG_0143.jpg" alt="IMG_0143" width="1632" height="1224" />
<strong>Il livello del Po a Piacenza</strong> è cresciuto di due metri in una giornata. Il Grande Fiume è osservato speciale in seguito alle abbondanti piogge che hanno colpito il Piemonte provocando la piena degli affluenti. Per tutta la giornata di oggi sono previste piogge in attenuazione dalla serata.
“L’innalzamento del fiume è molto rapido – spiega Massimo Valente di Aipo – al momento il Po a Piacenza è arrivato a 3.30 e l’ondata di piena è attesa già domani ma sarà più intensa nelle giornata di sabato. Aipo sta monitorando costantemente la situazione”.
<img class="alignnone size-full wp-image-247310" src="http://www.liberta.it/wp-content/uploads/2016/11/IMG_0144.jpg" alt="IMG_0144" width="1632" height="1224" />
In the single.php page I've to extrapolate the summary of the article (the first phrase). The code is the following:
<div class="summary-content"><h3 class="sommario"><?php ... ?></h3></div>
I think that I use the_excerpt() function but I don't know the way to use it.
What is the php code to insert into to extrapolate the following text from the article:
Il livello del Po a Piacenza è cresciuto di due metri in una giornata. Il Grande Fiume è osservato speciale in seguito alle abbondanti piogge che hanno colpito il Piemonte provocando la piena degli affluenti
I would recommend using the Wordpress website as a reference. Everything you could possibly want to know is available there if you take a little time to look.
This question already has answers here:
PHP parse/syntax errors; and how to solve them
(20 answers)
Reference Guide: What does this symbol mean in PHP? (PHP Syntax)
(24 answers)
Closed 7 years ago.
i'm beginner in php i get this message Parse error: syntax error, unexpected T_STRING , how to fix plz ?
PHP
<?php if(is_shop())
echo
"<div class="descriptif">"
'<p class="a1">'Envie de l’authentique foie gras au marc de banyuls ou
<br> un bon cochon confit miel gingembre et d’autres produits cuisinés par le chef ?! '</p>'
'<p class="a1">'C’est le moment de vous faire plaisir !'</p>'
'<p class="a2">'LE TERROIR « <em>MADE IN COTE SAISONS</em> » C’EST BIEN <em>ICI</em> !'</p>'
'<p class="a3">'Le Chef <em>Nicolas Ventelon</em> vous propose une gamme de produits locaux offrir ou à déguster chez vous !'</p>'
'<p class="a4">'Livraison en France métropolitaine par la poste entre 48 et 72h'</p>'
'<p class="a5">'Les commandes sont traitées tous les jours excepté mercredi et jeudi.'</p>'
"</div>"
?>
Try this (note there is only two ' at the beginning and at the end of echo. In between You should use " for html attributes like class="descriptif" ). Hope this helps.
echo
'<div class="descriptif">
<p class="a1">Envie de l’authentique foie gras au marc de banyuls ou
<br> un bon cochon confit miel gingembre et d’autres produits cuisinés par le chef ?! </p>
<p class="a1">C’est le moment de vous faire plaisir !</p>
<p class="a2">LE TERROIR « <em>MADE IN COTE SAISONS</em> » C’EST BIEN <em>ICI</em> !</p>
<p class="a3">Le Chef <em>Nicolas Ventelon</em> vous propose une gamme de produits locaux offrir ou à déguster chez vous !</p>
<p class="a4">Livraison en France métropolitaine par la poste entre 48 et 72h</p>
<p class="a5">Les commandes sont traitées tous les jours excepté mercredi et jeudi.</p>
</div>';
Writing string :
echo 'Hello " World';
or
echo "Hello ' World";
Multiline string
echo 'Hello
World';
Or
echo 'Hello' .
'world';
In your case you should correct as follow
echo
'<div class="descriptif">
<p class="a1"> Envie de l’authentique foie gras au marc de banyuls ou
<br> un bon cochon confit miel gingembre et d’autres produits cuisinés par le chef ?! </p>
<p class="a1">C’est le moment de vous faire plaisir !</p>
<p class="a2">LE TERROIR « <em>MADE IN COTE SAISONS</em> » C’EST BIEN <em>ICI</em> </p>
<p class="a3">Le Chef <em>Nicolas Ventelon</em> vous propose une gamme de produits locaux offrir ou à déguster chez vous !</p>
<p class="a4">Livraison en France métropolitaine par la poste entre 48 et 72h</p>
<p class="a5">Les commandes sont traitées tous les jours excepté mercredi et jeudi</p>;
</div>';
You should be careful not to mix single or double quotes
if you open a string with single quote, ensure you don't have single quotes in it or escape it like this \'
in your code
"<div class="descriptif">"
you should either enclose 'descriptif' in single quotes or escape it with slash. or use single quotes like
'<div class="descriptif">'
you should also concatenate strings with dot, i.e.
'<div class="descriptif">'.'<p class="a1">'
There's a mess between " and ', here is your template fixed :
<?php if(is_shop())
echo
'<div class="descriptif">
<p class="a1">Envie de l’authentique foie gras au marc de banyuls ou
<br> un bon cochon confit miel gingembre et d’autres produits cuisinés par le chef ?! </p>
<p class="a1">C’est le moment de vous faire plaisir !</p>
<p class="a2">LE TERROIR « <em>MADE IN COTE SAISONS</em> » C’EST BIEN <em>ICI</em> !</p>
<p class="a3">Le Chef <em>Nicolas Ventelon</em> vous propose une gamme de produits locaux offrir ou à déguster chez vous !</p>
<p class="a4">Livraison en France métropolitaine par la poste entre 48 et 72h</p>
<p class="a5">Les commandes sont traitées tous les jours excepté mercredi et jeudi.</p>
</div>';
?>
This documentation may help you : http://php.net/manual/en/language.types.string.php
I'm making a cookie system, but It doesn't work; I have this code:
<?php
$cookie = $_GET['cookie'];
if(empty($cookie))
{
$cookie = '';
}
if($cookie = 'ok')
{
setcookie("terminos", "", time() + 60*60*24*365*10);
}
elseif($cookie = 'no')
{
?>
<div id="pmyr_div">
<center style="position: relative; top: 50%; margin-top: -23px;margin:auto 0;">
<img src="cooltext1105916314.png" style="margin-top:20px;" />
<br><br>
<big><b>USTED TIENE EL ACCESO DENEGADO A ESTE SITIO POR DENEGAR NUESTROS TÉRMINOS LEGALES.</b></big>
<br><br>
<b>De acuerdo, seré un chico bueno.</b>
</center>
</div>
<?
}
elseif($cookie = 'test')
{
setcookie("user", "", time()-60*60*24*365*10);
header('location: index.php?cookie=raw');
}
elseif($cookie = 'raw')
{
?>
<div id="pmyr_div">
<center>
<br><b>MUY IMPORTANTE!<br>ES NECESARIO QUE SE LEA NUESTROS TÉRMINOS LEGALES.</b><br><br>Sólo puede entrar en este sitio web <b>si es mayor de 18 años de edad</b>, o al menos la mayoría de edad en la jurisdicción donde usted reside o del que se accede a esta página web.<br><br>Si usted no cumple con estos requisitos, entonces usted NO ESTÁ AUTORIZADO, Y NO DEBE INGRESAR a este sitio web.
<br><br><br><br>
SOY MAYOR DE 18 AÑOS
NO ENTRAR
</center>
</div>
<?
}
elseif(empty($cookie))
{
?>
<div id="pmyr_div">
<center>
<br><b>MUY IMPORTANTE!<br>ES NECESARIO QUE SE LEA NUESTROS TÉRMINOS LEGALES.</b><br><br>Sólo puede entrar en este sitio web <b>si es mayor de 18 años de edad</b>, o al menos la mayoría de edad en la jurisdicción donde usted reside o del que se accede a esta página web.<br><br>Si usted no cumple con estos requisitos, entonces usted NO ESTÁ AUTORIZADO, Y NO DEBE INGRESAR a este sitio web.
<br><br><br><br>
SOY MAYOR DE 18 AÑOS
NO ENTRAR
</center>
</div>
<?
}
if(isset($_COOKIE["terminos"]))
{
//page content here
}
elseif(!isset($_COOKIE["terminos"]))
{
?>
<div id="pmyr_div">
<center>
<br><b>MUY IMPORTANTE!<br>ES NECESARIO QUE SE LEA NUESTROS TÉRMINOS LEGALES.</b><br><br>Sólo puede entrar en este sitio web <b>si es mayor de 18 años de edad</b>, o al menos la mayoría de edad en la jurisdicción donde usted reside o del que se accede a esta página web.<br><br>Si usted no cumple con estos requisitos, entonces usted NO ESTÁ AUTORIZADO, Y NO DEBE INGRESAR a este sitio web.
<br><br><br><br>
SOY MAYOR DE 18 AÑOS
NO ENTRAR
</center>
</div>
<?
}
?>
When I press the link SOY MAYOR DE 18 AÑOS the message doesn't disappear. I think that the cookie isn't set.
What can I do?
In all your if and elseif statements, you have something like:
($cookie = "ok")
It should be:
($cookie == "ok")
= is for assignment, == is for comparing.
For using the cookie, put the following at the top of the script:
$cookie_is_set = isset($_COOKIE['terminos']);
After each of your setcookie() calls, add:
$cookie_is_set = true;
Then at the bottom of the script, instead of
if (isset($_COOKIE['terminos']))
use:
if ($cookie_is_set)
You are setting an empty cookie
setcookie("terminos", "/*here you have to put a value*/", time() + 60*60*24*365*10);
http://php.net/manual/en/function.setcookie.php
I am extracting some rss feed. From each resource I get the description node that contain html code.
From this code I delete img tag with this code:
preg_replace("/<img[^>]+\>/i", "", $content)
After I would delete the image label that is after images.
For example in this code I would remove elements.
<img src="http://www.dagospia.com/img/foto/06-2012/paolo-savona-lerner-170816_tn.jpg" alt="" id="394669"></em><strong>PAOLO SAVONA DA LERNER ALL INFEDELE </strong>
Xml:
<description>
<![CDATA[
<p><strong>Enrico Marro per "Corriere della Sera"</strong></p><span style="position: static; clear: none; z-index: auto; left: auto; top: auto;" class="imgDrag imgLeft"><em><img src="http://www.dagospia.com/img/foto/06-2012/paolo-savona-lerner-17
]]>
<![CDATA[
0816_tn.jpg" alt="" id="394669"></em><strong>PAOLO SAVONA DA LERNER ALL INFEDELE </strong></span>
<p>«A dire il vero il piano del Pdl, cioè il piano Brunetta al quale pure abbiamo fornito materiali, è molto più soft della mia proposta, inizialmente elaborata col professor Giuseppe Guarino e mes
]]>
<![CDATA[
sa a punto in questi ultimi mesi con i colleghi Michele Fratianni e Antonio Rinaldi. Ma è pur sempre meglio che niente, purché l'azione choc per abbattere di 400 miliardi di euro il debito pubblico si faccia in un colpo solo e non frazionandola in più anni».</p>
<p>Per Paolo Savona, economista,
]]>
<![CDATA[
presidente del Fondo interbancario di tutela dei depositi ed ex ministro dell'Industria nel governo Ciampi (1993-94), servirebbe un vero e proprio consolidamento di tutto il debito pubblico assistito dalla messa in gioco di asset del patrimonio pubblico destinati a essere ceduti.</p><span style="po
]]>
<![CDATA[
sition: static; clear: none; z-index: auto; left: auto; top: auto;" class="imgDrag imgRight"><em><img src="http://www.dagospia.com/img/foto/05-2010/57722_tn.jpg" alt="" id="282222"></em><strong>PAOLO SAVONA E SIGNORA </strong></span>
<p><strong>Professore di proposta choc in proposta choc. Non si può fare altrimenti?</strong><br>«Teniamo presente che per via del debito che ha raggiunto quasi il 130% del Prodotto interno lordo noi paghiamo 3 punti percentuali in più di interessi sui titoli di Stato, il famoso spread, e questo in parte si riflette anche sul costo del denaro per l'attività produttiva. Occorre quindi sottrarsi a questa valutazione della speculazione.</p><span style="position: static; clear: none; z-index: auto; left: auto; top: auto;" class="imgDrag imgLeft"><em><img src="http://www.dagospia.com/img/foto/08-2012/italia-crisi-183522_tn.jpg" alt="" id="407340"></em><strong>italia crisi </strong></span>
<p>Dico speculazione perché il patrimonio pubblico a garanzia del debito pubblico è più che capiente: fu censito prudenzialmente in quasi duemila miliardi di euro di valore dal ministero dell'Economia (commissione Reviglio junior) nel 2011, comprendendo anche le partecipazioni pubbliche e il patrimonio degli enti locali, che certamente non si possono tirar fuori da questo problema. Per fermare la speculazione bisogna consolidare e liberarci di questa palla al piede che frena lo sviluppo del Paese».</p><span style="position: static; clear: none; z-index: auto; left: auto; top: auto;" class="imgDrag imgRight"><em><img src="http://www.dagospia.com/img/foto/08-2012/italia-crisi-183521_tn.jpg" alt="" id="407339"></em><strong>italia crisi </strong></span>
<p><strong>È una prospettiva che spaventa. Come funziona la sua proposta?</strong><br>«Innanzitutto si tratta di un'operazione di consolidamento su base volontaria. I titoli pubblici emessi dal Tesoro in circolazione vedrebbero la loro scadenza rimodulata a sette anni, indipendentemente dalla tipologia e dalla vita residua e gli interessi verrebbero rideterminati annualmente sulla base del costo della vita e del 20 per cento del tasso di crescita del Pil reale.</p>
<p>Inoltre, per ogni mille euro di valore nominale di emissione di ciascun titolo oggetto del provvedimento sarebbe assegnato uno warrant negoziabile sul mercato durante i sette anni di vita del titolo sia per trarre un beneficio monetario immediato sia per opzionare i beni e le attività finanziarie messi a disposizione dallo Stato».</p><span style="position: static; clear: none; z-index: auto; left: auto; top: auto;" class="imgDrag imgLeft"><em><img src="http://www.dagospia.com/img/foto/04-2013/euro-crac-231641_tn.jpg" alt="" id="455060"></em><strong>EURO CRAC</strong></span>
<p><strong>Ma non si creerebbe uno scenario argentino?</strong><br>«No. Durante i 7 anni del consolidamento il Tesoro non dovrebbe più finanziarsi emettendo titoli, dovrebbe rispettare il pareggio di bilancio e beneficerebbe del calo degli interessi sul debito di almeno 30 miliardi di euro all'anno, rispetto agli 85 che paghiamo ora, risparmi che per esempio potrebbero essere ben utilizzati per abbattere il cuneo fiscale sui salari.</p>
<p>L'operazione dovrebbe essere strutturata giuridicamente e finanziariamente da società specializzate a livello internazionale che, ovviamente dietro adeguate commissioni, ne garantirebbero però il successo».</p><span style="position: static; clear: none; z-index: auto; left: auto; top: auto;" class="imgDrag imgRight"><em><img src="http://www.dagospia.com/img/foto/08-2012/italia-crisi-183520_tn.jpg" alt="" id="407338"></em><strong>italia crisi </strong></span>
<p><strong>Perché un risparmiatore dovrebbe accettare volontariamente il consolidamento?</strong><br>«Perché sarebbe ben remunerato e acquisirebbe anche il warrant negoziabile sul mercato, cioè il diritto di beneficiare di vantaggi monetari cedendolo o di acquistare l'asset pubblico sottostante posto a garanzia che con la valorizzazione potrebbe essere molto appetibile».</p>
<p><strong>Professore, mi pare un'operazione senza precedenti, in nessun Paese.</strong><br>«È vero. Si tratta di una pura operazione finanziaria che bypassa le resistenze delle burocrazie pubbliche che finora hanno ostacolato qualsiasi tentativo di attacco al debito. In ogni caso, ripeto, se la nostra ultima proposta sembra troppo ardita, si parta pure con quella rilanciata ora dal Pdl, purché in una tornata unica e non sia affidata alle burocrazie, altrimenti non decollerà mai.</p>
<p>Si individuino gli asset per 400 miliardi di euro e li si conferiscano a una società privata ad hoc, abbattendo così il debito dai 2 mila miliardi attuali a 1.600 miliardi. Bisogna però sapere che questo non basta se poi si continua a fare deficit. Invece, col consolidamento che impone il ritiro dal mercato delle emissioni di nuovi titoli ci vuole il pareggio di bilancio e il problema del debito si avvia a una soluzione strutturale. Per attuarlo occorrono politici e tecnici coraggiosi e non cinici, ossia che non tollerino una disoccupazione che superi perfino i livelli attuali».</p>
<p> </p>
]]>
</description>
Looks like every <img> is wrapped inside an <em> tag, you certainly want to remove it along.
Interesting that you managed to get so far and be stuck at this stage. Anyways, try this regex:
/<em><img[^>]+\><\/em>\<strong>[^>]+>/i
This only works if the <strong> tag does not contain any sub-tag.
Disclaimer: HTML is not a regular language
in this variable: $this->item->text I have this string:
<!-- JoomlaWorks "Disqus Comment System for Joomla!" Plugin (v2.2) starts here -->
<div class="itp-fshare-floating" id="itp-fshare" style="position:fixed; top:30px !important; left:50px !important;"></div><p>Lorem Ipsum è un testo segnaposto utilizzato nel settore della tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di caratteri e li assemblòdei fogli di caratteri trasferibili “Letraset”,</p>
<p style="text-align: center;"><span class="easy_img_caption" style="display:inline-block;line-height:0.5;vertical-align:top;background-color:#F2F2F2;text-align:left;width:150px;float:left;margin:0px 10px;"><img src="/joomla/plugins/content/imagesresizecache/8428e9c26f1d8498ece730c0aa6aa023.jpeg" border="0" alt="1" title="1" style="width:150px; height:120px; ;margin:0;" /><span class="easy_img_caption_inner" style="display:inline-block;line-height:normal;color:#000000;font-size:8pt;font-weight:normal;font-style:normal;padding:4px 8px;margin:0px;">1</span></span></p>
<p>che contenevano passaggi del Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker</p>
<!-- Disqus comments counter and anchor link -->
<a class="jwDisqusListingCounterLink" href="http://clouderize.it/joomla/index.php?option=com_content&view=article&id=8:recensione&catid=3:recensione-dei-servizi-di-cloud-computing&Itemid=4#disqus_thread" title="Add a comment">
Add a comment</a>
<!-- JoomlaWorks "Disqus Comment System for Joomla!" Plugin (v2.2) ends here -->
<div class="cp_tags">
<span class="cp_tag_label">Tags: </span><span class="cp_tag cp_tag_6">Recensioni
</span> </div>
So with this code I extract
<span class="easy_img_caption......></span>
Code (I am using this library called phpQuery http://goo.gl/rSu3k):
include_once('includes/phpQuery.php');
$doc = phpQuery::newDocument($this->item->text);
$extraction=pq('.easy_img_caption:eq(0)')->htmlOuter();
echo"<textarea>".$extraction."</textarea>";
So my question is:
How can I remove $extraction string from $this->item->text?
Thank you.
I'll assume phpQuery is some library aiding with dom-parsing in php?
Anyway, to accomplish this, you don't exactly need this external library. It can easily be accomplished with a regular expression replace:
$text = preg_replace('/<span.*?class="[^"]*?easy_img_caption[^"]*?".*?>.*?<\/span>/s', '', $this->item->text);
echo "<textarea>" . $text . "</textarea>";