Par exemple pour chercher (chiffre, 1chiffre,
Rechercher :
\(([0-9]*), (1),
Puis remplacer par ce qu’on veut exemple
(chiffrequ’on garde, 5) –>
indiquer :
\($1, 5,
Par exemple pour chercher (chiffre, 1chiffre,
Rechercher :
\(([0-9]*), (1),
Puis remplacer par ce qu’on veut exemple
(chiffrequ’on garde, 5) –>
indiquer :
\($1, 5,
Exemple:
HTML & JAVASCRIPT
<div id="google_translate_element"> </div>
<p>
<script type="text/javascript">// <![CDATA[
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'fr', includedLanguages: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
changeGoogleTranslate();
}
function changeGoogleTranslate() {
if ($("#google_translate_element .goog-te-menu-value > span:first-of-type").text() == "Sélectionner une langue") {
$("#google_translate_element .goog-te-menu-value > span:first-of-type").html('');
$("#centerText").val('');
} else {
setTimeout(changeGoogleTranslate, 50);
}
}
// ]]></script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
</p>
CSS
/* CSS */
/* Modification de la boite de traduction de google */
.goog-te-gadget-icon{
background-image:url('/uploaded/95445/drapeau.png') !important;
background-position:center center !important;
background-size: auto auto !important;
background-repeat: no-repeat;
}
#google_translate_element{
position:fixed;
top:20px;
left:0;
z-index:9999;
}
#google_translate_element span, #google_translate_element .goog-te-gadget-simple{
border:transparent !important;
background:transparent;
}
#google_translate_element .goog-te-menu-value{
margin-left:-10px !important;
}
usort($aDataToChangeParentTmp, function($a,$b){ return strcmp(strtolower($a['name']),strtolower($b['name'])); });
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
public function getClientIP(){
if (array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER)){
return $_SERVER["HTTP_X_FORWARDED_FOR"];
}else if (array_key_exists('REMOTE_ADDR', $_SERVER)) {
return $_SERVER["REMOTE_ADDR"];
}else if (array_key_exists('HTTP_CLIENT_IP', $_SERVER)) {
return $_SERVER["HTTP_CLIENT_IP"];
}
return '';
}
Travailler sur une nouvelle branche du dépôt distant sur Git
git checkout --track -b origin/new_branch
Cette commande permet de créer une branche locale, liée à la branche distante
$output.= '=MAJUSCULE("0600000000")' . ";" ;
Le fait de faire ça au lieu d’avoir dans la cellule :
6000000000
Nous allons avoir :
0600000000
Excel supprime les « zéro » qui considère inutile. Dans le fichier pourtant nous avons bien nos 0 devant.
Il arrive parfois que sur Magento, on se retrouve avec une page blanche, sans erreur, sans log. C’est souvent dû à un problème avec les Layouts qui ne génère jamais d’erreur.
Pour trouver la source du problème, il faut donc afficher une erreur. Après quelques recherches sur notre ami G*****, j’ai trouvé deux solution complémentaire, il suffit d’exécuter le code suivant avant notre code exécuté, dans mon cas je l’ai inséré dans la fonction du module.
Afficher les erreurs PHP lié au manipulation des Layouts :
// —————————————————————————————————-
// – Display Errors
// —————————————————————————————————-
ini_set(‘display_errors’, ‘On’);
ini_set(‘html_errors’, 0);
// —————————————————————————————————-
// – Error Reporting
// —————————————————————————————————-
error_reporting(-1);
// —————————————————————————————————-
// – Shutdown Handler
// —————————————————————————————————-
function ShutdownHandler() {
if (@is_array($error = @error_get_last())) {
return(@call_user_func_array(‘ErrorHandler’, $error));
};
return(TRUE);
}
;
register_shutdown_function(‘ShutdownHandler’);
// —————————————————————————————————-
// – Error Handler
// —————————————————————————————————-
function ErrorHandler($type, $message, $file, $line) {
$_ERRORS = Array(
0x0001 => ‘E_ERROR’,
0x0002 => ‘E_WARNING’,
0x0004 => ‘E_PARSE’,
0x0008 => ‘E_NOTICE’,
0x0010 => ‘E_CORE_ERROR’,
0x0020 => ‘E_CORE_WARNING’,
0x0040 => ‘E_COMPILE_ERROR’,
0x0080 => ‘E_COMPILE_WARNING’,
0x0100 => ‘E_USER_ERROR’,
0x0200 => ‘E_USER_WARNING’,
0x0400 => ‘E_USER_NOTICE’,
0x0800 => ‘E_STRICT’,
0x1000 => ‘E_RECOVERABLE_ERROR’,
0x2000 => ‘E_DEPRECATED’,
0x4000 => ‘E_USER_DEPRECATED’
);
if (!@is_string($name = @array_search($type, @array_flip($_ERRORS)))) {
$name = ‘E_UNKNOWN’;
};
return(print(@sprintf(« %s Error in file \xBB%s\xAB at line %d: %s\n », $name, @basename($file), $line, $message)));
}
$old_error_handler = set_error_handler(« ErrorHandler »);
Créer un log qui contient la requête, l’action du controller, les handles (nameSpace des templates) qui sont appelés, ainsi que le XML du layout qui va être chargé, à insérer dans le code de votre fonction :
$this->loadLayout();
$req = Mage::app()->getRequest();
$info = sprintf(
« \nRequest: %s\nFull Action Name: %s_%s_%s\nHandles:\n\t%s\nUpdate XML:\n%s »,
$req->getRouteName(),
$req->getRequestedRouteName(), //full action name 1/3
$req->getRequestedControllerName(), //full action name 2/3
$req->getRequestedActionName(), //full action name 3/3
implode(« \n\t »,$this->getLayout()->getUpdate()->getHandles()),
$this->getLayout()->getUpdate()->asString()
);
// Force logging to var/log/layout.log
Mage::log($info, Zend_Log::INFO, ‘layout.log’, true);
Sources :
Le problème est survenu lors d’un import/export de produit de la préproduction vers la production.
Avec l’erreur suivante dans les exceptions :
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`MABASE`.`catalog_category_product_index`, CONSTRAINT `FK_CAT_CTGR_PRD_IDX_CTGR_ID_CAT_CTGR_ENTT_ENTT_ID` FOREIGN KEY (`category_id`) REFERENCES `catalog_category_entity` (`en)
Le problème vient d’une catégorie qui n’existait plus. Pour résoudre le bug, il suffit d’exécuter la requête suivante :
SELECT * FROM catalog_category_product
WHERE category_id NOT IN
( SELECT entity_id FROM catalog_category_entity )
Cette requête permet d’extraire toutes les lignes qui concernent une catégorie qui n’existe plus.
Il suffit de supprimer toutes ces lignes et de lancer la réindexation en administration Magento.
Pour supprimer de la ligne 10 à 20 :
:10,20d
Pour supprimer de la ligne 10 à la fin
:10,$d
Pour tout supprimer:
:0,$d
ou
:$ puis dgg